Diffusers 文档

Attention Processor

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

注意力处理器

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

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 实现闪存注意力的处理器。Torch_npu 仅支持 fp16 和 bf16 数据类型。如果使用 fp32,将使用 F.scaled_dot_product_attention 进行计算,但对 NPU 的加速效果不明显。

class diffusers.models.attention_processor.FusedAttnProcessor2_0

< >

( )

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

此 API 目前处于🧪实验阶段,未来可能会发生变化。

Allegro

class diffusers.models.attention_processor.AllegroAttnProcessor2_0

< >

( )

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

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 (int, 默认为 2) — 表示实际批次大小的数字,而不是帧数。例如,使用单个提示和 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, 默认为 True) — 是否重新训练与文本特征对应的键和值矩阵。
  • train_q_out (bool, 默认为 True) — 是否重新训练与潜在图像特征对应的查询矩阵。
  • hidden_size (int, 可选, 默认为 None) — 注意力层的隐藏大小。
  • cross_attention_dim (int, 可选, 默认为 None) — encoder_hidden_states 中的通道数。
  • out_bias (bool, 默认为 True) — 是否在 train_q_out 中包含偏置参数。
  • dropout (float, 可选, 默认为 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, 默认为 True) — 是否重新训练与文本特征对应的键和值矩阵。
  • train_q_out (bool, 默认为 True) — 是否重新训练与潜在图像特征对应的查询矩阵。
  • hidden_size (int, 可选, 默认为 None) — 注意力层的隐藏大小。
  • cross_attention_dim (int, 可选, 默认为 None) — encoder_hidden_states 中的通道数。
  • out_bias (bool, 默认为 True) — 是否在 train_q_out 中包含偏置参数。
  • dropout (float, 可选, 默认为 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, 默认为 True) — 是否重新训练与文本特征对应的键和值矩阵。
  • train_q_out (bool, 默认为 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 概率。
  • attention_op (Callable, optional, defaults to None) — 用作注意力操作符的基础 操作符。建议将其设置为 None,并让 xFormers 选择最佳操作符。

用于实现 Custom Diffusion 方法中高效内存注意力的处理器,使用 xFormers。

Flux

class diffusers.models.attention_processor.FluxAttnProcessor2_0

< >

( )

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

class diffusers.models.attention_processor.FusedFluxAttnProcessor2_0

< >

( )

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

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://huggingface.co/papers/2403.17377

class diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0

< >

( )

用于实现 PAG 的处理器,使用缩放点积注意力(如果使用 PyTorch 2.0 默认启用)。PAG 参考:https://huggingface.co/papers/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) — 注意力层的隐藏大小。
  • cross_attention_dim (int) — `encoder_hidden_states` 中的通道数。
  • num_tokens (int, Tuple[int] or List[int], defaults to (4,)) — 图像特征的上下文长度。
  • scale (float or Listfloat, defaults to 1.0) — 图像提示的权重比例。

多 IP-Adapter 的注意力处理器。

class diffusers.models.attention_processor.IPAdapterAttnProcessor2_0

< >

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

参数

  • hidden_size (int) — 注意力层的隐藏大小。
  • cross_attention_dim (int) — `encoder_hidden_states` 中的通道数。
  • num_tokens (int, Tuple[int] or List[int], defaults to (4,)) — 图像特征的上下文长度。
  • scale (float or List[float], defaults to 1.0) — 图像提示的权重比例。

PyTorch 2.0 版 IP-Adapter 的注意力处理器。

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) — 头通道的数量。
  • timesteps_emb_dim (int, defaults to 1280) — 时间步嵌入的输入通道数。
  • scale (float, defaults to 0.5) — IP-Adapter 缩放因子。

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

JointAttnProcessor2_0

class diffusers.models.attention_processor.JointAttnProcessor2_0

< >

( )

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

class diffusers.models.attention_processor.PAGJointAttnProcessor2_0

< >

( )

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

class diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0

< >

( )

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

class diffusers.models.attention_processor.FusedJointAttnProcessor2_0

< >

( )

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

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

< >

( )

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

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, optional) — 计算注意力的步数。使用与 attention_head_dim // slice_size 相同数量的切片,并且 attention_head_dim 必须是 slice_size 的倍数。

用于实现分片注意力的处理器。

class diffusers.models.attention_processor.SlicedAttnAddedKVProcessor

< >

( slice_size )

参数

  • slice_size (int, optional) — 计算注意力的步数。使用与 attention_head_dim // slice_size 相同数量的切片,并且 attention_head_dim 必须是 slice_size 的倍数。

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

XFormersAttnProcessor

class diffusers.models.attention_processor.XFormersAttnProcessor

< >

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

参数

  • attention_op (Callable, optional, defaults to None) — 用作注意力操作符的基础操作符。建议设置为 None,并允许 xFormers 选择最佳操作符。

用于使用 xFormers 实现内存高效注意力的处理器。

class diffusers.models.attention_processor.XFormersAttnAddedKVProcessor

< >

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

参数

  • attention_op (Callable, optional, defaults to None) — 用作注意力操作符的基础操作符。建议设置为 None,并允许 xFormers 选择最佳操作符。

用于使用 xFormers 实现内存高效注意力的处理器。

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 的缩放点积注意力的处理器。

XFormersJointAttnProcessor

class diffusers.models.attention_processor.XFormersJointAttnProcessor

< >

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

参数

  • attention_op (Callable, optional, defaults to None) — 用作注意力操作符的基础操作符。建议设置为 None,并允许 xFormers 选择最佳操作符。

用于使用 xFormers 实现内存高效注意力的处理器。

IPAdapterXFormersAttnProcessor

class diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor

< >

( hidden_size cross_attention_dim = None num_tokens = (4,) scale = 1.0 attention_op: typing.Optional[typing.Callable] = None )

参数

  • hidden_size (int) — 注意力层的隐藏大小。
  • cross_attention_dim (int) — encoder_hidden_states 中的通道数。
  • num_tokens (int, Tuple[int]List[int], 默认为 (4,)) — 图像特征的上下文长度。
  • scale (floatList[float], 默认为 1.0) — 图像提示的权重比例。
  • attention_op (Callable, optional, defaults to None) — 用作注意力操作符的基础操作符。建议设置为 None,并允许 xFormers 选择最佳操作符。

用于 IP-Adapter 的 xFormers 注意力处理器。

FluxIPAdapterJointAttnProcessor2_0

class diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0

< >

( hidden_size: int cross_attention_dim: int num_tokens = (4,) scale = 1.0 device = None dtype = None )

用于 IP-Adapter 的 Flux 注意力处理器。

XLAFluxFlashAttnProcessor2_0

class diffusers.models.attention_processor.XLAFluxFlashAttnProcessor2_0

< >

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

用于在使用 torch_xla 时实现带有 pallas flash attention kernel 的缩放点积注意力的处理器。

< > 在 GitHub 上更新