Diffusers documentation

Attention Processor

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Attention Processor

Attention processor adalah kelas untuk menerapkan berbagai jenis mekanisme perhatian.

AttnProcessor

kelas diffusers.models.attention_processor.AttnProcessor

< >

( )

Pemroses default untuk melakukan komputasi terkait perhatian.

kelas diffusers.models.attention_processor.AttnProcessor2_0

< >

( )

Processor untuk menerapkan scaled dot-product attention (diaktifkan secara default jika Anda menggunakan PyTorch 2.0).

kelas diffusers.models.attention_processor.AttnAddedKVProcessor

< >

( )

Processor untuk melakukan komputasi terkait perhatian dengan matriks kunci dan nilai yang dapat dipelajari tambahan untuk encoder teks.

kelas diffusers.models.attention_processor.AttnAddedKVProcessor2_0

< >

( )

Processor untuk melakukan scaled dot-product attention (diaktifkan secara default jika Anda menggunakan PyTorch 2.0), dengan matriks key dan value yang dapat dipelajari tambahan untuk text encoder.

kelas diffusers.models.attention_processor.AttnProcessorNPU

< >

( )

Processor untuk menerapkan flash attention menggunakan torch_npu. Torch_npu hanya mendukung tipe data fp16 dan bf16. Jika fp32 digunakan, F.scaled_dot_product_attention akan digunakan untuk komputasi, tetapi efek akselerasi pada NPU tidak signifikan.

kelas diffusers.models.attention_processor.FusedAttnProcessor2_0

< >

( )

Processor untuk menerapkan scaled dot-product attention (diaktifkan secara default jika Anda menggunakan PyTorch 2.0). Ini menggunakan lapisan proyusi yang digabungkan. Untuk modul self-attention, semua matriks proyusi (yaitu, query, key, value) digabungkan. Untuk modul cross-attention, matriks proyusi key dan value digabungkan.

> API ini saat ini bersifat 🧪 eksperimental dan dapat berubah di masa depan.

Allegro

kelas diffusers.models.attention_processor.AllegroAttnProcessor2_0

< >

( )

Processor untuk menerapkan scaled dot-product attention (diaktifkan secara default jika Anda menggunakan PyTorch 2.0). Ini digunakan dalam model Allegro. Ia menerapkan lapisan normalisasi dan rotary embedding pada vektor query dan key.

AuraFlow

kelas diffusers.models.attention_processor.AuraFlowAttnProcessor2_0

< >

( )

Processor perhatian yang biasanya digunakan dalam pemrosesan Aura Flow.

kelas diffusers.models.attention_processor.FusedAuraFlowAttnProcessor2_0

< >

( )

Processor perhatian yang biasanya digunakan dalam pemrosesan Aura Flow dengan proyeksi yang digabungkan.

CogVideoX

kelas diffusers.models.attention_processor.CogVideoXAttnProcessor2_0

< >

( )

Processor untuk menerapkan scaled dot-product attention pada model CogVideoX. Ini menerapkan rotary embedding pada vektor query dan key, tetapi tidak termasuk normalisasi spasial.

kelas diffusers.models.attention_processor.FusedCogVideoXAttnProcessor2_0

< >

( )

Processor untuk menerapkan scaled dot-product attention pada model CogVideoX. Ini menerapkan rotary embedding pada vektor query dan key, tetapi tidak termasuk normalisasi spasial.

DreamLite

kelas diffusers.models.unets.unet_dreamlite.DreamLiteAttnProcessor2_0

< >

( )

Processor untuk menerapkan scaled dot-product attention dengan dukungan Grouped Query Attention (GQA / MQA).

Identik dengan AttnProcessor2_0 kecuali cabang reshape key/value menangani attn.kv_heads != attn.heads dengan benar, yaitu dengan merubah bentuk K/V menjadi kv_heads lalu melakukan repeat_interleave hingga mencapai attn.heads. Hal ini diperlukan oleh DreamLite UNet, yang menggabungkan GQA dengan qk_norm — sebuah kombinasi yang tidak ditangani oleh AttnProcessor2_0 bawaan. SDPA didelegasikan ke dispatch_attention_fn sehingga backend attention diffusers mana pun (native PyTorch SDPA, FlashAttention, dll.) dapat digunakan.

Custom Diffusion

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

