Diffusers documentation
Dikkat İşleyicisi
Dikkat İşleyicisi
Bir dikkat işlemcisi, farklı türde dikkat mekanizmalarını uygulamak için kullanılan bir sınıftır.
AttnProcessor
Dikkatle ilgili hesaplamaları gerçekleştirmek için varsayılan işlemci.
Ölçekli nokta çarpımı dikkatini uygulayan işlemci (PyTorch 2.0 kullanıyorsanız varsayılan olarak etkinleştirilir).
Metin kodlayıcı için ek öğrenilebilir anahtar ve değer matrisleriyle dikkat ile ilgili hesaplamaları gerçekleştirmek için kullanılan işlemci
Ölçekli nokta çarpımı dikkatini (PyTorch 2.0 kullanıyorsanız varsayılan olarak etkinleştirilir) gerçekleştirmek için işlemci, metin kodlayıcı için ek öğrenilebilir anahtar ve değer matrisleri ile.
torch_npu kullanarak flash attention uygulaması için işlemci. Torch_npu yalnızca fp16 ve bf16 veri türlerini destekler. fp32 kullanılırsa, hesaplama için F.scaled_dot_product_attention kullanılır, ancak NPU üzerindeki hızlandırma etkisi belirgin değildir.
Ölçekli nokta çarpımı dikkatini (PyTorch 2.0 kullanıyorsanız varsayılan olarak etkin) uygulayan işlemci. Birleşik projeksiyon katmanları kullanır. Kendi-dikkat modülleri için tüm projeksiyon matrisleri (yani sorgu, anahtar, değer) birleştirilir. Çapraz-dikkat modülleri için anahtar ve değer projeksiyon matrisleri birleştirilir.
> Bu API şu anda 🧪 deneysel niteliktedir ve gelecekte değişebilir.
Allegro
Ölçekli nokta çarpımı dikkatini (PyTorch 2.0 kullanıyorsanız varsayılan olarak etkin) uygulayan işlemci. Bu, Allegro modelinde kullanılır. Sorgu ve anahtar vektörlerine bir normalizasyon katmanı ve döner gömme uygular.
AuraFlow
Genellikle Aura Flow işlemlerinde kullanılan dikkat işlemcisi.
Genellikle füzyonlu projeksiyonlarla Aura Flow işlenmesinde kullanılan dikkat işlemcisi.
CogVideoX
CogVideoX modeli için ölçekli nokta çarpımı dikkatini (scaled dot-product attention) uygulamak üzere işleyici (processor). Sorgu ve anahtar vektörlerine döner gömme (rotary embedding) uygular ancak uzamsal normalizasyon içermez.
CogVideoX modeli için ölçekli nokta çarpımı dikkatini (scaled dot-product attention) uygulamak üzere işleyici (processor). Sorgu ve anahtar vektörlerine döner gömme (rotary embedding) uygular ancak uzamsal normalizasyon içermez.
DreamLite
Grouped Query Attention (GQA / MQA) desteğiyle ölçekli nokta çarpımı dikkatini (scaled dot-product attention) uygulamak için işlemci.
AttnProcessor2_0 ile aynıdır; ancak anahtar/değer yeniden şekillendirme dalı, K/V'yi kv_heads olarak yeniden şekillendirip ardından repeat_interleave ile attn.heads değerine kadar çoğaltarak attn.kv_heads != attn.heads durumunu doğru şekilde ele alır. Bu, GQA'yı qk_norm ile birleştiren DreamLite UNet için gereklidir; varsayılan AttnProcessor2_0 bu kombinasyonu desteklemez. SDPA, diffusers dikkat arka uçlarından herhangi birinin (yerel PyTorch SDPA, FlashAttention vb.) kullanılabilmesi için dispatch_attention_fn işlevine devredilir.
Özel Difüzyon
sınıf 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 )
Parametreler
- train_kv (
bool, varsayılanTrue) — Metin özelliklerine karşılık gelen anahtar ve değer matrislerinin yeni olarak eğitilip eğitilmeyeceğini belirtir. - train_q_out (
bool, varsayılanTrue) — Gizli görüntü özelliklerine karşılık gelen sorgu matrislerinin yeni olarak eğitilip eğitilmeyeceği. - hidden_size (
int, isteğe bağlı, varsayılanNone) — Dikkat katmanının gizli boyutu. - cross_attention_dim (
int, isteğe bağlı, varsayılanNone) —encoder_hidden_statesiçindeki kanal sayısı. - out_bias (
bool, varsayılanTrue) —train_q_outiçinde bias parametresinin dahil edilip edilmeyeceğini belirtir. - dropout (
float, isteğe bağlı, varsayılan 0.0) — Kullanılacak dropout olasılığı.
Custom Diffusion yöntemi için dikkat (attention) uygulamasını gerçekleştiren işlemci (processor).
sınıf 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 )
Parametreler
- train_kv (
bool, varsayılanTrue) — Metin özelliklerine karşılık gelen anahtar ve değer matrislerinin yeni olarak eğitilip eğitilmeyeceğini belirtir. - train_q_out (
bool, varsayılanTrue) — Gizli görüntü özelliklerine karşılık gelen sorgu matrislerinin yeni olarak eğitilip eğitilmeyeceği. - hidden_size (
int, isteğe bağlı, varsayılanNone) — Dikkat katmanının gizli boyutu. - cross_attention_dim (
int, isteğe bağlı, varsayılanNone) —encoder_hidden_statesiçindeki kanal sayısı. - out_bias (
bool, varsayılanTrue) —train_q_outiçinde bias parametresinin dahil edilip edilmeyeceğini belirtir. - dropout (
float, isteğe bağlı, varsayılan 0.0) — Kullanılacak dropout olasılığı.
PyTorch 2.0'ın bellek verimli ölçekli nokta çarpımı dikkatini kullanarak Custom Diffusion yöntemi için dikkat uygulayan işlemci.
sınıf 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 )
Parametreler
- train_kv (
bool, varsayılanTrue) — Metin özelliklerine karşılık gelen anahtar ve değer matrislerinin yeni olarak eğitilip eğitilmeyeceğini belirtir. - train_q_out (
bool, varsayılanTrue) — Gizli görüntü özelliklerine karşılık gelen sorgu matrislerinin yeni olarak eğitilip eğitilmeyeceği. - hidden_size (
int, isteğe bağlı, varsayılanNone) — Dikkat katmanının gizli boyutu. - cross_attention_dim (
int, isteğe bağlı, varsayılanNone) —encoder_hidden_statesiçindeki kanal sayısı. - out_bias (
bool, varsayılanTrue) —train_q_outiçinde bias parametresinin dahil edilip edilmeyeceğini belirtir. - dropout (
float, isteğe bağlı, varsayılan 0.0) — Kullanılacak dropout olasılığı. - attention_op (
Callable, isteğe bağlı, varsayılanNone) — Dikkat operatörü olarak kullanılacak temel operatör. En iyi operatörü seçmesi için xFormers'a bırakmak üzereNoneolarak ayarlanması önerilir.
Custom Diffusion yöntemi için xFormers kullanarak bellek verimli dikkat (attention) uygulayan işlemci (Processor).
Flux
Ölçekli nokta çarpımı dikkatini uygulayan işlemci (PyTorch 2.0 kullanıyorsanız varsayılan olarak etkinleştirilir).
Hunyuan
Ölçekli nokta çarpımı dikkatini (PyTorch 2.0 kullanıyorsanız varsayılan olarak etkin) uygulayan işlemci. Bu, HunyuanDiT modelinde kullanılır. Sorgu ve anahtar vektörlerine bir s normalizasyon katmanı ve döner gömme uygular.
Ölçekli nokta çarpımı dikkatini (PyTorch 2.0 kullanıyorsanız varsayılan olarak etkinleştirilir) füzyonlu projeksiyon katmanlarıyla uygulayan işlemci. Bu, HunyuanDiT modelinde kullanılır. Sorgu ve anahtar vektörlerine bir s normalizasyon katmanı ve döner gömme uygular.
Ölçekli nokta çarpımı dikkatini (PyTorch 2.0 kullanıyorsanız varsayılan olarak etkin) uygulayan işlemci. Bu, HunyuanDiT modelinde kullanılır. Sorgu ve anahtar vektörlerine bir normalizasyon katmanı ve döner gömme uygular. Bu işlemci varyantı Pertubed Attention Guidance kullanır.
Ölçekli nokta çarpımı dikkatini (PyTorch 2.0 kullanıyorsanız varsayılan olarak etkin) uygulayan işlemci. Bu, HunyuanDiT modelinde kullanılır. Sorgu ve anahtar vektörlerine bir normalizasyon katmanı ve döner gömme uygular. Bu işlemci varyantı Pertubed Attention Guidance kullanır.
IdentitySelfAttnProcessor2_0
Ölçekli nokta çarpımı dikkati kullanarak PAG uygulaması için işlemci (PyTorch 2.0 kullanıyorsanız varsayılan olarak etkinleştirilir). PAG referansı: https://huggingface.co/papers/2403.17377
Ölçekli nokta çarpımı dikkati kullanarak PAG uygulaması için işlemci (PyTorch 2.0 kullanıyorsanız varsayılan olarak etkinleştirilir). PAG referansı: https://huggingface.co/papers/2403.17377
IP-Adapter
sınıf diffusers.models.attention_processor.IPAdapterAttnProcessor
< source >( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0 )
Parametreler
- hidden_size (
int) — Dikkat katmanının gizli boyutu. - cross_attention_dim (
int) —encoder_hidden_statesiçindeki kanal sayısı. - num_tokens (
int,tuple[int]veyalist[int], varsayılan(4,)) — Görsel özelliklerin bağlam uzunluğu. - scale (
floatveya listfloat, varsayılan 1.0) — görsel isteminin ağırlık ölçeği.
Çoklu IP-Adapters için dikkat işlemcisi.
sınıf diffusers.models.attention_processor.IPAdapterAttnProcessor2_0
< source >( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0 )
Parametreler
- hidden_size (
int) — Dikkat katmanının gizli boyutu. - cross_attention_dim (
int) —encoder_hidden_statesiçindeki kanal sayısı. - num_tokens (
int,tuple[int]veyalist[int], varsayılan(4,)) — Görsel özelliklerin bağlam uzunluğu. - scale (
floatveyalist[float], varsayılan 1.0) — görsel isteminin ağırlık ölçeği.
PyTorch 2.0 için IP-Adapter dikkat işleyicisi.
sınıf diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0
< source >( hidden_size: intip_hidden_states_dim: inthead_dim: inttimesteps_emb_dim: int = 1280scale: float = 0.5 )
Genellikle SD3 benzeri öz-dikkat projeksiyonlarının işlenmesinde, ek görüntü tabanlı bilgiler ve zaman adımı gömme (embedding) bilgileriyle birlikte kullanılan IP-Adapter için dikkat (attention) işleyicisi.
JointAttnProcessor2_0
Genellikle SD3 benzeri öz-dikkat projeksiyonlarını işlerken kullanılan dikkat işlemcisi.
Genellikle SD3 benzeri öz-dikkat projeksiyonlarını işlerken kullanılan dikkat işlemcisi.
Genellikle SD3 benzeri öz-dikkat projeksiyonlarını işlerken kullanılan dikkat işlemcisi.
Genellikle SD3 benzeri öz-dikkat projeksiyonlarını işlerken kullanılan dikkat işlemcisi.
LoRA
LoRA ile dikkat (attention) uygulaması için işlemci.
LoRA ile dikkat (attention) uygulamasını gerçekleştiren işlemci (PyTorch 2.0 kullanıyorsanız varsayılan olarak etkinleştirilir).
Metin kodlayıcı için ek öğrenilebilir anahtar ve değer matrislerine sahip LoRA ile dikkat uygulamasını gerçekleştiren işlemci.
xFormers kullanarak LoRA ile dikkat (attention) uygulaması için işlemci.
Lumina-T2X
Ölçekli nokta çarpımı dikkatini (PyTorch 2.0 kullanıyorsanız varsayılan olarak etkin) uygulayan işlemci. Bu, LuminaNextDiT modelinde kullanılır. Sorgu ve anahtar vektörlerine bir s normalizasyon katmanı ve döner gömme uygular.
Mochi
Mochi'de kullanılan dikkat işlemcisi.
Mochi VAE'de kullanılan dikkat işlemcisi.
Sana
Ölçekli nokta çarpımı doğrusal dikkati uygulayan işlemci.
Çok ölçekli kuadratik dikkat (quadratic attention) uygulaması için işlemci.
Ölçekli nokta çarpımı doğrusal dikkati uygulayan işlemci.
Ölçekli nokta çarpımı doğrusal dikkati uygulayan işlemci.
Stable Audio
Ölçekli nokta çarpımı dikkatini (PyTorch 2.0 kullanıyorsanız varsayılan olarak etkin) uygulayan işlemci. Bu, Stable Audio modelinde kullanılır. Sorgu ve anahtar vektörlerine döner gömme uygular ve MHA, GQA veya MQA'ya izin verir.
SlicedAttnProcessor
sınıf diffusers.models.attention_processor.SlicedAttnProcessor
< source >( slice_size: int )
Dilimlenmiş dikkat (sliced attention) uygulaması için işlemci.
sınıf diffusers.models.attention_processor.SlicedAttnAddedKVProcessor
< source >( slice_size )
Metin kodlayıcı için ek öğrenilebilir anahtar ve değer matrisleriyle dilimlenmiş dikkat (sliced attention) uygulayan işlemci.
XFormersAttnProcessor
sınıf diffusers.models.attention_processor.XFormersAttnProcessor
< source >( attention_op: Callable | None = None )
Parametreler
- attention_op (
Callable, isteğe bağlı, varsayılanNone) — Dikkat operatörü olarak kullanılacak temel operatör. En iyi operatörü seçmesi için xFormers'a bırakmak üzereNoneolarak ayarlanması önerilir.
xFormers kullanarak bellek verimli dikkat (attention) uygulaması için işlemci.
sınıf diffusers.models.attention_processor.XFormersAttnAddedKVProcessor
< source >( attention_op: Callable | None = None )
Parametreler
- attention_op (
Callable, isteğe bağlı, varsayılanNone) — Dikkat operatörü olarak kullanılacak temel operatör. En iyi operatörü seçmesi için xFormers'a bırakmak üzereNoneolarak ayarlanması önerilir.
xFormers kullanarak bellek verimli dikkat (attention) uygulaması için işlemci.
XLAFlashAttnProcessor2_0
sınıf diffusers.models.attention_processor.XLAFlashAttnProcessor2_0
< source >( partition_spec: tuple[str | None, ...] | None = None )
torch_xla kullanılıyorsa pallas flash attention çekirdeği ile ölçekli nokta çarpımı dikkatini uygulayan işlemci.
XFormersJointAttnProcessor
sınıf diffusers.models.attention_processor.XFormersJointAttnProcessor
< source >( attention_op: Callable | None = None )
Parametreler
- attention_op (
Callable, isteğe bağlı, varsayılanNone) — Dikkat operatörü olarak kullanılacak temel operatör. En iyi operatörü seçmesi için xFormers'a bırakmak üzereNoneolarak ayarlanması önerilir.
xFormers kullanarak bellek verimli dikkat (attention) uygulaması için işlemci.
IPAdapterXFormersAttnProcessor
sınıf diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor
< source >( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0attention_op: Callable | None = None )
Parametreler
- hidden_size (
int) — Dikkat katmanının gizli boyutu. - cross_attention_dim (
int) —encoder_hidden_statesiçindeki kanal sayısı. - num_tokens (
int,tuple[int]veyalist[int], varsayılan(4,)) — Görsel özelliklerin bağlam uzunluğu. - scale (
floatveyalist[float], varsayılan 1.0) — görsel isteminin ağırlık ölçeği. - attention_op (
Callable, isteğe bağlı, varsayılanNone) — Dikkat operatörü olarak kullanılacak temel operatör. En iyi operatörü seçmesi için xFormers'a bırakmak üzereNoneolarak ayarlanması önerilir.
xFormers kullanan IP-Adapter için dikkat işlemcisi.
FluxIPAdapterJointAttnProcessor2_0
sınıf diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0
< source >( *args**kwargs )
XLAFluxFlashAttnProcessor2_0
sınıf diffusers.models.attention_processor.XLAFluxFlashAttnProcessor2_0
< source >( *args**kwargs )
torch_xla kullanılıyorsa pallas flash attention çekirdeği ile ölçekli nokta çarpımı dikkatini uygulayan işlemci.