Diffusers documentation

アテンションプロセッサ

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

アテンションプロセッサ

Attention processorは、異なるタイプのattentionメカニズムを適用するためのクラスです。

AttnProcessor

クラス diffusers.models.attention_processor.AttnProcessor

< >

( )

注意関連の計算を実行するためのデフォルトのプロセッサ。

クラス diffusers.models.attention_processor.AttnProcessor2_0

< >

( )

PyTorch 2.0 を使用している場合、デフォルトで有効になります。

クラス diffusers.models.attention_processor.AttnAddedKVProcessor

< >

( )

テキストエンコーダー用の追加の学習可能なキー行列とバリュー行列を用いて、アテンション関連の計算を実行するプロセッサ。

クラス diffusers.models.attention_processor.AttnAddedKVProcessor2_0

< >

( )

PyTorch 2.0 を使用している場合、デフォルトで有効になります。テキストエンコーダー用に追加の学習可能なキー行列とバリュー行列を備えた、スケーリングドットプロダクトアテンションを実行するためのプロセッサです。

クラス diffusers.models.attention_processor.AttnProcessorNPU

< >

( )

torch_npu を使用してフラッシュアテンションを実装するためのプロセッサです。Torch_npu は fp16 と bf16 のデータ型のみをサポートしています。fp32 を使用すると、計算には F.scaled_dot_product_attention が使用されますが、NPU における高速化効果は顕著ではありません。

クラス diffusers.models.attention_processor.FusedAttnProcessor2_0

< >

( )

スケーリングドットプロダクトアテンションを実装するためのプロセッサです(PyTorch 2.0 を使用している場合、デフォルトで有効になります)。フュージョンされた投影層を使用します。自己アテンションモジュールでは、すべての投影行列(つまり、クエリ、キー、バリュー)がフュージョンされます。クロスアテンションモジュールでは、キーとバリューの投影行列がフュージョンされます。

> このAPIは現在🧪実験的な性質を持っており、将来変更される可能性があります。

Allegro

クラス diffusers.models.attention_processor.AllegroAttnProcessor2_0

< >

( )

PyTorch 2.0 を使用している場合、デフォルトで有効になります。これは Allegro モデルで使用されます。クエリベクトルとキーベクトルに対して、正規化レイヤーとロータリー埋め込みを適用します。

AuraFlow

クラス diffusers.models.attention_processor.AuraFlowAttnProcessor2_0

< >

( )

Aura Flowの処理で通常使用されるAttentionプロセッサ。

クラス diffusers.models.attention_processor.FusedAuraFlowAttnProcessor2_0

< >

( )

Attention processorは、通常、融合投影(fused projections)を伴うAura Flowの処理で使用されます。

CogVideoX

クラス diffusers.models.attention_processor.CogVideoXAttnProcessor2_0

< >

( )

CogVideoXモデルのスケーリングドットプロダクトアテンションを実装するためのプロセッサです。クエリベクトルとキーベクトルにロータリー埋め込みを適用しますが、空間正規化は含まれません。

クラス diffusers.models.attention_processor.FusedCogVideoXAttnProcessor2_0

< >

( )

CogVideoXモデルのスケーリングドットプロダクトアテンションを実装するためのプロセッサです。クエリベクトルとキーベクトルにロータリー埋め込みを適用しますが、空間正規化は含まれません。

DreamLite

class diffusers.models.unets.unet_dreamlite.DreamLiteAttnProcessor2_0

< >

( )

Grouped Query Attention (GQA / MQA) 対応のスケーリングドットプロダクトアテンションを実装するためのプロセッサ。

AttnProcessor2_0 と同一ですが、キー/バリューのリシェイプ分岐が attn.kv_heads != attn.heads を正しく処理するように修正されています。具体的には、K/V を kv_heads にリシェイプし、その後 repeat_interleave を使用して attn.heads まで複製します。これは、GQA と qk_norm を組み合わせる DreamLite UNet によって必要とされる処理であり、デフォルトの AttnProcessor2_0 ではこの組み合わせを処理できません。SDPA は dispatch_attention_fn に委譲されるため、diffusers のアテンションバックエンド(ネイティブ PyTorch SDPA、FlashAttention など)のいずれも使用できます。

