Buckets:

hf-doc-build/doc / diffusers /main /es /api /models /anyflow_transformer3d.md
mishig's picture
|
download
raw
6.46 kB

AnyFlowTransformer3DModel

El Transformer 3D bidireccional utilizado por AnyFlowPipeline. Es el backbone Wan2.1 de la v0.35.1 con un cambio estructural: el incrustador de paso temporal se reemplaza por AnyFlowDualTimestepTextImageEmbedding, de modo que cada llamada de propagación hacia adelante se condiciona tanto al paso temporal de origen t como al paso temporal de destino r. Esta es la incrustación necesaria para aprender el mapa de flujo $\Phi_{r\leftarrow t}$ introducido en AnyFlow. Consulte la página de AnyFlowPipeline para obtener el artículo, los autores y los puntos de control publicados.

Para la generación autoregresiva por bloques (FAR causal), use AnyFlowFARTransformer3DModel en su lugar.

from diffusers import AnyFlowTransformer3DModel

# Bidirectional AnyFlow checkpoint (T2V):
transformer = AnyFlowTransformer3DModel.from_pretrained(
    "nvidia/AnyFlow-Wan2.1-T2V-1.3B-Diffusers", subfolder="transformer"
)

AnyFlowTransformer3DModel[[diffusers.AnyFlowTransformer3DModel]]

diffusers.AnyFlowTransformer3DModel[[diffusers.AnyFlowTransformer3DModel]]

diffusers.AnyFlowTransformer3DModel(patch_size: typing.Tuple[int] = (1, 2, 2), num_attention_heads: int = 40, attention_head_dim: int = 128, in_channels: int = 16, out_channels: int = 16, text_dim: int = 4096, freq_dim: int = 256, ffn_dim: int = 13824, num_layers: int = 40, cross_attn_norm: bool = True, eps: float = 1e-06, image_dim: typing.Optional[int] = None, rope_max_seq_len: int = 1024, gate_value: float = 0.25, deltatime_type: str = 'r')

Fuente

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 defecto 40) : Número de cabezas de atención.

attention_head_dim (int, por defecto 128) : El número de canales en cada cabeza.

in_channels (int, por defecto 16) : El número de canales en el latente de entrada.

out_channels (int, por defecto 16) : El número de canales en el latente de salida.

text_dim (int, por defecto 4096) : Dimensión de entrada para las incrustaciones de texto (UMT5).

freq_dim (int, por defecto 256) : Dimensión para las incrustaciones sinusoidales de tiempo.

ffn_dim (int, por defecto 13824) : Dimensión intermedia en la red feed-forward.

num_layers (int, por defecto 40) : Número de bloques de transformer.

cross_attn_norm (bool, por defecto True) : Habilita la normalización de la atención cruzada.

eps (float, por defecto 1e-6) : Epsilon para las capas de normalización.

image_dim (Optional[int], opcional, valor predeterminado None) : Dimensión del incrustado de imagen para el condicionamiento I2V (1280 para el modelo original Wan2.1-I2V).

rope_max_seq_len (int, por defecto 1024) : Longitud máxima de secuencia utilizada para precalcular las frecuencias de posición rotativa.

gate_value (float, por defecto 0.25) : Puerta de mezcla entre las incrustaciones de paso de tiempo de origen y de paso de tiempo delta (el parámetro gg del artículo de AnyFlow, fijado en 0.25 en la destilación de la etapa 1).

deltatime_type (str, por defecto 'r') : Ya sea "r" (delta es el paso de tiempo objetivo) o "t-r" (delta es el intervalo absoluto).

Transformador 3D bidireccional para el muestreo de mapas de flujo de AnyFlow.

La arquitectura es el backbone v0.35.1 Wan2.1 3D DiT con un cambio estructural: el timestep embedder se reemplaza por AnyFlowDualTimestepTextImageEmbedding para que cada llamada forward condicione tanto en el timestep de origen t como en el timestep de destino r. Esta es la embedding necesaria para aprender el flow map \Phi_{r\leftarrow t} introducido en AnyFlow.

Para la generación autoregresiva por bloques (FAR causal), use AnyFlowFARTransformer3DModel en su lugar; esa variante añade el bloque de máscara causal FAR y un patch embedding de marco comprimido sobre el mismo backbone.

forward[[diffusers.AnyFlowTransformer3DModel.forward]]

forward(hidden_states: Tensor, timestep: Tensor, r_timestep: Tensor, encoder_hidden_states: Tensor, encoder_hidden_states_image: typing.Optional[torch.Tensor] = None, attention_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = None, return_dict: bool = True)

Fuente

Parámetros:

hidden_states (torch.Tensor de forma (batch_size, num_frames, num_channels, height, width)) : Latentes de video de entrada.

timestep (torch.Tensor) : Paso temporal t del mapa de flujo de origen (más ruidoso).

r_timestep (torch.Tensor) : Paso de tiempo r del mapa de flujo objetivo (más limpio); define el destino del paso del mapa de flujo.

encoder_hidden_states (torch.Tensor de forma (batch_size, sequence_len, embed_dims)) : Embeddings de condicionamiento de texto.

encoder_hidden_states_image (torch.Tensor, opcional) : Embeddings de condicionamiento de imagen; se concatenan antes de los tokens de texto cuando se proporcionan.

attention_kwargs (dict, opcional) : Kwargs reenviados al AttentionProcessor tal como se definen bajo self.processor en diffusers.models.attention_processor.

return_dict (bool, opcional, valor predeterminado True) : Si se debe devolver un [~models.transformer_2d.Transformer2DModelOutput] en lugar de una tupla simple.

Devuelve:

[~models.transformer_2d.Transformer2DModelOutput] si return_dict es True, en caso contrario una tuple cuyo primer elemento es el tensor de velocidad predicho.

Paso de propagación hacia adelante del mapa de flujo bidireccional. hidden_states se organiza como (B, F, C, H, W) (latentes por cuadro). La entrada se divide en parches con el patch_embedding estándar (kernel = stride = patch_size) y se desruidifica mediante autoatención bidireccional global sobre la secuencia plana de tokens resultante.

Xet Storage Details

Size:
6.46 kB
·
Xet hash:
b0de017fb4346160b3cbf8f96b68fb3a475a3401e6c06c345e7093fc85464345

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.