Buckets:
AnyFlowTransformer3DModel
Le Transformer 3D bidirectionnel utilisé par AnyFlowPipeline. Il s’agit du backbone Wan2.1 v0.35.1 avec une modification structurelle : l’embedder de timestep est remplacé par AnyFlowDualTimestepTextImageEmbedding, de sorte que chaque appel forward conditionne sur le timestep source t et le timestep cible r. C’est l’embedding nécessaire pour apprendre la carte de flux $\Phi_{r\leftarrow t}$ introduite dans AnyFlow. Consultez la page AnyFlowPipeline pour le papier, les auteurs et les checkpoints publiés.
Pour la génération autorégressive par morceaux (FAR causal), utilisez plutôt AnyFlowFARTransformer3DModel.
from diffusers import AnyFlowTransformer3DModel
# Bidirectional AnyFlow checkpoint (T2V):
transformer = AnyFlowTransformer3DModel.from_pretrained(
"nvidia/AnyFlow-Wan2.1-T2V-1.3B-Diffusers", subfolder="transformer"
)
AnyFlowTransformer3DModel[[diffusers.AnyFlowTransformer3DModel]]
diffusers.AnyFlowTransformer3DModel[[diffusers.AnyFlowTransformer3DModel]]
diffusers.AnyFlowTransformer3DModel(patch_size: typing.Tuple[int] = (1, 2, 2), num_attention_heads: int = 40, attention_head_dim: int = 128, in_channels: int = 16, out_channels: int = 16, text_dim: int = 4096, freq_dim: int = 256, ffn_dim: int = 13824, num_layers: int = 40, cross_attn_norm: bool = True, eps: float = 1e-06, image_dim: typing.Optional[int] = None, rope_max_seq_len: int = 1024, gate_value: float = 0.25, deltatime_type: str = 'r')
Paramètres :
patch_size (Tuple[int], par défaut (1, 2, 2)) : dimensions des patches 3D pour l'intégration vidéo (t_patch, h_patch, w_patch).
num_attention_heads (int, par défaut 40) : Nombre de têtes d'attention.
attention_head_dim (int, par défaut 128) : Le nombre de canaux dans chaque tête.
in_channels (int, par défaut 16) : Le nombre de canaux dans le latent d'entrée.
out_channels (int, par défaut 16) : Le nombre de canaux dans le latent de sortie.
text_dim (int, par défaut 4096) : Dimension d'entrée pour les embeddings de texte (UMT5).
freq_dim (int, par défaut 256) : Dimension pour les embeddings temporels sinusoïdaux.
ffn_dim (int, par défaut 13824) : Dimension intermédiaire du réseau feed-forward.
num_layers (int, par défaut 40) : Nombre de blocs transformer.
cross_attn_norm (bool, par défaut True) : Active la normalisation de l'attention croisée.
eps (float, par défaut 1e-6) : Epsilon pour les couches de normalisation.
image_dim (Optional[int], facultatif, par défaut None) : Dimension de l'embedding d'image pour le conditionnement I2V (1280 pour le modèle original Wan2.1-I2V).
rope_max_seq_len (int, par défaut 1024) : Longueur maximale de séquence utilisée pour précalculer les fréquences de position rotative.
gate_value (float, par défaut 0.25) : Porte de mélange entre les embeddings de pas source et de pas delta (le paramètre du papier AnyFlow, fixé à 0.25 dans la distillation de l'étape 1).
deltatime_type (str, par défaut 'r') : Soit "r" (delta est l'étape temporelle cible) soit "t-r" (delta est l'intervalle absolu).
Transformeur 3D bidirectionnel pour l'échantillonnage de la carte de flux d'AnyFlow.
L’architecture est le socle 3D DiT de Wan2.1 v0.35.1 avec une modification structurelle : l’encodeur de pas de temps est remplacé par AnyFlowDualTimestepTextImageEmbedding afin que chaque appel avant conditionne sur le pas de temps source t et le pas de temps cible r. Il s’agit de l’encodage nécessaire pour apprendre la carte de flux \Phi_{r\leftarrow t} introduite dans AnyFlow.
Pour la génération autorégressive par morceaux (FAR causal), utilisez AnyFlowFARTransformer3DModel à la place ; cette variante ajoute le masque de bloc causal FAR et un patch embedding de trame compressée sur le même backbone.
forward[[diffusers.AnyFlowTransformer3DModel.forward]]
forward(hidden_states: Tensor, timestep: Tensor, r_timestep: Tensor, encoder_hidden_states: Tensor, encoder_hidden_states_image: typing.Optional[torch.Tensor] = None, attention_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = None, return_dict: bool = True)
Paramètres :
hidden_states (torch.Tensor de forme (batch_size, num_frames, num_channels, height, width)) : Latents vidéo en entrée.
timestep (torch.Tensor) : Pas de temps t de la carte de flux source (plus bruitée).
r_timestep (torch.Tensor) : Pas de temps r de la carte de flux cible (plus propre) ; définit la destination de l'étape de la carte de flux.
encoder_hidden_states (torch.Tensor de forme (batch_size, sequence_len, embed_dims)) : Embeddings de conditionnement textuel.
encoder_hidden_states_image (torch.Tensor, facultatif) : Embeddings de conditionnement par image ; concaténés avant les jetons de texte lorsqu'ils sont fournis.
attention_kwargs (dict, facultatif) : Arguments nommés transmis à AttentionProcessor tels que définis sous self.processor dans diffusers.models.attention_processor.
return_dict (bool, facultatif, par défaut True) : Indique s'il faut retourner un [~models.transformer_2d.Transformer2DModelOutput] plutôt qu'un simple tuple.
Retourne :
[~models.transformer_2d.Transformer2DModelOutput] si return_dict est True, sinon un tuple dont le premier élément est le tenseur de vitesse prédit.
Passage avant de la carte de flux bidirectionnelle. hidden_states est organisé en (B, F, C, H, W) (latents par image). L’entrée est patchifiée avec le patch_embedding standard (noyau = pas = patch_size) et débruitée par une auto-attention bidirectionnelle globale sur la séquence plate de jetons résultante.
Xet Storage Details
- Size:
- 6.36 kB
- Xet hash:
- 244088315ddca59165f6d32f31bd0782448cc9dc3c776cb11785dd0b7a09a51d
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.