Diffusers documentation

AnyFlowTransformer3DModel

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

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 à la fois le timestep source t et le timestep cible r. C'est l'embedding nécessaire pour apprendre la carte de flux Φr←t\Phi_{r\leftarrow t} introduite dans AnyFlow. Voir 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

classe diffusers.AnyFlowTransformer3DModel

< >

( 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' )

Paramètres

  • patch_size (Tuple[int], par défaut (1, 2, 2)) — Dimensions des patches 3D pour l'encodage 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 des embeddings temporels sinusoïdaux.
  • ffn_dim (int, par défaut 13824) — Dimension intermédiaire du réseau de propagation avant.
  • num_layers (int, par défaut 40) — Nombre de blocs de 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'intégration 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 rotatives.
  • gate_value (float, defaults to 0.25) — Mixing gate between source-timestep and delta-timestep embeddings (the AnyFlow paper’s{@html "ggg"} parameter, fixed at 0.25 in stage-1 distillation).
  • deltatime_type (str, par défaut ‘r’) — Soit "r" (delta est l'étape cible) ou "t-r" (delta est l'intervalle absolu).

Transformeur 3D bidirectionnel pour l'échantillonnage de la carte de flux d'AnyFlow.

L'architecture est le backbone v0.35.1 Wan2.1 3D DiT avec une modification structurelle : l'embedder de timestep est remplacé par AnyFlowDualTimestepTextImageEmbedding afin que chaque appel forward soit conditionné à la fois sur le timestep source t et le timestep cible r. C'est l'embedding nécessaire pour apprendre la carte de fluxΦr←t\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

< >

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

Paramètres

  • hidden_states (torch.Tensor de forme (batch_size, num_frames, num_channels, height, width)) — Latents de la vidéo d'entrée.
  • timestep (torch.Tensor) — Timestep 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 au AttentionProcessor tel que défini 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.

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.

Update on GitHub