Diffusers 文档
注意力处理器
并获得增强的文档体验
开始使用
Attention Processor
注意力处理器是一个用于应用不同类型注意力机制的类。
AttnProcessor
用于执行注意力相关计算的默认处理器。
用于实现缩放点积注意力(如果您正在使用 PyTorch 2.0,则默认启用)的处理器。
用于执行注意力相关计算的处理器,带有用于文本编码器的额外可学习的键和值矩阵。
用于执行缩放点积注意力(如果您正在使用 PyTorch 2.0,则默认启用)的处理器,带有用于文本编码器的额外可学习的键和值矩阵。
用于使用 torch_npu 实现 Flash Attention 的处理器。Torch_npu 仅支持 fp16 和 bf16 数据类型。如果使用 fp32,则将使用 F.scaled_dot_product_attention 进行计算,但在 NPU 上的加速效果不明显。
用于实现缩放点积注意力(如果您正在使用 PyTorch 2.0,则默认启用)的处理器。它使用融合投影层。对于自注意力模块,所有投影矩阵(即,query、key、value)都被融合。对于交叉注意力模块,key 和 value 投影矩阵被融合。
此 API 目前本质上是 🧪 实验性的,未来可能会发生变化。
Allegro
用于实现缩放点积注意力(如果您正在使用 PyTorch 2.0,则默认启用)的处理器。这在 Allegro 模型中使用。它在 query 和 key 向量上应用归一化层和旋转嵌入。
AuraFlow
通常用于处理 Aura Flow 的注意力处理器。
通常用于处理带有融合投影的 Aura Flow 的注意力处理器。
CogVideoX
用于为 CogVideoX 模型实现缩放点积注意力机制的处理器。它在查询和键向量上应用旋转嵌入,但不包含空间归一化。
用于为 CogVideoX 模型实现缩放点积注意力机制的处理器。它在查询和键向量上应用旋转嵌入,但不包含空间归一化。
CrossFrameAttnProcessor
class diffusers.pipelines.text_to_video_synthesis.pipeline_text_to_video_zero.CrossFrameAttnProcessor
< source >( batch_size = 2 )
跨帧注意力处理器。每个帧都关注第一帧。
Custom Diffusion
class diffusers.models.attention_processor.CustomDiffusionAttnProcessor
< source >( 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 toTrue
) — 是否新训练与文本特征相对应的键和值矩阵。 - train_q_out (
bool
, defaults toTrue
) — 是否新训练与潜在图像特征相对应的查询矩阵。 - hidden_size (
int
, optional, defaults toNone
) — 注意力层的隐藏层大小。 - cross_attention_dim (
int
, optional, defaults toNone
) —encoder_hidden_states
中的通道数。 - out_bias (
bool
, defaults toTrue
) — 是否在train_q_out
中包含偏置参数。 - dropout (
float
, optional, defaults to 0.0) — 要使用的 dropout 概率。
用于为 Custom Diffusion 方法实现注意力的处理器。
class diffusers.models.attention_processor.CustomDiffusionAttnProcessor2_0
< source >( 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 toTrue
) — 是否新训练与文本特征相对应的键和值矩阵。 - train_q_out (
bool
, defaults toTrue
) — 是否新训练与潜在图像特征相对应的查询矩阵。 - hidden_size (
int
, optional, defaults toNone
) — 注意力层的隐藏层大小。 - cross_attention_dim (
int
, optional, defaults toNone
) —encoder_hidden_states
中的通道数。 - out_bias (
bool
, defaults toTrue
) — 是否在train_q_out
中包含偏置参数。 - dropout (
float
, optional, defaults to 0.0) — 要使用的 dropout 概率。
用于使用 PyTorch 2.0 的内存高效缩放点积注意力为 Custom Diffusion 方法实现注意力的处理器。
class diffusers.models.attention_processor.CustomDiffusionXFormersAttnProcessor
< source >( 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 toTrue
) — 是否新训练与文本特征相对应的键和值矩阵。 - train_q_out (
bool
, defaults toTrue
) — 是否新训练与潜在图像特征相对应的查询矩阵。 - hidden_size (
int
, optional, defaults toNone
) — 注意力层的隐藏层大小。 - cross_attention_dim (
int
, optional, defaults toNone
) —encoder_hidden_states
中的通道数。 - out_bias (
bool
, defaults toTrue
) — 是否在train_q_out
中包含偏置参数。 - dropout (
float
, 可选, 默认为 0.0) — 要使用的 dropout 概率。 - attention_op (
Callable
, 可选, 默认为None
) — 用作 attention 算子的基础 operator。 建议设置为None
,并允许 xFormers 选择最佳算子。
用于为 Custom Diffusion 方法实现内存高效 attention 的处理器。
Flux
通常用于处理 SD3 类自注意力投影的 Attention 处理器。
通常用于处理 SD3 类自注意力投影的 Attention 处理器。
用于实现缩放点积注意力(如果您正在使用 PyTorch 2.0,则默认启用)的处理器。
Hunyuan
用于实现缩放点积注意力(如果您使用 PyTorch 2.0,则默认启用)的处理器。 这在 HunyuanDiT 模型中使用。 它在查询和键向量上应用 s 归一化层和旋转嵌入。
用于实现具有融合投影层的缩放点积注意力(如果您使用 PyTorch 2.0,则默认启用)的处理器。 这在 HunyuanDiT 模型中使用。 它在查询和键向量上应用 s 归一化层和旋转嵌入。
用于实现缩放点积注意力(如果您使用 PyTorch 2.0,则默认启用)的处理器。 这在 HunyuanDiT 模型中使用。 它在查询和键向量上应用归一化层和旋转嵌入。 此处理器的变体采用了扰动注意力引导。
用于实现缩放点积注意力(如果您使用 PyTorch 2.0,则默认启用)的处理器。 这在 HunyuanDiT 模型中使用。 它在查询和键向量上应用归一化层和旋转嵌入。 此处理器的变体采用了扰动注意力引导。
IdentitySelfAttnProcessor2_0
用于实现使用缩放点积注意力的 PAG 处理器(如果您使用 PyTorch 2.0,则默认启用)。 PAG 参考: https://arxiv.org/abs/2403.17377
用于实现使用缩放点积注意力的 PAG 处理器(如果您使用 PyTorch 2.0,则默认启用)。 PAG 参考: https://arxiv.org/abs/2403.17377
IP-Adapter
class diffusers.models.attention_processor.IPAdapterAttnProcessor
< source >( hidden_size cross_attention_dim = None num_tokens = (4,) scale = 1.0 )
用于多个 IP-Adapter 的 Attention 处理器。
class diffusers.models.attention_processor.IPAdapterAttnProcessor2_0
< source >( hidden_size cross_attention_dim = None num_tokens = (4,) scale = 1.0 )
用于 PyTorch 2.0 的 IP-Adapter 的 Attention 处理器。
class diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0
< source >( hidden_size: int ip_hidden_states_dim: int head_dim: int timesteps_emb_dim: int = 1280 scale: float = 0.5 )
IP-Adapter 的注意力处理器,通常用于处理类似 SD3 的自注意力投影,带有额外的基于图像的信息和 timestep 嵌入。
JointAttnProcessor2_0
通常用于处理 SD3 类自注意力投影的 Attention 处理器。
通常用于处理 SD3 类自注意力投影的 Attention 处理器。
通常用于处理 SD3 类自注意力投影的 Attention 处理器。
通常用于处理 SD3 类自注意力投影的 Attention 处理器。
LoRA
用于实现带有 LoRA 的注意力的处理器。
用于实现带有 LoRA 的注意力处理器(如果您使用 PyTorch 2.0,则默认启用)。
用于实现带有 LoRA 的注意力处理器,并为文本编码器提供额外的可学习的键和值矩阵。
用于使用 xFormers 实现带有 LoRA 的注意力的处理器。
Lumina-T2X
用于实现缩放点积注意力的处理器(如果您使用 PyTorch 2.0,则默认启用)。这在 LuminaNextDiT 模型中使用。它在查询和键向量上应用 s 归一化层和旋转嵌入。
Mochi
Mochi 中使用的注意力处理器。
Mochi VAE 中使用的注意力处理器。
Sana
用于实现缩放点积线性注意力的处理器。
用于实现多尺度二次注意力的处理器。
用于实现缩放点积线性注意力的处理器。
用于实现缩放点积线性注意力的处理器。
Stable Audio
用于实现缩放点积注意力的处理器(如果您使用 PyTorch 2.0,则默认启用)。这在 Stable Audio 模型中使用。它在查询和键向量上应用旋转嵌入,并允许 MHA、GQA 或 MQA。
SlicedAttnProcessor
用于实现切片 attention 的处理器。
class diffusers.models.attention_processor.SlicedAttnAddedKVProcessor
< 源码 >( 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 处理器。