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

Um modelo Diffusion Transformer para dados de vídeo 3D-like usado no Wan-Animate-2 pela equipe Wan da Alibaba. Ele anima uma imagem de personagem com o movimento de um vídeo de referência por meio de um mecanismo de referência in-context: cada segmento primeiro executa uma passagem de referência (kv_cache_mode="extract") que faz o cache dos K/V de referência de cada camada, e em seguida as passagens de desruido (kv_cache_mode="cached") atendem conjuntamente sobre os tokens de geração e os tokens de referência em cache por meio de um flex BlockMask.

O modelo pode ser carregado com o seguinte trecho de código.

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 )

Parâmetros

  • patch_size (tuple[int], padrão (1, 2, 2)) — Dimensões do patch 3D para incorporação de vídeo (t_patch, h_patch, w_patch).
  • text_len (int, padrão 512) — Comprimento fixo para incorporações de texto.
  • in_dim (int, padrão 36) — O número de canais na entrada (2 * latent_channels + 4 para o canal de máscara).
  • dim (int, padrão 5120) — O número de canais no transformer.
  • ffn_dim (int, padrão 13824) — Dimensão intermediária na rede feed-forward.
  • freq_dim (int, padrão 256) — Dimensão para incorporações de tempo sinusoidais.
  • text_dim (int, padrão 4096) — Dimensão de entrada para embeddings de texto.
  • out_dim (int, padrão 16) — O número de canais na saída.
  • num_heads (int, padrão 40) — O número de cabeças de atenção.
  • num_layers (int, padrão 40) — O número de blocos de transformadores a serem usados.
  • cross_attn_norm (bool, padrão True) — Ativa a normalização de atenção cruzada.
  • eps (float, padrão 1e-6) — Valor de epsilon para as camadas de normalização.
  • use_img_emb (bool, padrão True) — Se deve usar o embedding de imagem do CLIP.
  • refer_offset_t (int, padrão 1) — Deslocamento RoPE para a dimensão temporal da referência.
  • refer_offset_h (int, padrão 0) — Offset de RoPE para a dimensão de altura da referência.
  • refer_offset_w (int, padrão -1) — Deslocamento RoPE para a dimensão de largura da referência. -1 significa usar o tamanho da grade de geração.
  • refer_stride (int, padrão 1) — Passo para a aplicação de RoPE na referência.

Um modelo Transformer para dados semelhantes a vídeo usado no modelo Wan-Animate-2.

Wan-Animate-2 usa um mecanismo de atenção em contexto com um cache de KV: primeiro, um vídeo de referência é codificado (kv_cache_mode="extract") para preencher um [WanAnimate2KVCache]; em seguida, cada etapa de desruidamento (kv_cache_mode="cached") atende conjuntamente sobre os tokens de geração e o K/V de referência em cache por meio de um flex BlockMask. Portanto, a autoatenção de geração é executada apenas no backend de atenção flex; toda outra atenção no modelo funciona em qualquer 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])

Parâmetros

  • hidden_states (list[torch.Tensor]) — Latentes para esta passagem — os latentes de referência quando kv_cache_mode="extract", os latentes de geração com ruído quando kv_cache_mode="cached".
  • timestep (torch.Tensor) — Timestep de desruidamento. Ignorado sob kv_cache_mode="extract", que usa um timestep fixo de 1.
  • encoder_hidden_states (list[torch.Tensor]) — Incorporações de texto para esta passagem.
  • condition_latents (list[torch.Tensor]) — Latentes de condicionamento concatenados a hidden_states antes da incorporação de patches.
  • kv_cache (WanAnimate2KVCache) — Escrito sob kv_cache_mode="extract", lido sob "cached".
  • kv_cache_mode (str) — "extract" executa a passagem de referência e preenche kv_cache; "cached" executa um passo de desruidamento contra os tokens de referência em cache.
  • seq_len (int) — Quantidade de tokens que cada amostra deve ter após o patch embedding.
  • encoder_hidden_states_image (torch.Tensor, opcional) — Incorporações de imagem do CLIP, usadas quando o modelo é configurado com use_img_emb.
  • offset_grid_sizes (torch.Tensor, opcional) — Grade de patches dos latentes de referência, usada para resolver qualquer refer_offset_* definido como -1. Obrigatório quando kv_cache_mode="extract"; quando "cached", reference_grid_sizes descreve a mesma grade e é usado no lugar.
  • reference_grid_sizes (torch.Tensor, opcional) — Grade de patches dos latentes de referência, usada para os embeddings rotativos de referência. Obrigatório quando kv_cache_mode="cached".
  • origin_len (int, opcional) — Número de quadros do vídeo completo, sobre o qual a máscara de bloco em contexto é construída. Obrigatório quando kv_cache_mode="cached".
  • origin_area (list[int], opcional) — Tamanho espacial [height, width] do vídeo completo, sobre o qual a máscara de bloco em contexto é construída. Obrigatório quando kv_cache_mode="cached".
  • is_uncondtion (bool, opcional) — Se este é o ramo incondicional da classifier-free guidance.
  • return_dict (bool, opcional, padrão True) — Se deve retornar um ~models.transformer_2d.Transformer2DModelOutput em vez de uma tupla simples.

Retorna

Transformer2DModelOutput ou tuple(list[torch.Tensor])

A amostra prevista por latente de entrada, sem desfragmentação; uma tupla simples se return_dict for False.

Transformer2DModelOutput

classe diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

Parâmetros

  • sample (torch.Tensor de forma (batch_size, num_channels, height, width) ou (batch size, num_vector_embeds - 1, num_latent_pixels) se Transformer2DModel for discreto) — A saída dos estados ocultos condicionada à entrada encoder_hidden_states. Se discreto, retorna distribuições de probabilidade para os pixels latentes sem ruído.

A saída de Transformer2DModel.

Update on GitHub