Diffusers documentation
WanAnimate2Transformer3DModel
WanAnimate2Transformer3DModel
Alibaba Wan Team tarafından Wan-Animate-2'de kullanılan, 3D video benzeri veriler için bir Diffusion Transformer modeli. Bir karakter görselini, sürücü videonun hareketiyle bir bağlam içi referans mekanizması aracılığıyla canlandırır: her segment önce, her katmanın referans K/V değerlerini önbelleğe alan bir referans geçişi (kv_cache_mode="extract") çalıştırır, ardından gürültü giderme geçişleri (kv_cache_mode="cached") bir esnek BlockMask üzerinden üretim jetonları ve önbelleğe alınmış referans jetonları üzerinde ortak olarak dikkat uygular.
Model, aşağıdaki kod parçasıyla yüklenebilir.
from diffusers import WanAnimate2Transformer3DModel
transformer = WanAnimate2Transformer3DModel.from_pretrained("Wan-AI/Wan2.2-Animate-2-14B-Diffusers", subfolder="transformer", dtype=torch.bfloat16)WanAnimate2Transformer3DModel
sınıf diffusers.WanAnimate2Transformer3DModel
< source >( patch_size: tuple = (1, 2, 2)text_len: int = 512in_dim: int = 36dim: int = 5120ffn_dim: int = 13824freq_dim: int = 256text_dim: int = 4096out_dim: int = 16num_heads: int = 40num_layers: int = 40cross_attn_norm: bool = Trueeps: float = 1e-06use_img_emb: bool = Truerefer_offset_t: int = 1refer_offset_h: int = 0refer_offset_w: int = -1refer_stride: int = 1 )
Parametreler
- patch_size (tuple[int], varsayılan (1, 2, 2)) — Video gömme için 3B yama boyutları (t_patch, h_patch, w_patch).
- text_len (int, varsayılan 512) — Metin gömme (embedding) için sabit uzunluk.
- in_dim (int, varsayılan 36) — Girdideki kanal sayısı (maske kanalı için 2 * latent_channels + 4).
- dim (int, varsayılan 5120) — Transformer'daki kanal sayısı.
- ffn_dim (int, varsayılan 13824) — İleri beslemeli ağdaki ara boyut.
- freq_dim (int, varsayılan 256) — Sinüzoidal zaman gömme boyutu.
- text_dim (int, varsayılan 4096) — Metin gömme girdi boyutu.
- out_dim (int, varsayılan 16) — Çıktıdaki kanal sayısı.
- num_heads (int, varsayılan 40) — Dikkat başlarının sayısı.
- num_layers (int, varsayılan 40) — Kullanılacak transformer bloğu katman sayısı.
- cross_attn_norm (bool, varsayılan True) — Çapraz dikkat normalizasyonunu etkinleştirir.
- eps (float, varsayılan 1e-6) — Normalizasyon katmanları için epsilon değeri.
- use_img_emb (bool, varsayılan True) — CLIP gömme görselini kullanıp kullanmayacağı.
- refer_offset_t (int, varsayılan 1) — Referansın zaman boyutu için RoPE ofseti.
- refer_offset_h (int, varsayılan 0) — Referansın yükseklik boyutu için RoPE ofseti.
- refer_offset_w (int, varsayılan -1) — Referansın genişlik boyutu için RoPE ofseti. -1, üretim ızgarası boyutunun kullanılacağı anlamına gelir.
- refer_stride (int, varsayılan 1) — Referans üzerinde RoPE uygulaması için adım (stride).
Wan-Animate-2 modelinde kullanılan, video benzeri veriler için bir Transformer modeli.
Wan-Animate-2, KV önbelleği ile bağlam içi dikkat mekanizması kullanır: bir referans video önce kodlanır (kv_cache_mode="extract") ve [WanAnimate2KVCache] doldurulur, ardından her gürültü azaltma adımı (kv_cache_mode="cached"), esnek BlockMask üzerinden üretim jetonları ve önbelleğe alınmış referans K/V üzerinde ortak olarak dikkat uygular. Bu nedenle üretim öz-dikkati yalnızca flex dikkat arka ucunda çalışır; modeldeki diğer tüm dikkat mekanizmaları herhangi bir arka uçta çalışır.
forward
< source >( hidden_states: listtimestep: Tensorencoder_hidden_states: listcondition_latents: listkv_cache: WanAnimate2KVCachekv_cache_mode: strseq_len: intencoder_hidden_states_image: typing.Optional[torch.Tensor] = Noneoffset_grid_sizes: typing.Optional[torch.Tensor] = Nonereference_grid_sizes: typing.Optional[torch.Tensor] = Noneorigin_len: int | None = Noneorigin_area: list[int] | None = Noneis_uncondtion: bool = Falsereturn_dict: bool = True ) → Transformer2DModelOutput or tuple(list[torch.Tensor])
Parametreler
- hidden_states (
list[torch.Tensor]) — Bu geçiş için latentler —kv_cache_mode="extract"durumunda referans latentler,kv_cache_mode="cached"durumunda gürültülü üretim latentleri. - timestep (
torch.Tensor) — Gürültü azaltma zaman adımı.kv_cache_mode="extract"altında yok sayılır; bu mod sabit bir zaman adımı olan 1'i kullanır. - encoder_hidden_states (
list[torch.Tensor]) — Bu geçiş için metin gömme değerleri. - condition_latents (
list[torch.Tensor]) — Patch embedding öncesindehidden_statesile birleştirilen koşullama latentleri. - kv_cache (
WanAnimate2KVCache) —kv_cache_mode="extract"altında yazılır,"cached"altında okunur. - kv_cache_mode (
str) —"extract"referans geçişini çalıştırır vekv_cachealanını doldurur;"cached"önbelleğe alınmış referans token'lar üzerinde bir gürültü azaltma adımı çalıştırır. - seq_len (
int) — Patch gömme işleminden sonra her örneğin sahip olması gereken token sayısı. - encoder_hidden_states_image (
torch.Tensor, isteğe bağlı) — Modeluse_img_embile yapılandırıldığında kullanılan CLIP gömme vektörleri. - offset_grid_sizes (
torch.Tensor, isteğe bağlı) — Referans latentlerin yama ızgarası, -1 olarak ayarlanmış herhangi birrefer_offset_*değerini çözmek için kullanılır.kv_cache_mode="extract"altında zorunludur;"cached"altında isereference_grid_sizesaynı ızgarayı tanımlar ve bunun yerine kullanılır. - reference_grid_sizes (
torch.Tensor, isteğe bağlı) — Referans latentlerin yama ızgarası, referans döner gömme (rotary embeddings) için kullanılır.kv_cache_mode="cached"altında zorunludur. - origin_len (
int, isteğe bağlı) — Bağlam içi blok maskesinin oluşturulduğu tam videonun kare sayısı.kv_cache_mode="cached"altında zorunludur. - origin_area (
list[int], isteğe bağlı) — Tam videonun[height, width]boyutundaki uzamsal alanı; bağlam içi blok maskesi bu alan üzerinde oluşturulur.kv_cache_mode="cached"altında zorunludur. - is_uncondtion (
bool, isteğe bağlı) — Bu, classifier-free guidance'ın koşulsuz dalı olup olmadığı. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — Düz bir tuple yerine~models.transformer_2d.Transformer2DModelOutputdöndürülüp döndürülmediğini belirtir.
Dönüş değeri
Transformer2DModelOutput veya tuple(list[torch.Tensor])
Her giriş latent için tahmin edilen örnek, yamalanmamış; return_dict False ise düz bir tuple.
Transformer2DModelOutput
sınıf diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( 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_statesgirdisine koşullu gizli durum (hidden states) çıktısı. Ayrık (discrete) ise, gürültüsü kaldırılmış (unnoised) gizli (latent) pikseller için olasılık dağıtımlarını döndürür.
Transformer2DModel'nin çıktısı.