Diffusers 文档

注意力处理器

Hugging Face's logo
加入 Hugging Face 社区

并访问增强文档体验

开始使用

注意力处理器

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

AttnProcessor

diffusers.models.attention_processor.AttnProcessor

AttnProcessor2_0

diffusers.models.attention_processor.AttnProcessor2_0

< >

( )

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

AttnAddedKVProcessor

diffusers.models.attention_processor.AttnAddedKVProcessor

< >

( )

处理程序,用于针对文本编码器执行关注相关计算,同时额外可学习键和值矩阵。

AttnAddedKVProcessor2_0

diffusers.models.attention_processor.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

< >

( 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 )

参数

  • train_kv (bool,默认为 True) — 是否新训练文本特征对应的键值矩阵。
  • train_q_out (bool,默认为 True) — 是否新训练与潜在图像特征对应的查询矩阵。
  • cross_attention_dim (int可选,默认为 None) — encoder_hidden_states 中通道的数目。
  • out_bias (bool,默认为 True) — 是否在 train_q_out 中包括偏差参数。
  • dropout (float, 可选, 默认为 0.0) — 要使用的 dropout 概率。

实现自定义扩散方法注意力的处理器。

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 )

参数

  • train_kv (bool,默认为 True) — 是否要新训练与文本特征对应的 key 和 values 矩阵。
  • 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 方法的注意力。

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_sizeint可选,默认为None)—注意力层的隐藏大小。
  • cross_attention_dimint可选,默认为None)—encoder_hidden_states中的通道数。
  • dropout (float, 可选,默认为 0.0) — 要使用的 dropout 概率。
  • attention_op (可调用对象可选,默认为 None) — 要用作关注操作符的基础 操作符。建议设置为 None,并允许 xFormers 选择最佳操作符。

用于使用 xFormers 为 Custom Diffusion 方法实现内存高效关注的处理器。

FusedAttnProcessor2_0

diffusers.models.attention_processor.FusedAttnProcessor2_0

< >

( )

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

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

SlicedAttnProcessor

diffusers.models.attention_processor.SlicedAttnProcessor

< >

( slice_size: int )

参数

  • slice_size (int, optional) — 关注计算时的分块数量。当 attention_head_dim // slice_size 作为分块数量使用时,同时,attention_head_dim 必须是 slice_size 的倍数。

用于执行分块关注的处理器。

SlicedAttnAddedKVProcessor

class diffusers.models.attention_processor.SlicedAttnAddedKVProcessor

< >

( slice_size )

参数

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

用于对文本编码器的额外可学习键值矩阵实现切片注意力的处理器。

XFormersAttnProcessor

diffusers.models.attention_processor.XFormersAttnProcessor

< >

( attention_op: 默认为 None )

参数

  • attention_op (Callable, 可选,默认值为 None) — 用于作为关注运算符的基本 运算符。建议将其设置为 None,并允许 xFormers 选择最佳运算符。

使用 xFormers 实施内存高效的关注的处理器。

AttnProcessorNPU

diffusers.models.attention_processor.AttnProcessorNPU

< >

( )

使用 torch_npu 实现闪存注意力的处理器。Torch_npu 仅支持 fp16 和 bf16 数据类型。如果使用 fp32,则为计算使用 F.scaled_dot_product_attention,但是 NPU 上的加速效果并不显著。

< > 更新在 GitHub 上