Diffusers 文档

注意力处理器

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

Attention Processor

注意力处理器是一个用于应用不同类型注意力机制的类。

AttnProcessor

class diffusers.models.attention_processor.AttnProcessor

< >

( )

用于执行注意力相关计算的默认处理器。

class diffusers.models.attention_processor.AttnProcessor2_0

< >

( )

用于实现缩放点积注意力(如果您正在使用 PyTorch 2.0,则默认启用)的处理器。

class diffusers.models.attention_processor.AttnAddedKVProcessor

< >

( )

用于执行注意力相关计算的处理器,带有用于文本编码器的额外可学习的键和值矩阵。

class diffusers.models.attention_processor.AttnAddedKVProcessor2_0

< >

( )

用于执行缩放点积注意力(如果您正在使用 PyTorch 2.0,则默认启用)的处理器,带有用于文本编码器的额外可学习的键和值矩阵。

class diffusers.models.attention_processor.AttnProcessorNPU

< >

( )

用于使用 torch_npu 实现 Flash Attention 的处理器。Torch_npu 仅支持 fp16 和 bf16 数据类型。如果使用 fp32,则将使用 F.scaled_dot_product_attention 进行计算,但在 NPU 上的加速效果不明显。

class diffusers.models.attention_processor.FusedAttnProcessor2_0

< >

( )

用于实现缩放点积注意力(如果您正在使用 PyTorch 2.0,则默认启用)的处理器。它使用融合投影层。对于自注意力模块,所有投影矩阵(即,query、key、value)都被融合。对于交叉注意力模块,key 和 value 投影矩阵被融合。

此 API 目前本质上是 🧪 实验性的,未来可能会发生变化。

Allegro

class diffusers.models.attention_processor.AllegroAttnProcessor2_0

< >

( )

用于实现缩放点积注意力(如果您正在使用 PyTorch 2.0,则默认启用)的处理器。这在 Allegro 模型中使用。它在 query 和 key 向量上应用归一化层和旋转嵌入。

AuraFlow

class diffusers.models.attention_processor.AuraFlowAttnProcessor2_0

< >

( )

通常用于处理 Aura Flow 的注意力处理器。

class diffusers.models.attention_processor.FusedAuraFlowAttnProcessor2_0

< >

( )

通常用于处理带有融合投影的 Aura Flow 的注意力处理器。

CogVideoX

class diffusers.models.attention_processor.CogVideoXAttnProcessor2_0

< >

( )

用于为 CogVideoX 模型实现缩放点积注意力机制的处理器。它在查询和键向量上应用旋转嵌入,但不包含空间归一化。

class diffusers.models.attention_processor.FusedCogVideoXAttnProcessor2_0

< >

( )

用于为 CogVideoX 模型实现缩放点积注意力机制的处理器。它在查询和键向量上应用旋转嵌入,但不包含空间归一化。

CrossFrameAttnProcessor

class diffusers.pipelines.text_to_video_synthesis.pipeline_text_to_video_zero.CrossFrameAttnProcessor

< >

( batch_size = 2 )

参数

  • batch_size — 表示实际批大小的数字,帧数除外。例如,使用单个提示和 num_images_per_prompt=1 调用 unet 时,由于无分类器引导,batch_size 应等于 2。

跨帧注意力处理器。每个帧都关注第一帧。

Custom Diffusion

class diffusers.models.attention_processor.CustomDiffusionAttnProcessor

< >

( train_kv: bool = True train_q_out: bool = True hidden_size: typing.Optional[int] = None cross_attention_dim: typing.Optional[int] = None out_bias: bool = True dropout: float = 0.0 )

参数

  • train_kv (bool, defaults to True) — 是否新训练与文本特征相对应的键和值矩阵。
  • train_q_out (bool, defaults to True) — 是否新训练与潜在图像特征相对应的查询矩阵。
  • hidden_size (int, optional, defaults to None) — 注意力层的隐藏层大小。
  • cross_attention_dim (int, optional, defaults to None) — encoder_hidden_states 中的通道数。
  • out_bias (bool, defaults to True) — 是否在 train_q_out 中包含偏置参数。
  • dropout (float, optional, defaults to 0.0) — 要使用的 dropout 概率。