Parameter

  • train_kv (bool, defaultnya True) — Apakah akan melatih ulang matriks key dan value yang sesuai dengan fitur teks.
  • train_q_out (bool, defaultnya True) — Apakah akan melatih ulang matriks query yang sesuai dengan fitur gambar laten.
  • hidden_size (int, opsional, defaultnya None) — Ukuran tersembunyi dari lapisan perhatian.
  • cross_attention_dim (int, opsional, defaultnya None) — Jumlah channel dalam encoder_hidden_states.
  • out_bias (bool, defaultnya True) — Apakah akan menyertakan parameter bias di train_q_out.
  • dropout (float, opsional, default 0.0) — Probabilitas dropout yang digunakan.

Processor untuk menerapkan perhatian (attention) untuk metode Custom Diffusion.

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

Parameter

  • train_kv (bool, defaultnya True) — Apakah akan melatih ulang matriks key dan value yang sesuai dengan fitur teks.
  • train_q_out (bool, defaultnya True) — Apakah akan melatih ulang matriks query yang sesuai dengan fitur gambar laten.
  • hidden_size (int, opsional, defaultnya None) — Ukuran tersembunyi dari lapisan perhatian.
  • cross_attention_dim (int, opsional, defaultnya None) — Jumlah channel dalam encoder_hidden_states.
  • out_bias (bool, defaultnya True) — Apakah akan menyertakan parameter bias di train_q_out.
  • dropout (float, opsional, default 0.0) — Probabilitas dropout yang digunakan.

Processor untuk menerapkan perhatian (attention) untuk metode Custom Diffusion menggunakan scaled dot-product attention yang hemat memori dari PyTorch 2.0.

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

Parameter

  • train_kv (bool, defaultnya True) — Apakah akan melatih ulang matriks key dan value yang sesuai dengan fitur teks.
  • train_q_out (bool, defaultnya True) — Apakah akan melatih ulang matriks query yang sesuai dengan fitur gambar laten.
  • hidden_size (int, opsional, defaultnya None) — Ukuran tersembunyi dari lapisan perhatian.
  • cross_attention_dim (int, opsional, defaultnya None) — Jumlah channel dalam encoder_hidden_states.
  • out_bias (bool, defaultnya True) — Apakah akan menyertakan parameter bias di train_q_out.
  • dropout (float, opsional, default 0.0) — Probabilitas dropout yang digunakan.
  • attention_op (Callable, opsional, default None) — operator dasar yang digunakan sebagai operator attention. Disarankan untuk diset ke None, dan membiarkan xFormers memilih operator terbaik.

Processor untuk menerapkan perhatian yang efisien memori menggunakan xFormers untuk metode Custom Diffusion.

Flux

kelas diffusers.models.attention_processor.FluxAttnProcessor2_0

< >

( *args**kwargs )

kelas diffusers.models.attention_processor.FusedFluxAttnProcessor2_0

< >

( *args**kwargs )

kelas diffusers.models.attention_processor.FluxSingleAttnProcessor2_0

< >

( *args**kwargs )

Processor untuk menerapkan scaled dot-product attention (diaktifkan secara default jika Anda menggunakan PyTorch 2.0).

Hunyuan

kelas diffusers.models.attention_processor.HunyuanAttnProcessor2_0

< >

( )

Processor untuk menerapkan scaled dot-product attention (diaktifkan secara default jika Anda menggunakan PyTorch 2.0). Ini digunakan dalam model HunyuanDiT. Ini menerapkan lapisan normalisasi s dan rotary embedding pada vektor query dan key.

kelas diffusers.models.attention_processor.FusedHunyuanAttnProcessor2_0

< >

( )

Processor untuk menerapkan scaled dot-product attention (diaktifkan secara default jika Anda menggunakan PyTorch 2.0) dengan lapisan proyeksi yang digabungkan. Ini digunakan dalam model HunyuanDiT. Ini menerapkan lapisan normalisasi s dan rotary embedding pada vektor query dan key.

kelas diffusers.models.attention_processor.PAGHunyuanAttnProcessor2_0

< >

( )

Processor untuk menerapkan scaled dot-product attention (diaktifkan secara default jika Anda menggunakan PyTorch 2.0). Ini digunakan dalam model HunyuanDiT. Ini menerapkan lapisan normalisasi dan rotary embedding pada vektor query dan key. Varian processor ini menggunakan Pertubed Attention Guidance.

kelas diffusers.models.attention_processor.PAGCFGHunyuanAttnProcessor2_0

< >

( )

Processor untuk menerapkan scaled dot-product attention (diaktifkan secara default jika Anda menggunakan PyTorch 2.0). Ini digunakan dalam model HunyuanDiT. Ini menerapkan lapisan normalisasi dan rotary embedding pada vektor query dan key. Varian processor ini menggunakan Pertubed Attention Guidance.

IdentitySelfAttnProcessor2_0

kelas diffusers.models.attention_processor.PAGIdentitySelfAttnProcessor2_0

