Diffusers documentation

WanAnimate2Transformer3DModel

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

WanAnimate2Transformer3DModel

Un modèle Diffusion Transformer pour des données vidéo 3D, utilisé dans Wan-Animate-2 par l'équipe Alibaba Wan. Il anime une image de personnage avec le mouvement d'une vidéo de pilotage grâce à un mécanisme de référence en contexte : chaque segment exécute d'abord un passage de référence (kv_cache_mode="extract") qui met en cache les K/V de référence de chaque couche, puis les passages de débruitage (kv_cache_mode="cached") effectuent une attention conjointe sur les jetons de génération et les jetons de référence mis en cache via un BlockMask flexible.

Le modèle peut être chargé à l'aide du fragment de code suivant.

from diffusers import WanAnimate2Transformer3DModel

transformer = WanAnimate2Transformer3DModel.from_pretrained("Wan-AI/Wan2.2-Animate-2-14B-Diffusers", subfolder="transformer", dtype=torch.bfloat16)

WanAnimate2Transformer3DModel

classe diffusers.WanAnimate2Transformer3DModel

< >

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

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).
  • text_len (int, par défaut 512) — Longueur fixe pour les embeddings de texte.
  • in_dim (int, par défaut 36) — Le nombre de canaux dans l'entrée (2 * latent_channels + 4 pour le canal de masque).
  • dim (int, par défaut 5120) — Le nombre de canaux du transformeur.
  • ffn_dim (int, par défaut 13824) — Dimension intermédiaire du réseau de propagation avant.
  • freq_dim (int, par défaut 256) — Dimension des embeddings temporels sinusoïdaux.
  • text_dim (int, par défaut 4096) — Dimension d'entrée pour les embeddings de texte.
  • out_dim (int, par défaut 16) — Le nombre de canaux dans la sortie.
  • num_heads (int, par défaut 40) — Le nombre de têtes d'attention.
  • num_layers (int, par défaut 40) — Le nombre de blocs de transformeurs à utiliser.
  • cross_attn_norm (bool, par défaut True) — Active la normalisation de l'attention croisée.
  • eps (float, par défaut 1e-6) — Valeur de l'épsilon pour les couches de normalisation.
  • use_img_emb (bool, par défaut True) — Indique s'il faut utiliser l'embedding d'image CLIP.
  • refer_offset_t (int, par défaut 1) — Décalage RoPE pour la dimension temporelle de la référence.
  • refer_offset_h (int, par défaut 0) — Décalage RoPE pour la dimension de hauteur de la référence.
  • refer_offset_w (int, par défaut -1) — Décalage RoPE pour la dimension de largeur de la référence. -1 signifie d'utiliser la taille de la grille de génération.
  • refer_stride (int, par défaut 1) — Pas pour l'application de RoPE sur la référence.

Un modèle Transformer pour des données de type vidéo utilisé dans le modèle Wan-Animate-2.

Wan-Animate-2 utilise un mécanisme d’attention in-context avec un cache KV : une vidéo de référence est d’abord encodée (kv_cache_mode="extract") pour alimenter un [WanAnimate2KVCache], puis chaque étape de débruitage (kv_cache_mode="cached") effectue une attention conjointe sur les jetons de génération et les K/V de référence mis en cache via un BlockMask flex. L’auto-attention de génération s’exécute donc uniquement sur le backend d’attention flex ; toutes les autres attentions du modèle fonctionnent sur n’importe quel backend.

forward

< >

( hidden_states: listtimestep: Tensorencoder_hidden_states: listcondition_latents: listkv_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])

Paramètres

  • hidden_states (list[torch.Tensor]) — Latents pour ce passage — les latents de référence lorsque kv_cache_mode="extract", les latents de génération bruités lorsque kv_cache_mode="cached".
  • timestep (torch.Tensor) — Pas de débruitage. Ignoré lorsque kv_cache_mode="extract", qui utilise un pas fixe de 1.
  • encoder_hidden_states (list[torch.Tensor]) — Embeddings de texte pour ce passage.
  • condition_latents (list[torch.Tensor]) — Latents de conditionnement concaténés à hidden_states avant l’encodage par patch.
  • kv_cache (WanAnimate2KVCache) — Écrit avec kv_cache_mode="extract", lu avec "cached".
  • kv_cache_mode (str) — "extract" exécute le passage de référence et remplit kv_cache ; "cached" exécute une étape de débruitage sur les jetons de référence mis en cache.
  • seq_len (int) — Nombre de jetons que chaque exemple doit contenir après l’encodage par patch.
  • encoder_hidden_states_image (torch.Tensor, facultatif) — Embeddings d’image CLIP, utilisés lorsque le modèle est configuré avec use_img_emb.
  • offset_grid_sizes (torch.Tensor, facultatif) — Grille de patches des latents de référence, utilisée pour résoudre toute valeur de refer_offset_* définie à -1. Obligatoire lorsque kv_cache_mode="extract" ; avec "cached", reference_grid_sizes décrit la même grille et est utilisé à la place.
  • reference_grid_sizes (torch.Tensor, facultatif) — Grille de patches des latents de référence, utilisée pour les embeddings rotationnels de référence. Obligatoire lorsque kv_cache_mode="cached".
  • origin_len (int, facultatif) — Nombre de frames de la vidéo complète, sur lequel le masque de blocs in-context est construit. Requis lorsque kv_cache_mode="cached".
  • origin_area (list[int], facultatif) — Taille spatiale [height, width] de la vidéo complète, sur laquelle le masque de blocs in-context est construit. Requis lorsque kv_cache_mode="cached".
  • is_uncondtion (bool, facultatif) — Indique s'il s'agit de la branche inconditionnelle du classifier-free guidance.
  • 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

Transformer2DModelOutput ou tuple(list[torch.Tensor])

L'échantillon prédit par latent d'entrée, non patchifié ; un simple tuple si return_dict est False.

Transformer2DModelOutput

classe diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

Paramètres

  • sample (torch.Tensor de forme (batch_size, num_channels, height, width) ou (batch size, num_vector_embeds - 1, num_latent_pixels) si Transformer2DModel est discret) — Les états cachés en sortie, conditionnés par l'entrée encoder_hidden_states. Si discret, renvoie les distributions de probabilité pour les pixels latents non bruités.

La sortie de Transformer2DModel.

Update on GitHub