Diffusers documentation

WanAnimate2Transformer3DModel

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

WanAnimate2Transformer3DModel

Un modelo Diffusion Transformer para datos de video 3D utilizado en Wan-Animate-2 por el equipo Wan de Alibaba. Anima una imagen de personaje con el movimiento de un video de referencia mediante un mecanismo de referencia en contexto: cada segmento primero ejecuta una pasada de referencia (kv_cache_mode="extract") que almacena en caché las K/V de referencia de cada capa, y luego las pasadas de desruido (kv_cache_mode="cached") atienden conjuntamente a los tokens de generación y a los tokens de referencia en caché a través de una flex BlockMask.

El modelo se puede cargar con el siguiente fragmento 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

clase 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], por defecto (1, 2, 2)) — Dimensiones del parche 3D para la incrustación de video (t_patch, h_patch, w_patch).
  • text_len (int, por defecto 512) — Longitud fija para las incorporaciones de texto.
  • in_dim (int, por defecto 36) — El número de canales en la entrada (2 * latent_channels + 4 para el canal de máscara).
  • dim (int, por defecto 5120) — El número de canales en el transformer.
  • ffn_dim (int, por defecto 13824) — Dimensión intermedia en la red feed-forward.
  • freq_dim (int, por defecto 256) — Dimensión para las incrustaciones sinusoidales de tiempo.
  • text_dim (int, por defecto 4096) — Dimensión de entrada para los embeddings de texto.
  • out_dim (int, por defecto 16) — El número de canales en la salida.
  • num_heads (int, por defecto 40) — El número de cabezas de atención.
  • num_layers (int, por defecto 40) — El número de capas de bloques de transformador a utilizar.
  • cross_attn_norm (bool, por defecto True) — Habilita la normalización de atención cruzada.
  • eps (float, por defecto 1e-6) — Valor de epsilon para las capas de normalización.
  • use_img_emb (bool, por defecto True) — Si se debe usar el embedding de imagen de CLIP.
  • refer_offset_t (int, por defecto 1) — Desplazamiento de RoPE para la dimensión temporal de la referencia.
  • refer_offset_h (int, por defecto 0) — Desplazamiento de RoPE para la dimensión de altura de la referencia.
  • refer_offset_w (int, por defecto -1) — Desplazamiento de RoPE para la dimensión de ancho de la referencia. -1 significa usar el tamaño de la cuadrícula de generación.
  • refer_stride (int, por defecto 1) — Paso para la aplicación de RoPE en la referencia.

Un modelo Transformer para datos tipo video utilizado en el modelo Wan-Animate-2.

Wan-Animate-2 utiliza un mecanismo de atención en contexto con una caché KV: primero se codifica un video de referencia (kv_cache_mode="extract") para poblar una [WanAnimate2KVCache], y luego cada paso de desruido (kv_cache_mode="cached") atiende conjuntamente sobre los tokens de generación y los K/V de referencia en caché a través de una BlockMask flexible. Por lo tanto, la autoatención de generación se ejecuta únicamente en el backend de atención flex; cualquier otra atención en el modelo funciona en cualquier backend.

forward

< >

( hidden_states: list[torch.Tensor]timestep: Tensorencoder_hidden_states: list[torch.Tensor]condition_latents: list[torch.Tensor]kv_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 pasada: los latentes de referencia cuando kv_cache_mode="extract", los latentes de generación con ruido cuando kv_cache_mode="cached".
  • timestep (torch.Tensor) — Paso de tiempo de desruido. Se ignora bajo kv_cache_mode="extract", que utiliza un paso de tiempo fijo de 1.
  • encoder_hidden_states (list[torch.Tensor]) — Incrustaciones de texto para esta pasada.
  • condition_latents (list[torch.Tensor]) — Latentes de condicionamiento concatenados a hidden_states antes del patch embedding.
  • kv_cache (WanAnimate2KVCache) — Se escribe con kv_cache_mode="extract" y se lee con "cached".
  • kv_cache_mode (str) — "extract" ejecuta el paso de referencia y rellena kv_cache; "cached" ejecuta un paso de desruido contra los tokens de referencia en caché.
  • seq_len (int) — Número de tokens que cada muestra debe contener después del patch embedding.
  • encoder_hidden_states_image (torch.Tensor, opcional) — Incrustaciones de imagen de CLIP, utilizadas cuando el modelo está configurado con use_img_emb.
  • offset_grid_sizes (torch.Tensor, opcional) — Rejilla de parches de los latentes de referencia, utilizada para resolver cualquier refer_offset_* establecido en -1. Obligatorio con kv_cache_mode="extract"; con "cached", reference_grid_sizes describe la misma rejilla y se utiliza en su lugar.
  • reference_grid_sizes (torch.Tensor, opcional) — Cuadrícula de parches de los latentes de referencia, utilizada para las incrustaciones rotacionales de referencia. Obligatorio cuando kv_cache_mode="cached".
  • origin_len (int, opcional) — Número de fotogramas del video completo sobre el que se construye la máscara de bloques en contexto. Obligatorio cuando kv_cache_mode="cached".
  • origin_area (list[int], opcional) — Tamaño espacial [height, width] del video completo, sobre el cual se construye la máscara de bloques en contexto. Obligatorio bajo kv_cache_mode="cached".
  • is_uncondtion (bool, opcional) — Indica si se trata de la rama incondicional de la guía de clasificación libre (classifier-free guidance).
  • return_dict (bool, opcional, valor predeterminado True) — Si se debe devolver un ~models.transformer_2d.Transformer2DModelOutput en lugar de una tupla simple.

Devuelve

Transformer2DModelOutput o tuple(list[torch.Tensor])

La muestra predicha por latente de entrada, sin parchear; una tupla simple si return_dict es False.

Transformer2DModelOutput

clase diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

Parámetros

  • sample (torch.Tensor de forma (batch_size, num_channels, height, width) o (batch size, num_vector_embeds - 1, num_latent_pixels) si Transformer2DModel es discreto) — La salida de estados ocultos condicionada a la entrada encoder_hidden_states. Si es discreto, devuelve distribuciones de probabilidad para los píxeles latentes sin ruido.

La salida de Transformer2DModel.

Update on GitHub