Buckets:
QwenImage21Transformer2DModel
Qwen-Image 2.1 tarafından kullanılan tek akışlı transformer. Metin ve görüntü latentleri tek bir diziyi paylaşır ve tek bir ortak modulation projeksiyonu tüm bloklara besleme sağlar.
2.1, önceki QwenImage dönüştürücülerinden iki davranışla ayrılır:
- Blok-nedensel dikkat — dikkat,
(q_idx >= kv_idx) or same_image_blockkoşulunu takip eder; böylece birleşik dizi nedensel olurken her görüntü bloğu içsel olarak çift yönlü kalır.QwenImage21AttnProcessor, bunu her önek segmenti için tek bir dikkat çağrısı olarak uygular ve varsayılandır.QwenImage21FlexAttnProcessor, bunuBlockMasktarafından yönlendirilen tek birflex_attentionçağrısı olarak uygular ve model derlendikten sonra daha hızlıdır. İkisi de aynı sonuçları üretir. causal_condition— metin ve koşul-görüntü jetonları, örneklenen zaman adımından değil,t = 0değerinden modüle edilir. Aktivasyonları gürültü azaltma adımından bağımsız olduğundan, bu önekin anahtar ve değerlerikv_cacheargümanı aracılığıyla adımlar arasında önbelleğe alınabilir.
Bunu şu şekilde yükleyin:
import torch
from diffusers import QwenImage21Transformer2DModel
transformer = QwenImage21Transformer2DModel.from_pretrained(
"Qwen/Qwen-Image-2.1", subfolder="transformer", dtype=torch.bfloat16
)
QwenImage21Transformer2DModel[[diffusers.QwenImage21Transformer2DModel]]
diffusers.QwenImage21Transformer2DModel[[diffusers.QwenImage21Transformer2DModel]]
diffusers.QwenImage21Transformer2DModel(patch_size: int = 1, in_channels: int = 64, out_channels: int | None = 64, num_layers: int = 32, attention_head_dim: int = 128, num_attention_heads: int = 32, context_in_dim: int = 4096, mlp_ratio: int = 3, axes_dims_rope: tuple = (16, 56, 56), eps: float = 1e-06, causal_condition: bool = True)
Parametreler:
patch_size (int, varsayılan 1) : Kanal boyutuna katlanan latent yamanın kenar uzunluğu. 2.1, yamalanmamış latentleri kullanır.
in_channels (int, varsayılan 64) : Girdinin gizli kanalları.
out_channels (int, isteğe bağlı, varsayılan 64) : Çıktının gizli kanalları. in_channels değerine geri düşer.
num_layers (int, varsayılan 32) : Tek akış bloğu sayısı.
attention_head_dim (int, varsayılan 128) : Dikkat başı başına kanal sayısı.
num_attention_heads (int, varsayılan 32) : Dikkat başlarının sayısı.
context_in_dim (int, varsayılan 4096) : encoder_hidden_states'nin kanal boyutu.
mlp_ratio (int, varsayılan 3) : Feed-forward genişletme faktörü.
axes_dims_rope (tuple[int], varsayılan (16, 56, 56)) : Kare, yükseklik ve genişlik eksenleri için döner boyutlar.
eps (float, varsayılan 1e-6) : Norm katmanları için epsilon.
causal_condition (bool, varsayılan True) : t = 0'dan itibaren metin ve koşul-görsel jetonlarını modüle eder. KV önbellekleme için gereklidir.
Qwen-Image 2.1 tarafından kullanılan tek akışlı Transformer.
Metin ve görüntü latentleri tek bir diziyi paylaşır: koşul-görüntü jetonları, görme-dil kodlayıcısının onlar için ayırdığı konumlarda metin akışına yerleştirilir ve hedef görüntünün jetonları eklenir. Tek bir ortak modulation projeksiyonu tüm bloklara besleme sağlar, bu nedenle blokların kendi modülasyon parametreleri yoktur.
2.1'i ayırt eden iki davranış vardır:
- Blok-nedensel dikkat — dikkat,
(q_idx >= kv_idx) or same_image_blockkoşulunu takip eder; böylece dizi nedensel olurken her görüntü bloğu içsel olarak çift yönlü kalır.flexdikkat arka ucu, verimli tek geçişli dikkat sağlar; bu arka uç yoksa model, her bloğu ayrı ayrı işleyen kesin çok geçişli SDPA ön doldurma kullanır. causal_condition— metin ve koşul-görüntü jetonları, örneklenen zaman adımından değilt = 0değerinden modüle edilir; bu da aktivasyonlarını zaman adımından bağımsız hale getirir ve böylece gürültü azaltma adımları arasında önbelleğe alınabilir.
build_token_metadata[[diffusers.QwenImage21Transformer2DModel.build_token_metadata]]
build_token_metadata(image_pad_mask: Tensor, img_shapes: list)
Parametreler:
image_pad_mask (torch.Tensor) : (seq_len,) bool, görüntü-token konumlarında True.
img_shapes (list[tuple[int, int, int]]) : Latent tokenlerde görüntü başına (frame, height, width), koşul görüntüleri önce ve hedef görüntü en sonda.
Dönüş: tuple[torch.Tensor, torch.Tensor]
image_ids (seq_len,) metin konumlarında -1 ve her görüntü bloğu için benzersiz bir kimlik içerir; target_token_mask (seq_len,) ise hedef görüntünün jetonlarını işaretler.
Birleşik dizideki her token'ı, ait olduğu görüntü bloğuyla etiketleyin.
Blok sınırları, image_pad_mask içindeki True dizilerinden değil, img_shapes içindeki token sayılarından gelir: aralarında metin olmadan yan yana gelen iki koşul görüntüsü tek bir dizi oluşturur ancak ayrı bloklar olarak kalmalıdır, aksi takdirde birbirlerine çift yönlü dikkat (attention) uygularlar.
forward[[diffusers.QwenImage21Transformer2DModel.forward]]
forward(hidden_states: Tensor, encoder_hidden_states: Tensor, timestep: Tensor, img_shapes: list, img_mask: Tensor, encoder_hidden_states_mask: typing.Optional[torch.Tensor] = None, attention_kwargs: dict[str, typing.Any] | None = None, kv_cache: diffusers.models.transformers.transformer_qwenimage21.QwenImage21KVCache | None = None, kv_cache_mode: str | None = None, return_dict: bool = True)
Parametreler:
hidden_states (torch.Tensor, şekli (batch_size, image_sequence_length, in_channels)) : Paketlenmiş latentler, önce koşul görüntüleri ve en sonda hedef görüntü.
encoder_hidden_states (torch.Tensor, şekli (batch_size, text_sequence_length, context_in_dim)) : Görsel-dil kodlayıcısından gelen metin gömme değerleri.
timestep (torch.Tensor) : [0, 1] aralığına ölçeklenmiş mevcut gürültü azaltma adımı.
img_shapes (list[list[tuple[int, int, int]]]) : Her örnek için, latent token cinsinden (frame, height, width) değerlerinden oluşan liste; koşul görüntüleri önce, hedef görüntü en sonda gelir. Tüm örnekler aynı yerleşimi paylaşmalıdır.
img_mask (torch.Tensor, şekli (batch_size, vlm_sequence_length)) : Görüntü-dil kodlayıcısının görüntü yuvalarında True, her biri 2x2 latent token grubunu temsil eder.
encoder_hidden_states_mask (torch.Tensor, isteğe bağlı) : (batch_size, text_sequence_length) geçerli metin jetonlarını işaretleyen bool. Dolgu konumları dikkat (attention) işleminden hariç tutulur.
kv_cache (QwenImage21KVCache, isteğe bağlı) : Önbellek kapsayıcısı. Önek KV önbelleklemeyi etkinleştirmek için kv_cache_mode ile birlikte iletin.
kv_cache_mode (str, isteğe bağlı) : Önbelleği ön doldurmak için (ilk gürültü azaltma adımı) "extract", ondan çözmek için (sonraki adımlar) "cached". causal_condition=True gerektirir.
attention_kwargs (dict, isteğe bağlı) : Dikkat işleyicilerine (attention processors) iletilir ve LoRA katmanları için scale değerini taşır.
return_dict (bool, isteğe bağlı, varsayılan True) : Düz bir tuple yerine Transformer2DModelOutput döndürülecek mi?
Dönüş: Transformer2DModelOutput veya tuple
return_dict True ise Transformer2DModelOutput, aksi halde ilk öğesi gürültüsü giderilmiş latentler olan düz bir tuple.
Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]
diffusers.models.modeling_outputs.Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]
diffusers.models.modeling_outputs.Transformer2DModelOutput(sample: torch.Tensor)
Parametreler:
sample (torch.Tensor, şekli (batch_size, num_channels, height, width) veya Transformer2DModel ayrık (discrete) ise (batch size, num_vector_embeds - 1, num_latent_pixels)) : encoder_hidden_states girdisine koşullu gizli durum (hidden states) çıktısı. Ayrık (discrete) ise, gürültüsü olmayan (unnoised) gizli (latent) pikseller için olasılık dağılımlarını döndürür.
Transformer2DModel'nin çıktısı.
Xet Storage Details
- Size:
- 9.49 kB
- Xet hash:
- 2952d537b71d170c0f5adfb1893698ce2a31935d63cf77e55ad242cc4472bf5b
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.