Diffusers documentation
WanAnimateTransformer3DModel
WanAnimateTransformer3DModel
Un modelo Diffusion Transformer para datos de video 3D fue introducido en Wan Animate por el equipo Alibaba Wan.
El modelo se puede cargar con el siguiente fragmento de código.
from diffusers import WanAnimateTransformer3DModel
transformer = WanAnimateTransformer3DModel.from_pretrained("Wan-AI/Wan2.2-Animate-14B-Diffusers", subfolder="transformer", dtype=torch.bfloat16)WanAnimateTransformer3DModel
clase diffusers.WanAnimateTransformer3DModel
< source >( patch_size: tuple[int] = (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 )
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). - num_attention_heads (
int, por defecto40) — Longitud fija para las incrustaciones de texto. - attention_head_dim (
int, por defecto128) — El número de canales en cada cabeza. - in_channels (
int, por defecto16) — El número de canales en la entrada. - out_channels (
int, por defecto16) — El número de canales en la salida. - text_dim (
int, por defecto512) — Dimensión de entrada para las incrustaciones de texto. - freq_dim (
int, por defecto256) — Dimensión para las incrustaciones sinusoidales de tiempo. - ffn_dim (
int, por defecto13824) — Dimensión intermedia en la red feed-forward. - num_layers (
int, por defecto40) — El número de capas de bloques de transformador a utilizar. - window_size (
tuple[int], por defecto(-1, -1)) — Tamaño de la ventana para la atención local (-1 indica atención global). - cross_attn_norm (
bool, por defectoTrue) — Habilita la normalización de atención cruzada. - qk_norm (
bool, por defectoTrue) — Habilita la normalización de query/key. - eps (
float, por defecto1e-6) — Valor de epsilon para las capas de normalización. - image_dim (
int, opcional, valor predeterminado1280) — El número de canales a utilizar para la incrustación de imagen. Si esNone, no se utiliza ninguna proyección. - added_kv_proj_dim (
int, opcional, valor predeterminado5120) — El número de canales a utilizar para las proyecciones de clave y valor añadidas. Si esNone, no se utiliza ninguna proyección.
Un modelo Transformer para datos similares a video utilizado en el modelo 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
Parámetros
- hidden_states (
torch.Tensorde forma(B, 2C + 4, T + 1, H, W)) — Latentes de video con ruido de entrada de forma(B, 2C + 4, T + 1, H, W), donde B es el tamaño del lote, C es el número de canales latentes (16 para Wan VAE), T es el número de fotogramas latentes en un segmento de inferencia, H es la altura latente y W es el ancho latente. - timestep — (
torch.LongTensor): El paso de tiempo actual en el bucle de desruido. - encoder_hidden_states (
torch.Tensor) — Incrustaciones de texto del codificador de texto (umT5 para Wan Animate). - encoder_hidden_states_image (
torch.Tensor) — Características visuales de CLIP de la imagen de referencia (personaje). - pose_hidden_states (
torch.Tensorde forma(B, C, T, H, W)) — Latentes de video de pose. TODO: descripción - face_pixel_values (
torch.Tensorde forma(B, C', S, H', W')) — Video de rostro en espacio de píxeles (no en espacio latente). Típicamente C’ = 3 y H’ y W’ son la altura/ancho del video de rostro en píxeles. Aquí S es la longitud del segmento de inferencia, generalmente fijada en 77. - motion_encode_batch_size (
int, opcional) — El tamaño de lote para la codificación por lotes del video facial a través del codificador de movimiento. Si no se establece, el valor predeterminado seráself.config.motion_encoder_batch_size. - return_dict (
bool, opcional, valor predeterminadoTrue) — Si se devuelve la salida como un diccionario o una tupla. - attention_kwargs (
dict, opcional) — Un diccionario de kwargs que, si se especifica, se pasa alAttentionProcessordefinido enself.processordentro de diffusers.models.attention_processor.
Devuelve
~models.transformer_2d.Transformer2DModelOutput o tuple
Si return_dict es True, se devuelve un ~models.transformer_2d.Transformer2DModelOutput cuyo sample es el latente del video desruidado; de lo contrario, se devuelve una tuple simple cuyo primer elemento es ese tensor.
Paso hacia adelante del modelo transformer Wan2.2-Animate.
Transformer2DModelOutput
clase diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
Parámetros
- sample (
torch.Tensorde 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 entradaencoder_hidden_states. Si es discreto, devuelve distribuciones de probabilidad para los píxeles latentes sin ruido.
La salida de Transformer2DModel.