用于为 Custom Diffusion 方法实现注意力的处理器。

class diffusers.models.attention_processor.CustomDiffusionAttnProcessor2_0

< >

( train_kv: bool = True train_q_out: bool = True hidden_size: typing.Optional[int] = None cross_attention_dim: typing.Optional[int] = None out_bias: bool = True dropout: float = 0.0 )

参数

  • train_kv (bool, defaults to True) — 是否新训练与文本特征相对应的键和值矩阵。
  • train_q_out (bool, defaults to True) — 是否新训练与潜在图像特征相对应的查询矩阵。
  • hidden_size (int, optional, defaults to None) — 注意力层的隐藏层大小。
  • cross_attention_dim (int, optional, defaults to None) — encoder_hidden_states 中的通道数。
  • out_bias (bool, defaults to True) — 是否在 train_q_out 中包含偏置参数。
  • dropout (float, optional, defaults to 0.0) — 要使用的 dropout 概率。

用于使用 PyTorch 2.0 的内存高效缩放点积注意力为 Custom Diffusion 方法实现注意力的处理器。

class diffusers.models.attention_processor.CustomDiffusionXFormersAttnProcessor

< >

( train_kv: bool = True train_q_out: bool = False hidden_size: typing.Optional[int] = None cross_attention_dim: typing.Optional[int] = None out_bias: bool = True dropout: float = 0.0 attention_op: typing.Optional[typing.Callable] = None )

参数

  • train_kv (bool, defaults to True) — 是否新训练与文本特征相对应的键和值矩阵。
  • train_q_out (bool, defaults to True) — 是否新训练与潜在图像特征相对应的查询矩阵。
  • hidden_size (int, optional, defaults to None) — 注意力层的隐藏层大小。
  • cross_attention_dim (int, optional, defaults to None) — encoder_hidden_states 中的通道数。
  • out_bias (bool, defaults to True) — 是否在 train_q_out 中包含偏置参数。
  • dropout (float, 可选, 默认为 0.0) — 要使用的 dropout 概率。
  • attention_op (Callable, 可选, 默认为 None) — 用作 attention 算子的基础 operator。 建议设置为 None,并允许 xFormers 选择最佳算子。

用于为 Custom Diffusion 方法实现内存高效 attention 的处理器。

Flux

class diffusers.models.attention_processor.FluxAttnProcessor2_0

< >

( )

通常用于处理 SD3 类自注意力投影的 Attention 处理器。

class diffusers.models.attention_processor.FusedFluxAttnProcessor2_0

< >

( )

通常用于处理 SD3 类自注意力投影的 Attention 处理器。

class diffusers.models.attention_processor.FluxSingleAttnProcessor2_0

< >

( )

用于实现缩放点积注意力(如果您正在使用 PyTorch 2.0,则默认启用)的处理器。

Hunyuan

class diffusers.models.attention_processor.HunyuanAttnProcessor2_0

< >

( )

用于实现缩放点积注意力(如果您使用 PyTorch 2.0,则默认启用)的处理器。 这在 HunyuanDiT 模型中使用。 它在查询和键向量上应用 s 归一化层和旋转嵌入。

class diffusers.models.attention_processor.FusedHunyuanAttnProcessor2_0

< >

( )

用于实现具有融合投影层的缩放点积注意力(如果您使用 PyTorch 2.0,则默认启用)的处理器。 这在 HunyuanDiT 模型中使用。 它在查询和键向量上应用 s 归一化层和旋转嵌入。

class diffusers.models.attention_processor.PAGHunyuanAttnProcessor2_0

< >

( )

