Diffusers 文件

Attention Processor

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

注意力處理器

注意力處理器是一個用於應用不同型別注意力機制的類。

AttnProcessor

class diffusers.models.attention_processor.AttnProcessor

< >

( )

用於執行注意力相關計算的預設處理器。

class diffusers.models.attention_processor.AttnProcessor2_0

< >

( )

用於實現縮放點積注意力(如果使用 PyTorch 2.0,則預設啟用)的處理器。

class diffusers.models.attention_processor.AttnAddedKVProcessor

< >

( )

用於執行注意力相關計算的處理器,帶有用於文字編碼器的額外可學習的鍵和值矩陣。

class diffusers.models.attention_processor.AttnAddedKVProcessor2_0

< >

( )

用於執行縮放點積注意力(如果使用 PyTorch 2.0,則預設啟用)的處理器,帶有用於文字編碼器的額外可學習的鍵和值矩陣。

class diffusers.models.attention_processor.AttnProcessorNPU

< >

( )

用於使用 torch_npu 實現快閃記憶體注意力的處理器。Torch_npu 僅支援 fp16 和 bf16 資料型別。如果使用 fp32,將使用 F.scaled_dot_product_attention 進行計算,但對 NPU 的加速效果不明顯。

class diffusers.models.attention_processor.FusedAttnProcessor2_0

< >

( )

用於實現縮放點積注意力(如果使用 PyTorch 2.0,則預設啟用)的處理器。它使用融合的投影層。對於自注意力模組,所有投影矩陣(即查詢、鍵、值)都已融合。對於交叉注意力模組,鍵和值投影矩陣已融合。

此 API 目前處於🧪實驗階段,未來可能會發生變化。

Allegro

class diffusers.models.attention_processor.AllegroAttnProcessor2_0

< >

( )

用於實現縮放點積注意力(如果使用 PyTorch 2.0,則預設啟用)的處理器。這在 Allegro 模型中使用。它對查詢和鍵向量應用歸一化層和旋轉嵌入。

AuraFlow

class diffusers.models.attention_processor.AuraFlowAttnProcessor2_0

< >

( )

通常用於處理 Aura Flow 的注意力處理器。

class diffusers.models.attention_processor.FusedAuraFlowAttnProcessor2_0

< >

( )

通常用於處理具有融合投影的 Aura Flow 的注意力處理器。

CogVideoX

class diffusers.models.attention_processor.CogVideoXAttnProcessor2_0

< >

( )

用於實現 CogVideoX 模型縮放點積注意力的處理器。它對查詢和鍵向量應用旋轉嵌入,但不包含空間歸一化。

class diffusers.models.attention_processor.FusedCogVideoXAttnProcessor2_0

< >

( )

用於實現 CogVideoX 模型縮放點積注意力的處理器。它對查詢和鍵向量應用旋轉嵌入,但不包含空間歸一化。

CrossFrameAttnProcessor

class diffusers.pipelines.text_to_video_synthesis.pipeline_text_to_video_zero.CrossFrameAttnProcessor

< >

( batch_size = 2 )

引數

  • batch_size (int, 預設為 2) — 表示實際批次大小的數字,而不是幀數。例如,使用單個提示和 num_images_per_prompt=1 呼叫 unet 時,由於無分類器引導,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 to None) — 注意力層的隱藏大小。
  • cross_attention_dim (int, optional, defaults to None) — `encoder_hidden_states` 中的通道數。
  • out_bias (bool, defaults to True) — 是否在 train_q_out 中包含偏置引數。
  • dropout (float, optional, defaults to 0.0) — 要使用的 dropout 機率。
  • attention_op (Callable, optional, defaults to None) — 用作注意力運算子的基礎 運算子。建議將其設定為 None,並讓 xFormers 選擇最佳運算子。

用於實現 Custom Diffusion 方法中高效記憶體注意力的處理器,使用 xFormers。

Flux

class diffusers.models.attention_processor.FluxAttnProcessor2_0

< >

( )

通常用於處理 SD3 類似自注意力投影的注意力處理器。

class diffusers.models.attention_processor.FusedFluxAttnProcessor2_0

< >

( )

通常用於處理 SD3 類似自注意力投影的注意力處理器。

class diffusers.models.attention_processor.FluxSingleAttnProcessor2_0

< >

( )

用於實現縮放點積注意力(如果使用 PyTorch 2.0,則預設啟用)的處理器。

Hunyuan

class diffusers.models.attention_processor.HunyuanAttnProcessor2_0

< >

( )

