Diffusers documentation
WanAnimateTransformer3DModel
WanAnimateTransformer3DModel
Model Diffusion Transformer untuk data video 3D diperkenalkan dalam Wan Animate oleh Alibaba Wan Team.
Model dapat dimuat dengan potongan kode berikut.
from diffusers import WanAnimateTransformer3DModel
transformer = WanAnimateTransformer3DModel.from_pretrained("Wan-AI/Wan2.2-Animate-14B-Diffusers", subfolder="transformer", dtype=torch.bfloat16)WanAnimateTransformer3DModel
kelas diffusers.WanAnimateTransformer3DModel
< source >( patch_size: tuple = (1, 2, 2)num_attention_heads: int = 40attention_head_dim: int = 128in_channels: int | None = 36latent_channels: int | None = 16out_channels: int | None = 16text_dim: int = 4096freq_dim: int = 256ffn_dim: int = 13824num_layers: int = 40cross_attn_norm: bool = Trueqk_norm: str | None = 'rms_norm_across_heads'eps: float = 1e-06image_dim: int | None = 1280added_kv_proj_dim: int | None = Nonerope_max_seq_len: int = 1024pos_embed_seq_len: int | None = Nonemotion_encoder_channel_sizes: dict[str, int] | None = Nonemotion_encoder_size: int = 512motion_style_dim: int = 512motion_dim: int = 20motion_encoder_dim: int = 512face_encoder_hidden_dim: int = 1024face_encoder_num_heads: int = 4inject_face_latents_blocks: int = 5motion_encoder_batch_size: int = 8 )
Parameter
- patch_size (
tuple[int], defaultnya(1, 2, 2)) — Dimensi patch 3D untuk embedding video (t_patch, h_patch, w_patch). - num_attention_heads (
int, defaultnya40) — Panjang tetap untuk embedding teks. - attention_head_dim (
int, defaultnya128) — Jumlah saluran di setiap head. - in_channels (
int, defaultnya16) — Jumlah channel pada input. - out_channels (
int, defaultnya16) — Jumlah channel pada output. - text_dim (
int, defaultnya512) — Dimensi input untuk embedding teks. - freq_dim (
int, defaultnya256) — Dimensi untuk embedding waktu sinusoidal. - ffn_dim (
int, defaultnya13824) — Dimensi perantara dalam jaringan feed-forward. - num_layers (
int, defaultnya40) — Jumlah lapisan blok transformer yang akan digunakan. - window_size (
tuple[int], defaultnya(-1, -1)) — Ukuran jendela untuk perhatian lokal (-1 menunjukkan perhatian global). - cross_attn_norm (
bool, defaultnyaTrue) — Aktifkan normalisasi cross-attention. - qk_norm (
bool, defaultnyaTrue) — Aktifkan normalisasi query/key. - eps (
float, defaultnya1e-6) — Nilai epsilon untuk lapisan normalisasi. - image_dim (
int, opsional, default1280) — Jumlah channel yang digunakan untuk embedding gambar. JikaNone, tidak ada proyeksi yang digunakan. - added_kv_proj_dim (
int, opsional, defaultnya5120) — Jumlah kanal yang digunakan untuk proyeksi kunci dan nilai yang ditambahkan. JikaNone, tidak ada proyeksi yang digunakan.
Model Transformer untuk data mirip video yang digunakan dalam model WanAnimate.
forward
< source >( hidden_states: Tensortimestep: LongTensorencoder_hidden_states: Tensorencoder_hidden_states_image: typing.Optional[torch.Tensor] = Nonepose_hidden_states: typing.Optional[torch.Tensor] = Noneface_pixel_values: typing.Optional[torch.Tensor] = Nonemotion_encode_batch_size: int | None = Nonereturn_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = None ) → ~models.transformer_2d.Transformer2DModelOutput or tuple
Parameter
- hidden_states (
torch.Tensordengan bentuk(B, 2C + 4, T + 1, H, W)) — Latent video berisik input dengan bentuk(B, 2C + 4, T + 1, H, W), di mana B adalah ukuran batch, C adalah jumlah kanal latent (16 untuk Wan VAE), T adalah jumlah frame latent dalam segmen inferensi, H adalah tinggi latent, dan W adalah lebar latent. - timestep — (
torch.LongTensor): Langkah waktu (timestep) saat ini dalam loop denoising. - encoder_hidden_states (
torch.Tensor) — Embedding teks dari text encoder (umT5 untuk Wan Animate). - encoder_hidden_states_image (
torch.Tensor) — Fitur visual CLIP dari gambar referensi (karakter). - pose_hidden_states (
torch.Tensordengan bentuk(B, C, T, H, W)) — Latent video pose. TODO: deskripsi - face_pixel_values (
torch.Tensordengan bentuk(B, C', S, H', W')) — Video wajah dalam ruang piksel (bukan ruang laten). Biasanya C’ = 3 dan H’ serta W’ adalah tinggi/lebar video wajah dalam piksel. Di sini S adalah panjang segmen inferensi, yang biasanya diatur ke 77. - motion_encode_batch_size (
int, opsional) — Ukuran batch untuk pengkodean batch video wajah melalui motion encoder. Akan secara default menjadiself.config.motion_encoder_batch_sizejika tidak diatur. - return_dict (
bool, opsional, defaultTrue) — Apakah mengembalikan output sebagai dict atau tuple. - attention_kwargs (
dict, opsional) — Kamus kwargs yang jika ditentukan akan diteruskan keAttentionProcessorseperti yang didefinisikan di bawahself.processordalam diffusers.models.attention_processor.
Mengembalikan
~models.transformer_2d.Transformer2DModelOutput atau tuple
Jika return_dict bernilai True, sebuah ~models.transformer_2d.Transformer2DModelOutput yang sample berupa latent video yang telah didenoise akan dikembalikan, selain itu sebuah tuple biasa yang elemen pertamanya adalah tensor tersebut akan dikembalikan.
Forward pass dari model transformer Wan2.2-Animate.
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.