< >

( )

Processor untuk menerapkan PAG menggunakan scaled dot-product attention (diaktifkan secara default jika Anda menggunakan PyTorch 2.0). Referensi PAG: https://huggingface.co/papers/2403.17377

kelas diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0

< >

( )

Processor untuk menerapkan PAG menggunakan scaled dot-product attention (diaktifkan secara default jika Anda menggunakan PyTorch 2.0). Referensi PAG: https://huggingface.co/papers/2403.17377

IP-Adapter

kelas diffusers.models.attention_processor.IPAdapterAttnProcessor

< >

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

Parameter

  • hidden_size (int) — Ukuran tersembunyi dari lapisan perhatian.
  • cross_attention_dim (int) — Jumlah channel dalam encoder_hidden_states.
  • num_tokens (int, tuple[int] atau list[int], defaultnya (4,)) — Panjang konteks dari fitur gambar.
  • scale (float atau listfloat, default 1.0) — skala bobot dari prompt gambar.

Processor perhatian untuk beberapa IP-Adapter.

kelas diffusers.models.attention_processor.IPAdapterAttnProcessor2_0

< >

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

Parameter

  • hidden_size (int) — Ukuran tersembunyi dari lapisan perhatian.
  • cross_attention_dim (int) — Jumlah channel dalam encoder_hidden_states.
  • num_tokens (int, tuple[int] atau list[int], defaultnya (4,)) — Panjang konteks dari fitur gambar.
  • scale (float atau list[float], default 1.0) — skala bobot dari prompt gambar.

Processor perhatian untuk IP-Adapter untuk PyTorch 2.0.

kelas diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0

< >

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

Parameter

  • hidden_size (int) — Jumlah kanal tersembunyi.
  • ip_hidden_states_dim (int) — Dimensi fitur gambar.
  • head_dim (int) — Jumlah kanal head.
  • timesteps_emb_dim (int, defaultnya 1280) — Jumlah saluran input untuk embedding timestep.
  • scale (float, defaultnya 0.5) — Skala IP-Adapter.

Attention processor untuk IP-Adapter yang biasanya digunakan dalam memproses proyeksi self-attention yang mirip SD3, dengan informasi berbasis gambar tambahan dan timestep embeddings.

JointAttnProcessor2_0

kelas diffusers.models.attention_processor.JointAttnProcessor2_0

< >

( )

Attention processor yang biasanya digunakan dalam memproses proyeksi self-attention yang mirip SD3.

kelas diffusers.models.attention_processor.PAGJointAttnProcessor2_0

< >

( )

Attention processor yang biasanya digunakan dalam memproses proyeksi self-attention yang mirip SD3.

kelas diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0

< >

( )

Attention processor yang biasanya digunakan dalam memproses proyeksi self-attention yang mirip SD3.

kelas diffusers.models.attention_processor.FusedJointAttnProcessor2_0

< >

( )

Attention processor yang biasanya digunakan dalam memproses proyeksi self-attention yang mirip SD3.

LoRA

kelas diffusers.models.attention_processor.LoRAAttnProcessor

< >

( )

Processor untuk menerapkan perhatian dengan LoRA.

kelas diffusers.models.attention_processor.LoRAAttnProcessor2_0

< >

( )

Processor untuk menerapkan attention dengan LoRA (diaktifkan secara default jika Anda menggunakan PyTorch 2.0).

kelas diffusers.models.attention_processor.LoRAAttnAddedKVProcessor

< >

( )

Processor untuk menerapkan perhatian dengan LoRA dengan matriks kunci dan nilai yang dapat dipelajari tambahan untuk pengkode teks.

kelas diffusers.models.attention_processor.LoRAXFormersAttnProcessor

< >

( )

Processor untuk menerapkan perhatian dengan LoRA menggunakan xFormers.

Lumina-T2X

kelas diffusers.models.attention_processor.LuminaAttnProcessor2_0

< >

( )

Processor untuk menerapkan scaled dot-product attention (diaktifkan secara default jika Anda menggunakan PyTorch 2.0). Ini digunakan dalam model LuminaNextDiT. Menerapkan lapisan normalisasi s dan rotary embedding pada vektor query dan key.

Mochi

kelas diffusers.models.attention_processor.MochiAttnProcessor2_0

< >

( )

Attention processor yang digunakan dalam Mochi.

kelas diffusers.models.attention_processor.MochiVaeAttnProcessor2_0

< >

( )

Attention processor yang digunakan dalam Mochi VAE.

Sana

kelas diffusers.models.attention_processor.SanaLinearAttnProcessor2_0

< >

