Diffusers documentation

WanAnimate2Transformer3DModel

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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

< >

( 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

< >

( hidden_states: list[torch.Tensor]timestep: Tensorencoder_hidden_states: list[torch.Tensor]condition_latents: list[torch.Tensor]kv_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 öncesinde hidden_states ile 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 ve kv_cache alanı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ı) — Model use_img_emb ile 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 bir refer_offset_* değerini çözmek için kullanılır. kv_cache_mode="extract" altında zorunludur; "cached" altında ise reference_grid_sizes aynı ı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ılan True) — Düz bir tuple yerine ~models.transformer_2d.Transformer2DModelOutput dö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

< >

( 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ü kaldırılmış (unnoised) gizli (latent) pikseller için olasılık dağıtımlarını döndürür.

Transformer2DModel'nin çıktısı.

Update on GitHub