Diffusers documentation
WanAnimateTransformer3DModel
WanAnimateTransformer3DModel
Un modèle Diffusion Transformer pour des données vidéo 3D a été introduit dans Wan Animate par l'équipe Alibaba Wan.
Le modèle peut être chargé à l'aide du fragment de code suivant.
from diffusers import WanAnimateTransformer3DModel
transformer = WanAnimateTransformer3DModel.from_pretrained("Wan-AI/Wan2.2-Animate-14B-Diffusers", subfolder="transformer", dtype=torch.bfloat16)WanAnimateTransformer3DModel
classe 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 )
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éfaut40) — Longueur fixe pour les embeddings de texte. - attention_head_dim (
int, par défaut128) — Le nombre de canaux dans chaque tête. - in_channels (
int, par défaut16) — Le nombre de canaux dans l'entrée. - out_channels (
int, par défaut16) — Le nombre de canaux dans la sortie. - text_dim (
int, par défaut512) — Dimension d'entrée pour les embeddings de texte. - freq_dim (
int, par défaut256) — Dimension pour les embeddings temporels sinusoïdaux. - ffn_dim (
int, par défaut13824) — Dimension intermédiaire du réseau de propagation avant. - num_layers (
int, par défaut40) — Le nombre de blocs de transformeurs à utiliser. - window_size (
tuple[int], par défaut(-1, -1)) — Taille de la fenêtre pour l'attention locale (-1 indique une attention globale). - cross_attn_norm (
bool, par défautTrue) — Active la normalisation de l'attention croisée. - qk_norm (
bool, par défautTrue) — Active la normalisation des requêtes/clés. - eps (
float, par défaut1e-6) — Valeur de l'épsilon pour les couches de normalisation. - image_dim (
int, facultatif, par défaut1280) — Le nombre de canaux à utiliser pour l'intégration d'image. SiNone, aucune projection n'est utilisée. - added_kv_proj_dim (
int, facultatif, par défaut5120) — Le nombre de canaux à utiliser pour les projections clés et valeurs ajoutées. SiNone, aucune projection n’est utilisée.
Un modèle Transformer pour des données de type vidéo utilisé dans le modèle 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
Paramètres
- hidden_states (
torch.Tensorde forme(B, 2C + 4, T + 1, H, W)) — Latents vidéo bruités en entrée de forme(B, 2C + 4, T + 1, H, W), où B est la taille du lot, C est le nombre de canaux latents (16 pour Wan VAE), T est le nombre de trames latentes dans un segment d’inférence, H est la hauteur latente et W est la largeur latente. - timestep — (
torch.LongTensor) : L'étape temporelle actuelle dans la boucle de débruitage. - encoder_hidden_states (
torch.Tensor) — Embeddings de texte issus de l'encodeur de texte (umT5 pour Wan Animate). - encoder_hidden_states_image (
torch.Tensor) — Caractéristiques visuelles CLIP de l’image de référence (personnage). - pose_hidden_states (
torch.Tensorde forme(B, C, T, H, W)) — Latents vidéo de pose. TODO : description - face_pixel_values (
torch.Tensorde forme(B, C', S, H', W')) — Vidéo du visage dans l’espace des pixels (et non dans l’espace latent). En général, C’ = 3 et H’ et W’ correspondent à la hauteur/largeur de la vidéo du visage en pixels. Ici, S est la longueur du segment d’inférence, généralement fixée à 77. - motion_encode_batch_size (
int, facultatif) — Taille du lot pour l'encodage par lots de la vidéo du visage via l'encodeur de mouvement. Par défaut, la valeur estself.config.motion_encoder_batch_sizesi elle n'est pas définie. - return_dict (
bool, facultatif, par défautTrue) — Indique s'il faut renvoyer la sortie sous forme de dictionnaire ou de tuple. - attention_kwargs (
dict, facultatif) — Un dictionnaire de kwargs qui, s'il est spécifié, est transmis à l'AttentionProcessordéfini sousself.processordans diffusers.models.attention_processor.
Retourne
~models.transformer_2d.Transformer2DModelOutput ou tuple
Si return_dict est True, un ~models.transformer_2d.Transformer2DModelOutput dont le sample est le latent vidéo débruité est renvoyé, sinon un simple tuple dont le premier élément est ce tenseur est renvoyé.
Passage avant du modèle transformer Wan2.2-Animate.
Transformer2DModelOutput
classe diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
Paramètres
- sample (
torch.Tensorde 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éeencoder_hidden_states. Si discret, renvoie les distributions de probabilité pour les pixels latents non bruités.
La sortie de Transformer2DModel.