用於實現縮放點積注意力(如果使用 PyTorch 2.0 預設啟用)的處理器。在 HunyuanDiT 模型中使用。它在查詢和鍵向量上應用 s 歸一化層和旋轉嵌入。

class diffusers.models.attention_processor.FusedHunyuanAttnProcessor2_0

< >

( )

用於實現縮放點積注意力(如果使用 PyTorch 2.0 預設啟用)和融合投影層的處理器。在 HunyuanDiT 模型中使用。它在查詢和鍵向量上應用 s 歸一化層和旋轉嵌入。

class diffusers.models.attention_processor.PAGHunyuanAttnProcessor2_0

< >

( )

用於實現縮放點積注意力(如果使用 PyTorch 2.0 預設啟用)的處理器。在 HunyuanDiT 模型中使用。它在查詢和鍵向量上應用歸一化層和旋轉嵌入。此處理器的變體採用 擾動注意力引導

class diffusers.models.attention_processor.PAGCFGHunyuanAttnProcessor2_0

< >

( )

用於實現縮放點積注意力(如果使用 PyTorch 2.0 預設啟用)的處理器。在 HunyuanDiT 模型中使用。它在查詢和鍵向量上應用歸一化層和旋轉嵌入。此處理器的變體採用 擾動注意力引導

IdentitySelfAttnProcessor2_0

class diffusers.models.attention_processor.PAGIdentitySelfAttnProcessor2_0

< >

( )

用於實現 PAG 的處理器,使用縮放點積注意力(如果使用 PyTorch 2.0 預設啟用)。PAG 參考:https://huggingface.co/papers/2403.17377

class diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0

< >

( )

用於實現 PAG 的處理器,使用縮放點積注意力(如果使用 PyTorch 2.0 預設啟用)。PAG 參考:https://huggingface.co/papers/2403.17377

IP-Adapter

class diffusers.models.attention_processor.IPAdapterAttnProcessor

< >

( hidden_size cross_attention_dim = None num_tokens = (4,) scale = 1.0 )

引數

  • hidden_size (int) — 注意力層的隱藏大小。
  • cross_attention_dim (int) — `encoder_hidden_states` 中的通道數。
  • num_tokens (int, Tuple[int] or List[int], defaults to (4,)) — 影像特徵的上下文長度。
  • scale (float or Listfloat, defaults to 1.0) — 影像提示的權重比例。

多 IP-Adapter 的注意力處理器。

class diffusers.models.attention_processor.IPAdapterAttnProcessor2_0

< >

( hidden_size cross_attention_dim = None num_tokens = (4,) scale = 1.0 )

引數

  • hidden_size (int) — 注意力層的隱藏大小。
  • cross_attention_dim (int) — `encoder_hidden_states` 中的通道數。
  • num_tokens (int, Tuple[int] or List[int], defaults to (4,)) — 影像特徵的上下文長度。
  • scale (float or List[float], defaults to 1.0) — 影像提示的權重比例。

PyTorch 2.0 版 IP-Adapter 的注意力處理器。

class diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0

< >

( hidden_size: int ip_hidden_states_dim: int head_dim: int timesteps_emb_dim: int = 1280 scale: float = 0.5 )

引數

  • hidden_size (int) — 隱藏通道的數量。
  • ip_hidden_states_dim (int) — 影像特徵維度。
  • head_dim (int) — 頭通道的數量。
  • timesteps_emb_dim (int, defaults to 1280) — 時間步嵌入的輸入通道數。
  • scale (float, defaults to 0.5) — IP-Adapter 縮放因子。

IP-Adapter 的注意力處理器,通常用於處理類似 SD3 的自注意力投影,並帶有額外的基於影像的資訊和時間步嵌入。

JointAttnProcessor2_0

class diffusers.models.attention_processor.JointAttnProcessor2_0

< >

( )

通常用於處理 SD3 類似自注意力投影的注意力處理器。

class diffusers.models.attention_processor.PAGJointAttnProcessor2_0

< >

( )

通常用於處理 SD3 類似自注意力投影的注意力處理器。

class diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0

< >

( )

通常用於處理 SD3 類似自注意力投影的注意力處理器。

class diffusers.models.attention_processor.FusedJointAttnProcessor2_0

< >

( )

通常用於處理 SD3 類似自注意力投影的注意力處理器。

LoRA

class diffusers.models.attention_processor.LoRAAttnProcessor

< >

( )

用於實現帶 LoRA 的注意力的處理器。

class diffusers.models.attention_processor.LoRAAttnProcessor2_0

< >

( )

用於實現帶 LoRA 的注意力的處理器(如果使用 PyTorch 2.0 預設啟用)。