用于实现缩放点积注意力(如果您使用 PyTorch 2.0,则默认启用)的处理器。 这在 HunyuanDiT 模型中使用。 它在查询和键向量上应用归一化层和旋转嵌入。 此处理器的变体采用了扰动注意力引导

class diffusers.models.attention_processor.PAGCFGHunyuanAttnProcessor2_0

< >

( )

用于实现缩放点积注意力(如果您使用 PyTorch 2.0,则默认启用)的处理器。 这在 HunyuanDiT 模型中使用。 它在查询和键向量上应用归一化层和旋转嵌入。 此处理器的变体采用了扰动注意力引导

IdentitySelfAttnProcessor2_0

class diffusers.models.attention_processor.PAGIdentitySelfAttnProcessor2_0

< >

( )

用于实现使用缩放点积注意力的 PAG 处理器(如果您使用 PyTorch 2.0,则默认启用)。 PAG 参考: https://arxiv.org/abs/2403.17377

class diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0

< >

( )

用于实现使用缩放点积注意力的 PAG 处理器(如果您使用 PyTorch 2.0,则默认启用)。 PAG 参考: https://arxiv.org/abs/2403.17377

IP-Adapter

class diffusers.models.attention_processor.IPAdapterAttnProcessor

< >

( hidden_size cross_attention_dim = None num_tokens = (4,) scale = 1.0 )

参数

  • hidden_size (int) — attention 层的隐藏大小。
  • cross_attention_dim (int) — encoder_hidden_states 中的通道数。
  • num_tokens (int, Tuple[int]List[int], 默认为 (4,)) — 图像特征的上下文长度。
  • scale (float 或 Listfloat, 默认为 1.0) — 图像提示的权重比例。

用于多个 IP-Adapter 的 Attention 处理器。

class diffusers.models.attention_processor.IPAdapterAttnProcessor2_0

< >

( hidden_size cross_attention_dim = None num_tokens = (4,) scale = 1.0 )

参数

  • hidden_size (int) — attention 层的隐藏大小。
  • cross_attention_dim (int) — encoder_hidden_states 中的通道数。
  • num_tokens (int, Tuple[int]List[int], 默认为 (4,)) — 图像特征的上下文长度。
  • scale (floatList[float], 默认为 1.0) — 图像提示的权重比例。

用于 PyTorch 2.0 的 IP-Adapter 的 Attention 处理器。

class diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0

< >

( hidden_size: int ip_hidden_states_dim: int head_dim: int timesteps_emb_dim: int = 1280 scale: float = 0.5 )

参数

  • hidden_size (int) — 隐藏通道的数量。
  • ip_hidden_states_dim (int) — 图像特征维度。
  • head_dim (int) — head 通道数。
  • timesteps_emb_dim (int, 默认为 1280) — timestep 嵌入的输入通道数。
  • scale (float, 默认为 0.5) — IP-Adapter 缩放。

IP-Adapter 的注意力处理器,通常用于处理类似 SD3 的自注意力投影,带有额外的基于图像的信息和 timestep 嵌入。

JointAttnProcessor2_0

class diffusers.models.attention_processor.JointAttnProcessor2_0

< >

( )

通常用于处理 SD3 类自注意力投影的 Attention 处理器。

class diffusers.models.attention_processor.PAGJointAttnProcessor2_0

< >

( )

通常用于处理 SD3 类自注意力投影的 Attention 处理器。

class diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0

< >

( )

通常用于处理 SD3 类自注意力投影的 Attention 处理器。

class diffusers.models.attention_processor.FusedJointAttnProcessor2_0

< >

( )

通常用于处理 SD3 类自注意力投影的 Attention 处理器。

LoRA

class diffusers.models.attention_processor.LoRAAttnProcessor

< >

( )

用于实现带有 LoRA 的注意力的处理器。

class diffusers.models.attention_processor.LoRAAttnProcessor2_0

< >

( )

用于实现带有 LoRA 的注意力处理器(如果您使用 PyTorch 2.0,则默认启用)。

