注意力处理器
注意力处理器是一个用于应用不同类型的注意力机制的类。
AttnProcessor
AttnProcessor2_0
用于实现缩放到点积注意力的处理器(如果您使用 PyTorch 2.0,则默认启用)。
AttnAddedKVProcessor
处理程序,用于针对文本编码器执行关注相关计算,同时额外可学习键和值矩阵。
AttnAddedKVProcessor2_0
用于执行缩放点积注意力(如果使用 PyTorch 2.0,则默认启用)的处理器,其中包含可学习的文本编码器的额外键和值矩阵。
CrossFrameAttnProcessor
类 diffusers.pipelines.text_to_video_synthesis.pipeline_text_to_video_zero.CrossFrameAttnProcessor
< 源 >( batch_size = 2 )
跨帧注意力处理器。每一帧都关注第一帧。
CustomDiffusionAttnProcessor
类 diffusers.models.attention_processor.CustomDiffusionAttnProcessor
< source >( train_kv: bool = True train_q_out: bool = True hidden_size: Optional = None cross_attention_dim: Optional = None out_bias: bool = True dropout: float = 0.0 )
实现自定义扩散方法注意力的处理器。
CustomDiffusionAttnProcessor2_0
class diffusers.models.attention_processor.CustomDiffusionAttnProcessor2_0
< 源码 >( train_kv: bool = True train_q_out: bool = True hidden_size: Optional = None cross_attention_dim: Optional = None out_bias: bool = True dropout: float = 0.0 )
处理器,使用 PyTorch 的 2.0 版本的内存高效缩放点积注意力来实现 Custom Diffusion 方法的注意力。
CustomDiffusionXFormersAttnProcessor
类 diffusers.models.attention_processor.CustomDiffusionXFormersAttnProcessor
< 源 >( train_kv: bool = True train_q_out: bool = False hidden_size: Optional = None cross_attention_dim: Optional = None out_bias: bool = True dropout: float = 0.0 attention_op:
参数
- train_kv (
bool
,默认为True
) —— 是否针对文本特征新训练键矩阵和值矩阵。 - train_q_out (
bool
,默认为True
) —— 是否针对潜在图像特征新训练查询矩阵。 - hidden_size(
int
,可选,默认为None
)—注意力层的隐藏大小。 - cross_attention_dim(
int
,可选,默认为None
)—encoder_hidden_states
中的通道数。 - attention_op (
可调用对象
,可选,默认为None
) — 要用作关注操作符的基础 操作符。建议设置为None
,并允许 xFormers 选择最佳操作符。
用于使用 xFormers 为 Custom Diffusion 方法实现内存高效关注的处理器。
FusedAttnProcessor2_0
实现缩放点积注意力(默认启用,如果你正在使用 PyTorch 2.0)的处理器。它使用融合投影层。对于自注意力模块,所有投影矩阵(即查询、键、值)都融合在一起。对于交叉注意模块,键和值投影矩阵被融合在一起。
此 API 目前本质上是实验性的,将来可能会变化。
SlicedAttnProcessor
类 diffusers.models.attention_processor.SlicedAttnProcessor
< 源代码 >( slice_size: int )
用于执行分块关注的处理器。
SlicedAttnAddedKVProcessor
class diffusers.models.attention_processor.SlicedAttnAddedKVProcessor
< 源代码 >( slice_size )
用于对文本编码器的额外可学习键值矩阵实现切片注意力的处理器。
XFormersAttnProcessor
类 diffusers.models.attention_processor.XFormersAttnProcessor
< 源代码 >( attention_op: 默认为 None )
参数
- attention_op (
Callable
, 可选,默认值为None
) — 用于作为关注运算符的基本 运算符。建议将其设置为None
,并允许 xFormers 选择最佳运算符。
使用 xFormers 实施内存高效的关注的处理器。
AttnProcessorNPU
使用 torch_npu 实现闪存注意力的处理器。Torch_npu 仅支持 fp16 和 bf16 数据类型。如果使用 fp32,则为计算使用 F.scaled_dot_product_attention,但是 NPU 上的加速效果并不显著。