class diffusers.models.attention_processor.LoRAAttnAddedKVProcessor

< >

( )

用於實現帶 LoRA 和文字編碼器額外可學習鍵值矩陣的注意力處理器。

class diffusers.models.attention_processor.LoRAXFormersAttnProcessor

< >

( )

用於實現帶 LoRA 的注意力處理器,使用 xFormers。

Lumina-T2X

class diffusers.models.attention_processor.LuminaAttnProcessor2_0

< >

( )

用於實現縮放點積注意力(如果使用 PyTorch 2.0 預設啟用)的處理器。在 LuminaNextDiT 模型中使用。它在查詢和鍵向量上應用 s 歸一化層和旋轉嵌入。

Mochi

class diffusers.models.attention_processor.MochiAttnProcessor2_0

< >

( )

Mochi 中使用的注意力處理器。

class diffusers.models.attention_processor.MochiVaeAttnProcessor2_0

< >

( )

Mochi VAE 中使用的注意力處理器。

Sana

class diffusers.models.attention_processor.SanaLinearAttnProcessor2_0

< >

( )

用於實現縮放點積線性注意力的處理器。

class diffusers.models.attention_processor.SanaMultiscaleAttnProcessor2_0

< >

( )

用於實現多尺度二次注意力的處理器。

class diffusers.models.attention_processor.PAGCFGSanaLinearAttnProcessor2_0

< >

( )

用於實現縮放點積線性注意力的處理器。

class diffusers.models.attention_processor.PAGIdentitySanaLinearAttnProcessor2_0

< >

( )

用於實現縮放點積線性注意力的處理器。

Stable Audio

class diffusers.models.attention_processor.StableAudioAttnProcessor2_0

< >

( )

用於實現縮放點積注意力(如果使用 PyTorch 2.0,則預設啟用)的處理器。這在 Stable Audio 模型中使用。它在查詢和鍵向量上應用旋轉嵌入,並支援 MHA、GQA 或 MQA。

SlicedAttnProcessor

class diffusers.models.attention_processor.SlicedAttnProcessor

< >

( slice_size: int )

引數

  • slice_size (int, optional) — 計算注意力的步數。使用與 attention_head_dim // slice_size 相同數量的切片,並且 attention_head_dim 必須是 slice_size 的倍數。

用於實現分片注意力的處理器。

class diffusers.models.attention_processor.SlicedAttnAddedKVProcessor

< >

( slice_size )

引數

  • slice_size (int, optional) — 計算注意力的步數。使用與 attention_head_dim // slice_size 相同數量的切片,並且 attention_head_dim 必須是 slice_size 的倍數。

用於實現帶有額外可學習鍵和值矩陣的分片注意力的處理器,用於文字編碼器。

XFormersAttnProcessor

class diffusers.models.attention_processor.XFormersAttnProcessor

< >

( attention_op: typing.Optional[typing.Callable] = None )

引數

  • attention_op (Callable, optional, defaults to None) — 用作注意力運算子的基礎運算子。建議設定為 None,並允許 xFormers 選擇最佳運算子。

用於使用 xFormers 實現記憶體高效注意力的處理器。

class diffusers.models.attention_processor.XFormersAttnAddedKVProcessor

< >

( attention_op: typing.Optional[typing.Callable] = None )

引數

  • attention_op (Callable, optional, defaults to None) — 用作注意力運算子的基礎運算子。建議設定為 None,並允許 xFormers 選擇最佳運算子。

用於使用 xFormers 實現記憶體高效注意力的處理器。

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

XFormersJointAttnProcessor

class diffusers.models.attention_processor.XFormersJointAttnProcessor

< >

( attention_op: typing.Optional[typing.Callable] = None )

引數

  • attention_op (Callable, optional, defaults to None) — 用作注意力運算子的基礎運算子。建議設定為 None,並允許 xFormers 選擇最佳運算子。

用於使用 xFormers 實現記憶體高效注意力的處理器。

IPAdapterXFormersAttnProcessor

class diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor

< >

( 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 (floatList[float], 預設為 1.0) — 影像提示的權重比例。
  • attention_op (Callable, optional, defaults to None) — 用作注意力運算子的基礎運算子。建議設定為 None,並允許 xFormers 選擇最佳運算子。

用於 IP-Adapter 的 xFormers 注意力處理器。

FluxIPAdapterJointAttnProcessor2_0

class diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0

< >

( 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

< >

( partition_spec: typing.Optional[typing.Tuple[typing.Optional[str], ...]] = None )

用於在使用 torch_xla 時實現帶有 pallas flash attention kernel 的縮放點積注意力的處理器。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.