Diffusers documentation

WanAnimate2Transformer3DModel

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

WanAnimate2Transformer3DModel

Model Diffusion Transformer untuk data video 3D yang digunakan dalam Wan-Animate-2 oleh Alibaba Wan Team. Model ini menganimasikan gambar karakter dengan gerakan dari video penggerak melalui mekanisme referensi in-context: setiap segmen pertama menjalankan jalur referensi (kv_cache_mode="extract") yang meng-cache K/V referensi dari setiap lapisan, kemudian jalur denoising (kv_cache_mode="cached") melakukan perhatian secara bersama atas token generasi dan token referensi yang di-cache melalui BlockMask fleksibel.

Model dapat dimuat dengan potongan kode berikut.

from diffusers import WanAnimate2Transformer3DModel

transformer = WanAnimate2Transformer3DModel.from_pretrained("Wan-AI/Wan2.2-Animate-2-14B-Diffusers", subfolder="transformer", dtype=torch.bfloat16)

WanAnimate2Transformer3DModel

kelas 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 )

Parameter

  • patch_size (tuple[int], defaultnya (1, 2, 2)) — Dimensi patch 3D untuk embedding video (t_patch, h_patch, w_patch).
  • text_len (int, defaultnya 512) — Panjang tetap untuk embedding teks.
  • in_dim (int, defaultnya 36) — Jumlah channel pada input (2 * latent_channels + 4 untuk channel mask).
  • dim (int, defaultnya 5120) — Jumlah channel dalam transformer.
  • ffn_dim (int, defaultnya 13824) — Dimensi perantara dalam jaringan feed-forward.
  • freq_dim (int, defaultnya 256) — Dimensi untuk embedding waktu sinusoidal.
  • text_dim (int, defaultnya 4096) — Dimensi input untuk embedding teks.
  • out_dim (int, defaultnya 16) — Jumlah channel pada output.
  • num_heads (int, defaultnya 40) — Jumlah kepala perhatian (attention heads).
  • num_layers (int, defaultnya 40) — Jumlah lapisan blok transformer yang akan digunakan.
  • cross_attn_norm (bool, defaultnya True) — Aktifkan normalisasi cross-attention.
  • eps (float, defaultnya 1e-6) — Nilai epsilon untuk lapisan normalisasi.
  • use_img_emb (bool, defaultnya True) — Apakah akan menggunakan embedding gambar CLIP.
  • refer_offset_t (int, defaultnya 1) — Offset RoPE untuk dimensi temporal dari referensi.
  • refer_offset_h (int, defaultnya 0) — Offset RoPE untuk dimensi tinggi referensi.
  • refer_offset_w (int, defaultnya -1) — Offset RoPE untuk dimensi lebar referensi. -1 berarti gunakan ukuran grid generasi.
  • refer_stride (int, defaultnya 1) — Stride untuk penerapan RoPE pada referensi.

Model Transformer untuk data mirip video yang digunakan dalam model Wan-Animate-2.

Wan-Animate-2 menggunakan mekanisme perhatian in-context dengan KV cache: video referensi terlebih dahulu dikodekan (kv_cache_mode="extract") untuk mengisi [WanAnimate2KVCache], kemudian setiap langkah denoising (kv_cache_mode="cached") memperhatikan secara bersama atas token generasi dan K/V referensi yang di-cache melalui BlockMask fleksibel. Oleh karena itu, self-attention generasi hanya berjalan pada backend perhatian flex; semua perhatian lainnya dalam model bekerja pada backend apa pun.

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])

Parameter

  • hidden_states (list[torch.Tensor]) — Latents untuk pass ini — latents referensi ketika kv_cache_mode="extract", latents generasi berisik ketika kv_cache_mode="cached".
  • timestep (torch.Tensor) — Timestep denoising. Diabaikan di bawah kv_cache_mode="extract", yang menggunakan timestep tetap 1.
  • encoder_hidden_states (list[torch.Tensor]) — Embedding teks untuk pass ini.
  • condition_latents (list[torch.Tensor]) — Latents kondisioning yang digabungkan ke hidden_states sebelum patch embedding.
  • kv_cache (WanAnimate2KVCache) — Ditulis saat kv_cache_mode="extract", dibaca saat "cached".
  • kv_cache_mode (str) — "extract" menjalankan jalur referensi dan mengisi kv_cache; "cached" menjalankan langkah denoising terhadap token referensi yang di-cache.
  • seq_len (int) — Jumlah token yang harus dimiliki setiap sampel setelah patch embedding.
  • encoder_hidden_states_image (torch.Tensor, opsional) — Embedding gambar CLIP, digunakan ketika model dikonfigurasi dengan use_img_emb.
  • offset_grid_sizes (torch.Tensor, opsional) — Grid patch dari latens referensi, digunakan untuk menyelesaikan refer_offset_* yang diset ke -1. Wajib di bawah kv_cache_mode="extract"; di bawah "cached", reference_grid_sizes menggambarkan grid yang sama dan digunakan sebagai gantinya.
  • reference_grid_sizes (torch.Tensor, opsional) — Grid patch dari latens referensi, digunakan untuk rotary embeddings referensi. Wajib diisi saat kv_cache_mode="cached".
  • origin_len (int, opsional) — Jumlah frame dari video lengkap, yang menjadi dasar pembuatan in-context block mask. Wajib diisi saat kv_cache_mode="cached".
  • origin_area (list[int], opsional) — Ukuran spasial [height, width] dari video penuh, yang menjadi dasar pembuatan in-context block mask. Wajib diisi saat kv_cache_mode="cached".
  • is_uncondtion (bool, opsional) — Apakah ini cabang unconditional dari classifier-free guidance.
  • return_dict (bool, opsional, default True) — Apakah akan mengembalikan ~models.transformer_2d.Transformer2DModelOutput alih-alih tuple biasa.

Mengembalikan

Transformer2DModelOutput atau tuple(list[torch.Tensor])

Sampel prediksi per laten input, tanpa patch; tuple polos jika return_dict adalah False.

Transformer2DModelOutput

kelas diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

Parameter

  • sample (torch.Tensor dengan bentuk (batch_size, num_channels, height, width) atau (batch size, num_vector_embeds - 1, num_latent_pixels) jika Transformer2DModel bersifat diskrit) — Output hidden states yang dikondisikan pada input encoder_hidden_states. Jika diskrit, mengembalikan distribusi probabilitas untuk latent pixels yang tidak berisik.

Output dari Transformer2DModel.

Update on GitHub