Diffusers documentation
Attention Processor
Attention Processor
Attention processor adalah kelas untuk menerapkan berbagai jenis mekanisme perhatian.
AttnProcessor
Pemroses default untuk melakukan komputasi terkait perhatian.
Processor untuk menerapkan scaled dot-product attention (diaktifkan secara default jika Anda menggunakan PyTorch 2.0).
Processor untuk melakukan komputasi terkait perhatian dengan matriks kunci dan nilai yang dapat dipelajari tambahan untuk encoder teks.
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.
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.
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
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
Processor perhatian yang biasanya digunakan dalam pemrosesan Aura Flow.
Processor perhatian yang biasanya digunakan dalam pemrosesan Aura Flow dengan proyeksi yang digabungkan.
CogVideoX
Processor untuk menerapkan scaled dot-product attention pada model CogVideoX. Ini menerapkan rotary embedding pada vektor query dan key, tetapi tidak termasuk normalisasi spasial.
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
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
< source >( 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, defaultnyaTrue) — Apakah akan melatih ulang matriks key dan value yang sesuai dengan fitur teks. - train_q_out (
bool, defaultnyaTrue) — Apakah akan melatih ulang matriks query yang sesuai dengan fitur gambar laten. - hidden_size (
int, opsional, defaultnyaNone) — Ukuran tersembunyi dari lapisan perhatian. - cross_attention_dim (
int, opsional, defaultnyaNone) — Jumlah channel dalamencoder_hidden_states. - out_bias (
bool, defaultnyaTrue) — Apakah akan menyertakan parameter bias ditrain_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
< source >( 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, defaultnyaTrue) — Apakah akan melatih ulang matriks key dan value yang sesuai dengan fitur teks. - train_q_out (
bool, defaultnyaTrue) — Apakah akan melatih ulang matriks query yang sesuai dengan fitur gambar laten. - hidden_size (
int, opsional, defaultnyaNone) — Ukuran tersembunyi dari lapisan perhatian. - cross_attention_dim (
int, opsional, defaultnyaNone) — Jumlah channel dalamencoder_hidden_states. - out_bias (
bool, defaultnyaTrue) — Apakah akan menyertakan parameter bias ditrain_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
< source >( 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, defaultnyaTrue) — Apakah akan melatih ulang matriks key dan value yang sesuai dengan fitur teks. - train_q_out (
bool, defaultnyaTrue) — Apakah akan melatih ulang matriks query yang sesuai dengan fitur gambar laten. - hidden_size (
int, opsional, defaultnyaNone) — Ukuran tersembunyi dari lapisan perhatian. - cross_attention_dim (
int, opsional, defaultnyaNone) — Jumlah channel dalamencoder_hidden_states. - out_bias (
bool, defaultnyaTrue) — Apakah akan menyertakan parameter bias ditrain_q_out. - dropout (
float, opsional, default 0.0) — Probabilitas dropout yang digunakan. - attention_op (
Callable, opsional, defaultNone) — operator dasar yang digunakan sebagai operator attention. Disarankan untuk diset keNone, dan membiarkan xFormers memilih operator terbaik.
Processor untuk menerapkan perhatian yang efisien memori menggunakan xFormers untuk metode Custom Diffusion.
Flux
Processor untuk menerapkan scaled dot-product attention (diaktifkan secara default jika Anda menggunakan PyTorch 2.0).
Hunyuan
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.
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.
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.
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
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
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
< source >( 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 dalamencoder_hidden_states. - num_tokens (
int,tuple[int]ataulist[int], defaultnya(4,)) — Panjang konteks dari fitur gambar. - scale (
floatatau listfloat, default 1.0) — skala bobot dari prompt gambar.
Processor perhatian untuk beberapa IP-Adapter.
kelas diffusers.models.attention_processor.IPAdapterAttnProcessor2_0
< source >( 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 dalamencoder_hidden_states. - num_tokens (
int,tuple[int]ataulist[int], defaultnya(4,)) — Panjang konteks dari fitur gambar. - scale (
floatataulist[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
< source >( hidden_size: intip_hidden_states_dim: inthead_dim: inttimesteps_emb_dim: int = 1280scale: float = 0.5 )
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
Attention processor yang biasanya digunakan dalam memproses proyeksi self-attention yang mirip SD3.
Attention processor yang biasanya digunakan dalam memproses proyeksi self-attention yang mirip SD3.
Attention processor yang biasanya digunakan dalam memproses proyeksi self-attention yang mirip SD3.
Attention processor yang biasanya digunakan dalam memproses proyeksi self-attention yang mirip SD3.
LoRA
Processor untuk menerapkan perhatian dengan LoRA.
Processor untuk menerapkan attention dengan LoRA (diaktifkan secara default jika Anda menggunakan PyTorch 2.0).
Processor untuk menerapkan perhatian dengan LoRA dengan matriks kunci dan nilai yang dapat dipelajari tambahan untuk pengkode teks.
Processor untuk menerapkan perhatian dengan LoRA menggunakan xFormers.
Lumina-T2X
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
Attention processor yang digunakan dalam Mochi.
Attention processor yang digunakan dalam Mochi VAE.
Sana
Processor untuk menerapkan perhatian linear dot-product berskala.
Processor untuk menerapkan perhatian kuadratis multiscale.
Processor untuk menerapkan perhatian linear dot-product berskala.
Processor untuk menerapkan perhatian linear dot-product berskala.
Stable Audio
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
< source >( slice_size: int )
Processor untuk menerapkan sliced attention.
kelas diffusers.models.attention_processor.SlicedAttnAddedKVProcessor
< source >( 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
< source >( attention_op: Callable | None = None )
Parameter
- attention_op (
Callable, opsional, defaultNone) — operator dasar yang digunakan sebagai operator attention. Disarankan untuk diset keNone, dan membiarkan xFormers memilih operator terbaik.
Processor untuk menerapkan perhatian yang hemat memori menggunakan xFormers.
kelas diffusers.models.attention_processor.XFormersAttnAddedKVProcessor
< source >( attention_op: Callable | None = None )
Parameter
- attention_op (
Callable, opsional, defaultNone) — operator dasar yang digunakan sebagai operator attention. Disarankan untuk diset keNone, dan membiarkan xFormers memilih operator terbaik.
Processor untuk menerapkan perhatian yang hemat memori menggunakan xFormers.
XLAFlashAttnProcessor2_0
kelas diffusers.models.attention_processor.XLAFlashAttnProcessor2_0
< source >( 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
< source >( attention_op: Callable | None = None )
Parameter
- attention_op (
Callable, opsional, defaultNone) — operator dasar yang digunakan sebagai operator attention. Disarankan untuk diset keNone, dan membiarkan xFormers memilih operator terbaik.
Processor untuk menerapkan perhatian yang hemat memori menggunakan xFormers.
IPAdapterXFormersAttnProcessor
kelas diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor
< source >( 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 dalamencoder_hidden_states. - num_tokens (
int,tuple[int]ataulist[int], defaultnya(4,)) — Panjang konteks dari fitur gambar. - scale (
floatataulist[float], default 1.0) — skala bobot dari prompt gambar. - attention_op (
Callable, opsional, defaultNone) — operator dasar yang digunakan sebagai operator attention. Disarankan untuk diset keNone, dan membiarkan xFormers memilih operator terbaik.
Processor perhatian untuk IP-Adapter menggunakan xFormers.
FluxIPAdapterJointAttnProcessor2_0
kelas diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0
< source >( *args**kwargs )
XLAFluxFlashAttnProcessor2_0
kelas diffusers.models.attention_processor.XLAFluxFlashAttnProcessor2_0
< source >( *args**kwargs )
Processor untuk menerapkan scaled dot-product attention dengan kernel pallas flash attention jika menggunakan torch_xla.