class diffusers.models.attention_processor.LoRAAttnAddedKVProcessor

< >

( )

用于实现带有 LoRA 的注意力处理器,并为文本编码器提供额外的可学习的键和值矩阵。

class diffusers.models.attention_processor.LoRAXFormersAttnProcessor

< >

( )

用于使用 xFormers 实现带有 LoRA 的注意力的处理器。

Lumina-T2X

class diffusers.models.attention_processor.LuminaAttnProcessor2_0

< >

( )

用于实现缩放点积注意力的处理器(如果您使用 PyTorch 2.0,则默认启用)。这在 LuminaNextDiT 模型中使用。它在查询和键向量上应用 s 归一化层和旋转嵌入。

Mochi

class diffusers.models.attention_processor.MochiAttnProcessor2_0

< >

( )

Mochi 中使用的注意力处理器。

class diffusers.models.attention_processor.MochiVaeAttnProcessor2_0

< >

( )

Mochi VAE 中使用的注意力处理器。

Sana

class diffusers.models.attention_processor.SanaLinearAttnProcessor2_0

< >

( )

用于实现缩放点积线性注意力的处理器。

class diffusers.models.attention_processor.SanaMultiscaleAttnProcessor2_0

< >

( )

用于实现多尺度二次注意力的处理器。

class diffusers.models.attention_processor.PAGCFGSanaLinearAttnProcessor2_0

< >

( )

用于实现缩放点积线性注意力的处理器。

class diffusers.models.attention_processor.PAGIdentitySanaLinearAttnProcessor2_0

< >

( )

用于实现缩放点积线性注意力的处理器。

Stable Audio

class diffusers.models.attention_processor.StableAudioAttnProcessor2_0

< >

( )

用于实现缩放点积注意力的处理器(如果您使用 PyTorch 2.0,则默认启用)。这在 Stable Audio 模型中使用。它在查询和键向量上应用旋转嵌入,并允许 MHA、GQA 或 MQA。

SlicedAttnProcessor

class diffusers.models.attention_processor.SlicedAttnProcessor

< >

( slice_size: int )

参数

  • slice_size (int, 可选) — 用于计算 attention 的步数。使用的切片数量为 attention_head_dim // slice_size,并且 attention_head_dim 必须是 slice_size 的倍数。

用于实现切片 attention 的处理器。

class diffusers.models.attention_processor.SlicedAttnAddedKVProcessor

< >

( slice_size )

参数

  • slice_size (int, 可选) — 用于计算 attention 的步数。使用的切片数量为 attention_head_dim // slice_size,并且 attention_head_dim 必须是 slice_size 的倍数。

用于实现带有额外可学习的键和值矩阵的切片 attention 处理器,用于文本编码器。

XFormersAttnProcessor

class diffusers.models.attention_processor.XFormersAttnProcessor

< >

( attention_op: typing.Optional[typing.Callable] = None )

参数

  • attention_op (Callable, 可选, 默认为 None) — 用作 attention 算子的基础 operator。建议设置为 None,并允许 xFormers 选择最佳算子。

用于实现使用 xFormers 的内存高效 attention 处理器。

class diffusers.models.attention_processor.XFormersAttnAddedKVProcessor

< >

( attention_op: typing.Optional[typing.Callable] = None )

参数

  • attention_op (Callable, 可选, 默认为 None) — 用作 attention 算子的基础 operator。建议设置为 None,并允许 xFormers 选择最佳算子。

用于实现使用 xFormers 的内存高效 attention 处理器。

XLAFlashAttnProcessor2_0

class diffusers.models.attention_processor.XLAFlashAttnProcessor2_0

< >

( partition_spec: typing.Optional[typing.Tuple[typing.Optional[str], ...]] = None )

如果使用 torch_xla,则用于实现带有 pallas flash attention kernel 的缩放点积 attention 处理器。

< > 在 GitHub 上更新