( )

Processor untuk menerapkan perhatian linear dot-product berskala.

kelas diffusers.models.attention_processor.SanaMultiscaleAttnProcessor2_0

< >

( )

Processor untuk menerapkan perhatian kuadratis multiscale.

kelas diffusers.models.attention_processor.PAGCFGSanaLinearAttnProcessor2_0

< >

( )

Processor untuk menerapkan perhatian linear dot-product berskala.

kelas diffusers.models.attention_processor.PAGIdentitySanaLinearAttnProcessor2_0

< >

( )

Processor untuk menerapkan perhatian linear dot-product berskala.

Stable Audio

kelas diffusers.models.attention_processor.StableAudioAttnProcessor2_0

< >

( )

Processor untuk menerapkan scaled dot-product attention (diaktifkan secara default jika Anda menggunakan PyTorch 2.0). Ini digunakan dalam model Stable Audio. Ia menerapkan rotary embedding pada vektor query dan key, serta memungkinkan MHA, GQA, atau MQA.

SlicedAttnProcessor

kelas diffusers.models.attention_processor.SlicedAttnProcessor

< >

( slice_size: int )

Parameter

  • slice_size (int, opsional) — Jumlah langkah untuk menghitung perhatian. Menggunakan sebanyak attention_head_dim // slice_size irisan, dan attention_head_dim harus merupakan kelipatan dari slice_size.

Processor untuk menerapkan sliced attention.

kelas diffusers.models.attention_processor.SlicedAttnAddedKVProcessor

< >

( slice_size )

Parameter

  • slice_size (int, opsional) — Jumlah langkah untuk menghitung perhatian. Menggunakan sebanyak attention_head_dim // slice_size irisan, dan attention_head_dim harus merupakan kelipatan dari slice_size.

Processor untuk menerapkan sliced attention dengan matriks key dan value yang dapat dipelajari tambahan untuk text encoder.

XFormersAttnProcessor

kelas diffusers.models.attention_processor.XFormersAttnProcessor

< >

( attention_op: Callable | None = None )

Parameter

  • attention_op (Callable, opsional, default None) — operator dasar yang digunakan sebagai operator attention. Disarankan untuk diset ke None, dan membiarkan xFormers memilih operator terbaik.

Processor untuk menerapkan perhatian yang hemat memori menggunakan xFormers.

kelas diffusers.models.attention_processor.XFormersAttnAddedKVProcessor

< >

( attention_op: Callable | None = None )

Parameter

  • attention_op (Callable, opsional, default None) — operator dasar yang digunakan sebagai operator attention. Disarankan untuk diset ke None, dan membiarkan xFormers memilih operator terbaik.

Processor untuk menerapkan perhatian yang hemat memori menggunakan xFormers.

XLAFlashAttnProcessor2_0

kelas diffusers.models.attention_processor.XLAFlashAttnProcessor2_0

< >

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

Processor untuk menerapkan scaled dot-product attention dengan kernel pallas flash attention jika menggunakan torch_xla.

XFormersJointAttnProcessor

kelas diffusers.models.attention_processor.XFormersJointAttnProcessor

< >

( attention_op: Callable | None = None )

Parameter

  • attention_op (Callable, opsional, default None) — operator dasar yang digunakan sebagai operator attention. Disarankan untuk diset ke None, dan membiarkan xFormers memilih operator terbaik.

Processor untuk menerapkan perhatian yang hemat memori menggunakan xFormers.

IPAdapterXFormersAttnProcessor

kelas diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor

< >

( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0attention_op: Callable | None = None )

Parameter

  • hidden_size (int) — Ukuran tersembunyi dari lapisan perhatian.
  • cross_attention_dim (int) — Jumlah channel dalam encoder_hidden_states.
  • num_tokens (int, tuple[int] atau list[int], defaultnya (4,)) — Panjang konteks dari fitur gambar.
  • scale (float atau list[float], default 1.0) — skala bobot dari prompt gambar.
  • attention_op (Callable, opsional, default None) — operator dasar yang digunakan sebagai operator attention. Disarankan untuk diset ke None, dan membiarkan xFormers memilih operator terbaik.

Processor perhatian untuk IP-Adapter menggunakan xFormers.

FluxIPAdapterJointAttnProcessor2_0

kelas diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0

< >

( *args**kwargs )

XLAFluxFlashAttnProcessor2_0

kelas diffusers.models.attention_processor.XLAFluxFlashAttnProcessor2_0

< >

( *args**kwargs )

Processor untuk menerapkan scaled dot-product attention dengan kernel pallas flash attention jika menggunakan torch_xla.

Update on GitHub