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 的縮放點積注意力的處理器。