Diffusers 文档
Attention Processor
并获得增强的文档体验
开始使用
注意力处理器
注意力处理器是一个用于应用不同类型注意力机制的类。
AttnProcessor
用于执行注意力相关计算的默认处理器。
用于实现缩放点积注意力(如果使用 PyTorch 2.0,则默认启用)的处理器。
用于执行注意力相关计算的处理器,带有用于文本编码器的额外可学习的键和值矩阵。
用于执行缩放点积注意力(如果使用 PyTorch 2.0,则默认启用)的处理器,带有用于文本编码器的额外可学习的键和值矩阵。
用于使用 torch_npu 实现闪存注意力的处理器。Torch_npu 仅支持 fp16 和 bf16 数据类型。如果使用 fp32,将使用 F.scaled_dot_product_attention 进行计算,但对 NPU 的加速效果不明显。
用于实现缩放点积注意力(如果使用 PyTorch 2.0,则默认启用)的处理器。它使用融合的投影层。对于自注意力模块,所有投影矩阵(即查询、键、值)都已融合。对于交叉注意力模块,键和值投影矩阵已融合。
此 API 目前处于🧪实验阶段,未来可能会发生变化。
Allegro
用于实现缩放点积注意力(如果使用 PyTorch 2.0,则默认启用)的处理器。这在 Allegro 模型中使用。它对查询和键向量应用归一化层和旋转嵌入。
AuraFlow
通常用于处理 Aura Flow 的注意力处理器。
通常用于处理具有融合投影的 Aura Flow 的注意力处理器。
CogVideoX
用于实现 CogVideoX 模型缩放点积注意力的处理器。它对查询和键向量应用旋转嵌入,但不包含空间归一化。
用于实现 CogVideoX 模型缩放点积注意力的处理器。它对查询和键向量应用旋转嵌入,但不包含空间归一化。
CrossFrameAttnProcessor
class diffusers.pipelines.text_to_video_synthesis.pipeline_text_to_video_zero.CrossFrameAttnProcessor
< 来源 >( 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 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 概率。 - attention_op (
Callable
, optional, defaults toNone
) — 用作注意力操作符的基础 操作符。建议将其设置为None
,并让 xFormers 选择最佳操作符。
用于实现 Custom Diffusion 方法中高效内存注意力的处理器,使用 xFormers。
Flux
通常用于处理 SD3 类似自注意力投影的注意力处理器。
通常用于处理 SD3 类似自注意力投影的注意力处理器。
用于实现缩放点积注意力(如果使用 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://huggingface.co/papers/2403.17377
用于实现 PAG 的处理器,使用缩放点积注意力(如果使用 PyTorch 2.0 默认启用)。PAG 参考:https://huggingface.co/papers/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 的注意力处理器。
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 的注意力处理器。
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 的自注意力投影,并带有额外的基于图像的信息和时间步嵌入。
JointAttnProcessor2_0
通常用于处理 SD3 类似自注意力投影的注意力处理器。
通常用于处理 SD3 类似自注意力投影的注意力处理器。
通常用于处理 SD3 类似自注意力投影的注意力处理器。
通常用于处理 SD3 类似自注意力投影的注意力处理器。
LoRA
用于实现带 LoRA 的注意力的处理器。
用于实现带 LoRA 的注意力的处理器(如果使用 PyTorch 2.0 默认启用)。
用于实现带 LoRA 和文本编码器额外可学习键值矩阵的注意力处理器。
用于实现带 LoRA 的注意力处理器,使用 xFormers。
Lumina-T2X
用于实现缩放点积注意力(如果使用 PyTorch 2.0 默认启用)的处理器。在 LuminaNextDiT 模型中使用。它在查询和键向量上应用 s 归一化层和旋转嵌入。
Mochi
Mochi 中使用的注意力处理器。
Mochi VAE 中使用的注意力处理器。
Sana
用于实现缩放点积线性注意力的处理器。
用于实现多尺度二次注意力的处理器。
用于实现缩放点积线性注意力的处理器。
用于实现缩放点积线性注意力的处理器。
Stable Audio
用于实现缩放点积注意力(如果使用 PyTorch 2.0,则默认启用)的处理器。这在 Stable Audio 模型中使用。它在查询和键向量上应用旋转嵌入,并支持 MHA、GQA 或 MQA。
SlicedAttnProcessor
class diffusers.models.attention_processor.SlicedAttnProcessor
< source >( slice_size: int )
用于实现分片注意力的处理器。
class diffusers.models.attention_processor.SlicedAttnAddedKVProcessor
< source >( slice_size )
用于实现带有额外可学习键和值矩阵的分片注意力的处理器,用于文本编码器。
XFormersAttnProcessor
class diffusers.models.attention_processor.XFormersAttnProcessor
< source >( attention_op: typing.Optional[typing.Callable] = None )
参数
- attention_op (
Callable
, optional, defaults toNone
) — 用作注意力操作符的基础操作符。建议设置为None
,并允许 xFormers 选择最佳操作符。
用于使用 xFormers 实现内存高效注意力的处理器。
class diffusers.models.attention_processor.XFormersAttnAddedKVProcessor
< source >( attention_op: typing.Optional[typing.Callable] = None )
参数
- attention_op (
Callable
, optional, defaults toNone
) — 用作注意力操作符的基础操作符。建议设置为None
,并允许 xFormers 选择最佳操作符。
用于使用 xFormers 实现内存高效注意力的处理器。
XLAFlashAttnProcessor2_0
class diffusers.models.attention_processor.XLAFlashAttnProcessor2_0
< source >( partition_spec: typing.Optional[typing.Tuple[typing.Optional[str], ...]] = None )
用于在使用 torch_xla
时实现带有 pallas flash attention kernel 的缩放点积注意力的处理器。
XFormersJointAttnProcessor
class diffusers.models.attention_processor.XFormersJointAttnProcessor
< source >( attention_op: typing.Optional[typing.Callable] = None )
参数
- attention_op (
Callable
, optional, defaults toNone
) — 用作注意力操作符的基础操作符。建议设置为None
,并允许 xFormers 选择最佳操作符。
用于使用 xFormers 实现内存高效注意力的处理器。
IPAdapterXFormersAttnProcessor
class diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor
< source >( 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 (
float
或List[float]
, 默认为 1.0) — 图像提示的权重比例。 - attention_op (
Callable
, optional, defaults toNone
) — 用作注意力操作符的基础操作符。建议设置为None
,并允许 xFormers 选择最佳操作符。
用于 IP-Adapter 的 xFormers 注意力处理器。
FluxIPAdapterJointAttnProcessor2_0
class diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0
< source >( 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
< source >( partition_spec: typing.Optional[typing.Tuple[typing.Optional[str], ...]] = None )
用于在使用 torch_xla
时实现带有 pallas flash attention kernel 的缩放点积注意力的处理器。