Diffusers documentation
AnyFlowTransformer3DModel
AnyFlowTransformer3DModel
Transformer 3D bidireksional yang digunakan oleh AnyFlowPipeline. Ini adalah backbone Wan2.1 v0.35.1 dengan satu perubahan struktural: timestep embeddig diganti dengan AnyFlowDualTimestepTextImageEmbedding, sehingga setiap panggilan forward dikondisikan pada timestep sumber t dan timestep target r. Ini adalah embedding yang diperlukan untuk mempelajari flow map yang diperkenalkan dalam AnyFlow. Lihat halaman AnyFlowPipeline untuk paper, penulis, dan checkpoint yang dirilis.
Untuk generasi autoregresif per chunk (FAR kausal), gunakan AnyFlowFARTransformer3DModel sebagai gantinya.
from diffusers import AnyFlowTransformer3DModel
# Bidirectional AnyFlow checkpoint (T2V):
transformer = AnyFlowTransformer3DModel.from_pretrained(
"nvidia/AnyFlow-Wan2.1-T2V-1.3B-Diffusers", subfolder="transformer"
)AnyFlowTransformer3DModel
kelas diffusers.AnyFlowTransformer3DModel
< source >( patch_size: typing.Tuple[int] = (1, 2, 2)num_attention_heads: int = 40attention_head_dim: int = 128in_channels: int = 16out_channels: int = 16text_dim: int = 4096freq_dim: int = 256ffn_dim: int = 13824num_layers: int = 40cross_attn_norm: bool = Trueeps: float = 1e-06image_dim: typing.Optional[int] = Nonerope_max_seq_len: int = 1024gate_value: float = 0.25deltatime_type: str = 'r' )
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, defaultnya 40) — Jumlah kepala perhatian (attention heads).
- attention_head_dim (int, defaultnya 128) — Jumlah channel di setiap head.
- in_channels (int, defaultnya 16) — Jumlah channel pada input latent.
- out_channels (int, defaultnya 16) — Jumlah channel pada latent output.
- text_dim (int, defaultnya 4096) — Dimensi input untuk embedding teks (UMT5).
- freq_dim (int, defaultnya 256) — Dimensi untuk embedding waktu sinusoidal.
- ffn_dim (int, defaultnya 13824) — Dimensi perantara dalam jaringan feed-forward.
- num_layers (int, defaultnya 40) — Jumlah blok transformer.
- cross_attn_norm (bool, defaultnya True) — Aktifkan normalisasi cross-attention.
- eps (float, defaultnya 1e-6) — Epsilon untuk lapisan normalisasi.
- image_dim (Optional[int], opsional, default None) — Dimensi embedding gambar untuk kondisioning I2V (1280 untuk model asli Wan2.1-I2V).
- rope_max_seq_len (int, defaultnya 1024) — Panjang maksimum urutan yang digunakan untuk prahitung frekuensi posisi rotasi.
- gate_value (float, default 0.25) — Gerbang pencampuran antara embedding source-timestep dan delta-timestep (parameter dari paper AnyFlow, dipatok pada 0.25 dalam distilasi tahap-1).
- deltatime_type (str, defaultnya ‘r’) —
Bisa
"r"(delta adalah timestep target) atau"t-r"(delta adalah interval absolut).
Transformer 3D Bidireksional untuk pengambilan sampel flow-map AnyFlow.
Arsitekturnya adalah backbone Wan2.1 3D DiT v0.35.1 dengan satu perubahan struktural: timestep embeddig diganti dengan AnyFlowDualTimestepTextImageEmbedding sehingga setiap panggilan forward dikondisikan pada kedua timestep sumber t dan timestep target r. Ini adalah embedding yang diperlukan untuk mempelajari flow map yang diperkenalkan dalam AnyFlow.
Untuk generasi autoregresif per-chunk (FAR kausal), gunakan AnyFlowFARTransformer3DModel sebagai gantinya; varian tersebut menambahkan blok-mask kausal FAR dan patch embedding frame terkompresi di atas backbone yang sama.
forward
< source >( hidden_states: Tensortimestep: Tensorr_timestep: Tensorencoder_hidden_states: Tensorencoder_hidden_states_image: typing.Optional[torch.Tensor] = Noneattention_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = Nonereturn_dict: bool = True )
Parameter
- hidden_states (torch.Tensor dengan bentuk (batch_size, num_frames, num_channels, height, width)) — Latens video input.
- timestep (torch.Tensor) — Timestep t peta aliran sumber (lebih berisau).
- r_timestep (torch.Tensor) — Timestep r (lebih bersih) dari flow-map target; mendefinisikan tujuan langkah flow-map.
- encoder_hidden_states (torch.Tensor dengan bentuk (batch_size, sequence_len, embed_dims)) — Embedding kondisional teks.
- encoder_hidden_states_image (torch.Tensor, opsional) — Embedding kondisioning gambar; digabungkan sebelum token teks saat disediakan.
- attention_kwargs (dict, opsional) — Kwargs diteruskan ke AttentionProcessor seperti yang didefinisikan di bawah self.processor dalam diffusers.models.attention_processor.
- return_dict (bool, opsional, default True) — Apakah akan mengembalikan [~models.transformer_2d.Transformer2DModelOutput] alih-alih tuple biasa.
Lalu maju (forward pass) peta aliran bidireksional. hidden_states disusun sebagai (B, F, C, H, W) (laten per bingkai).
Input di-patchify dengan patch_embedding standar (kernel = stride = patch_size) dan dinoised
dengan self-attention bidireksional global di atas urutan token datar yang dihasilkan.