Custom Diffusion

クラス diffusers.models.attention_processor.CustomDiffusionAttnProcessor

< >

( train_kv: bool = Truetrain_q_out: bool = Truehidden_size: int | None = Nonecross_attention_dim: int | None = Noneout_bias: bool = Truedropout: 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 手法でアテンションを実装するためのプロセッサ。

クラス diffusers.models.attention_processor.CustomDiffusionAttnProcessor2_0

< >

( train_kv: bool = Truetrain_q_out: bool = Truehidden_size: int | None = Nonecross_attention_dim: int | None = Noneout_bias: bool = Truedropout: 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手法のアテンションを実装するためのプロセッサ。

クラス diffusers.models.attention_processor.CustomDiffusionXFormersAttnProcessor

< >

( train_kv: bool = Truetrain_q_out: bool = Falsehidden_size: int | None = Nonecross_attention_dim: int | None = Noneout_bias: bool = Truedropout: float = 0.0attention_op: Callable | None = None )

パラメータ

  • 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 の確率です。
  • attention_op (Callable、省略可能、デフォルトはNone) — アテンション演算子として使用するベースの オペレーターです。Noneに設定し、xFormers が最適なオペレーターを選択できるようにすることを推奨します。

Custom Diffusion 手法において xFormers を使用してメモリ効率の高いアテンションを実装するためのプロセッサ。

Flux

クラス diffusers.models.attention_processor.FluxAttnProcessor2_0

< >

( *args**kwargs )

クラス diffusers.models.attention_processor.FusedFluxAttnProcessor2_0

< >

( *args**kwargs )

クラス diffusers.models.attention_processor.FluxSingleAttnProcessor2_0

< >

( *args**kwargs )

PyTorch 2.0 を使用している場合、デフォルトで有効になります。

Hunyuan

クラス diffusers.models.attention_processor.HunyuanAttnProcessor2_0

< >

( )

PyTorch 2.0 を使用している場合、デフォルトで有効になります。これは HunyuanDiT モデルで使用される、スケーリングドットプロダクトアテンションを実装するためのプロセッサです。クエリベクトルとキーベクトルに s 正規化レイヤーとロータリー埋め込みを適用します。

クラス diffusers.models.attention_processor.FusedHunyuanAttnProcessor2_0

< >

( )

PyTorch 2.0 を使用している場合、デフォルトで有効化される、融合された投影層を備えたスケーリングドットプロダクトアテンションを実装するためのプロセッサです。これは HunyuanDiT モデルで使用されます。クエリベクトルとキーベクトルに s 正規化層とロータリー埋め込みを適用します。

クラス diffusers.models.attention_processor.PAGHunyuanAttnProcessor2_0

< >

( )

スケーリングドットプロダクトアテンションを実装するためのプロセッサです(PyTorch 2.0 を使用している場合は、デフォルトで有効になります)。これは HunyuanDiT モデルで使用されます。クエリベクトルとキーベクトルに対して、正規化レイヤーとロータリー埋め込みを適用します。このプロセッサのバリアントは、Pertubed Attention Guidance を採用しています。

クラス diffusers.models.attention_processor.PAGCFGHunyuanAttnProcessor2_0

< >

( )

スケーリングドットプロダクトアテンションを実装するためのプロセッサです(PyTorch 2.0 を使用している場合は、デフォルトで有効になります)。これは HunyuanDiT モデルで使用されます。クエリベクトルとキーベクトルに対して、正規化レイヤーとロータリー埋め込みを適用します。このプロセッサのバリアントは、Pertubed Attention Guidance を採用しています。

IdentitySelfAttnProcessor2_0

クラス diffusers.models.attention_processor.PAGIdentitySelfAttnProcessor2_0

< >

( )

PyTorch 2.0 を使用している場合、デフォルトで有効になります。スケーリングドットプロダクトアテンションを用いた PAG の実装を行うプロセッサ。 PAG の参考文献: https://huggingface.co/papers/2403.17377

クラス diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0

< >

( )

PyTorch 2.0 を使用している場合、デフォルトで有効になります。スケーリングドットプロダクトアテンションを用いた PAG の実装を行うプロセッサ。 PAG の参考文献: https://huggingface.co/papers/2403.17377

IP-Adapter

クラス diffusers.models.attention_processor.IPAdapterAttnProcessor

< >

( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0 )

パラメータ

  • hidden_size (int) — アテンション層の隠れ層サイズです。
  • cross_attention_dim (int) — encoder_hidden_states のチャネル数です。
  • num_tokens (int、tuple[int]またはlist[int]、デフォルトは(4,)) — 画像特徴のコンテキスト長です。
  • scale (float または float のリスト、デフォルトは 1.0) — 画像プロンプトの重みスケール。

Multiple IP-Adapters用のAttentionプロセッサ。

クラス diffusers.models.attention_processor.IPAdapterAttnProcessor2_0

< >

( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0 )

パラメータ

  • hidden_size (int) — アテンション層の隠れ層サイズです。
  • cross_attention_dim (int) — encoder_hidden_states のチャネル数です。
  • num_tokens (int、tuple[int]またはlist[int]、デフォルトは(4,)) — 画像特徴のコンテキスト長です。
  • scale (float または list[float]、デフォルトは 1.0) — 画像プロンプトの重みスケール。

PyTorch 2.0 用の IP-Adapter 向けの Attention プロセッサ。

クラス diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0

< >

( hidden_size: intip_hidden_states_dim: inthead_dim: inttimesteps_emb_dim: int = 1280scale: float = 0.5 )

パラメータ

  • hidden_size (int) — 隠れ層のチャネル数です。
  • ip_hidden_states_dim (int) — 画像特徴の次元数。
  • head_dim (int) — ヘッドのチャネル数です。
  • timesteps_emb_dim (int, デフォルト値は 1280) — タイムステップ埋め込みの入力チャネル数です。
  • scale (float, デフォルト値は 0.5) — IP-Adapter のスケール。

IP-Adapterで使用されるアテンションプロセッサ。通常、SD3系の自己アテンションの射影処理に使用され、追加の画像ベースの情報とタイムステップ埋め込みを伴います。

JointAttnProcessor2_0

クラス diffusers.models.attention_processor.JointAttnProcessor2_0

< >

( )

SD3系の自己注意投影の処理に通常使用されるAttentionプロセッサ。

クラス diffusers.models.attention_processor.PAGJointAttnProcessor2_0

< >

( )

SD3系の自己注意投影の処理に通常使用されるAttentionプロセッサ。

クラス diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0

< >

( )

SD3系の自己注意投影の処理に通常使用されるAttentionプロセッサ。

クラス diffusers.models.attention_processor.FusedJointAttnProcessor2_0

< >

( )

SD3系の自己注意投影の処理に通常使用されるAttentionプロセッサ。

LoRA

クラス diffusers.models.attention_processor.LoRAAttnProcessor

< >

( )

LoRAによるアテンションを実装するためのプロセッサ。

クラス diffusers.models.attention_processor.LoRAAttnProcessor2_0

< >

( )

LoRAによるアテンションを実装するためのプロセッサ(PyTorch 2.0を使用している場合、デフォルトで有効になります)。

クラス diffusers.models.attention_processor.LoRAAttnAddedKVProcessor

< >

( )

テキストエンコーダー用の、追加の学習可能なキー行列とバリュー行列を備えたLoRAによるアテンションを実装するためのプロセッサ。

クラス diffusers.models.attention_processor.LoRAXFormersAttnProcessor

< >

( )

xFormers を使用して LoRA によるアテンションを実装するためのプロセッサ。

Lumina-T2X

クラス diffusers.models.attention_processor.LuminaAttnProcessor2_0

< >

( )

PyTorch 2.0 を使用している場合、デフォルトで有効になります。これは LuminaNextDiT モデルで使用されます。クエリベクトルとキーベクトルに s 正規化レイヤーとロータリー埋め込みを適用します。

Mochi

クラス diffusers.models.attention_processor.MochiAttnProcessor2_0

< >

( )

Mochiで使用されるAttentionプロセッサ。

クラス diffusers.models.attention_processor.MochiVaeAttnProcessor2_0

< >

( )

Mochi VAEで使用されるAttentionプロセッサ。

Sana

クラス diffusers.models.attention_processor.SanaLinearAttnProcessor2_0

< >

( )

スケーリングドット積線形アテンションを実装するためのプロセッサ。

クラス diffusers.models.attention_processor.SanaMultiscaleAttnProcessor2_0

< >

( )

マルチスケール二次注意を実装するためのプロセッサ。

クラス diffusers.models.attention_processor.PAGCFGSanaLinearAttnProcessor2_0

< >

( )

スケーリングドット積線形アテンションを実装するためのプロセッサ。

クラス diffusers.models.attention_processor.PAGIdentitySanaLinearAttnProcessor2_0

< >

( )

スケーリングドット積線形アテンションを実装するためのプロセッサ。

Stable Audio

クラス diffusers.models.attention_processor.StableAudioAttnProcessor2_0

< >

( )

PyTorch 2.0 を使用している場合、デフォルトで有効になります。これは Stable Audio モデルで使用されます。クエリベクトルとキーベクトルに回転埋め込みを適用し、MHA、GQA、MQA のいずれもサポートします。

SlicedAttnProcessor

クラス diffusers.models.attention_processor.SlicedAttnProcessor

< >

( slice_size: int )

パラメータ

  • slice_size (int, 任意) — アテンションを計算するステップ数。attention_head_dim // slice_size 個のスライスを使用し、attention_head_dim は slice_size の倍数である必要があります。

スライスされたアテンションを実装するためのプロセッサ。

クラス 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: Callable | None = None )

パラメータ

  • attention_op (Callable、省略可能、デフォルトは None) — アテンション演算子として使用するベースの オペレーターです。 Noneに設定し、xFormers が最適なオペレーターを選択できるようにすることを推奨します。

xFormers を使用してメモリ効率の高いアテンションを実装するためのプロセッサ。

クラス diffusers.models.attention_processor.XFormersAttnAddedKVProcessor

< >

( attention_op: Callable | None = None )

パラメータ

  • attention_op (Callable、省略可能、デフォルトは None) — アテンション演算子として使用するベースの オペレーターです。 Noneに設定し、xFormers が最適なオペレーターを選択できるようにすることを推奨します。

xFormers を使用してメモリ効率の高いアテンションを実装するためのプロセッサ。

XLAFlashAttnProcessor2_0

クラス diffusers.models.attention_processor.XLAFlashAttnProcessor2_0

< >

( partition_spec: tuple[str | None, ...] | None = None )

torch_xlaを使用する場合、pallas flash attentionカーネルを用いたスケーリングドットプロダクトアテンションを実装するためのプロセッサ。

XFormersJointAttnProcessor

クラス diffusers.models.attention_processor.XFormersJointAttnProcessor

< >

( attention_op: Callable | None = None )

パラメータ

  • attention_op (Callable、省略可能、デフォルトは None) — アテンション演算子として使用するベースの オペレーターです。 Noneに設定し、xFormers が最適なオペレーターを選択できるようにすることを推奨します。

xFormers を使用してメモリ効率の高いアテンションを実装するためのプロセッサ。

IPAdapterXFormersAttnProcessor

クラス diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor

< >

( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0attention_op: Callable | None = 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、省略可能、デフォルトは None) — アテンション演算子として使用するベースの オペレーターです。 Noneに設定し、xFormers が最適なオペレーターを選択できるようにすることを推奨します。

xFormers を使用した IP-Adapter 用のアテンションプロセッサ。

FluxIPAdapterJointAttnProcessor2_0

クラス diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0

< >

( *args**kwargs )

XLAFluxFlashAttnProcessor2_0

クラス diffusers.models.attention_processor.XLAFluxFlashAttnProcessor2_0

< >

( *args**kwargs )

torch_xlaを使用する場合、pallas flash attentionカーネルを用いたスケーリングドットプロダクトアテンションを実装するためのプロセッサ。

Update on GitHub