Diffusers documentation
WanAnimate2Transformer3DModel
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
< 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 )
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
< source >( 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 ketikakv_cache_mode="extract", latents generasi berisik ketikakv_cache_mode="cached". - timestep (
torch.Tensor) — Timestep denoising. Diabaikan di bawahkv_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 kehidden_statessebelum patch embedding. - kv_cache (
WanAnimate2KVCache) — Ditulis saatkv_cache_mode="extract", dibaca saat"cached". - kv_cache_mode (
str) —"extract"menjalankan jalur referensi dan mengisikv_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 denganuse_img_emb. - offset_grid_sizes (
torch.Tensor, opsional) — Grid patch dari latens referensi, digunakan untuk menyelesaikanrefer_offset_*yang diset ke -1. Wajib di bawahkv_cache_mode="extract"; di bawah"cached",reference_grid_sizesmenggambarkan 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 saatkv_cache_mode="cached". - origin_len (
int, opsional) — Jumlah frame dari video lengkap, yang menjadi dasar pembuatan in-context block mask. Wajib diisi saatkv_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 saatkv_cache_mode="cached". - is_uncondtion (
bool, opsional) — Apakah ini cabang unconditional dari classifier-free guidance. - return_dict (
bool, opsional, defaultTrue) — Apakah akan mengembalikan~models.transformer_2d.Transformer2DModelOutputalih-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
< source >( sample: torch.Tensor )
Parameter
- sample (
torch.Tensordengan 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 inputencoder_hidden_states. Jika diskrit, mengembalikan distribusi probabilitas untuk latent pixels yang tidak berisik.
Output dari Transformer2DModel.