Diffusers documentation
AnyFlowTransformer3DModel
AnyFlowTransformer3DModel
El Transformer 3D bidireccional utilizado por AnyFlowPipeline. Es el backbone Wan2.1 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 introducido en AnyFlow. Consulta 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
clase diffusers.AnyFlowTransformer3DModel
< source >( patch_size: typing.Tuple[int] = (1, 2, 2)num_attention_heads: int = 40attention_head_dim: int = 128in_channels: int = 16out_channels: int = 16text_dim: int = 4096freq_dim: int = 256ffn_dim: int = 13824num_layers: int = 40cross_attn_norm: bool = Trueeps: float = 1e-06image_dim: typing.Optional[int] = Nonerope_max_seq_len: int = 1024gate_value: float = 0.25deltatime_type: str = 'r' )
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 los embeddings 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 atención cruzada.
- eps (float, por defecto 1e-6) — Epsilon para las capas de normalización.
- image_dim (Optional[int], opcional, por defecto None) — Dimensión del embedding 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, defaults to 0.25) — Mixing gate between source-timestep and delta-timestep embeddings (the AnyFlow paper’s{@html "g"} parameter, fixed at 0.25 in stage-1 distillation).
- deltatime_type (str, por defecto ‘r’) —
O bien
"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 Wan2.1 3D DiT de la versión v0.35.1 con un cambio estructural: el timestep embedder se reemplaza por AnyFlowDualTimestepTextImageEmbedding de modo que cada llamada de forward se condicione tanto en el timestep de origen t como en el timestep de destino r. Esta es la incrustación necesaria para aprender el mapa de flujo introducido en AnyFlow.
Para la generación autoregresiva por bloques (FAR causal), use AnyFlowFARTransformer3DModel en su lugar; esa variante añade la máscara de bloques causal de FAR y un incrustado de parches de marco comprimido sobre el mismo backbone.
forward
< source >( hidden_states: Tensortimestep: Tensorr_timestep: Tensorencoder_hidden_states: Tensorencoder_hidden_states_image: typing.Optional[torch.Tensor] = Noneattention_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = Nonereturn_dict: bool = True )
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 de tiempo t del mapa de flujo de origen (más ruidoso).
- r_timestep (torch.Tensor) — Paso temporal 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)) — Incrustaciones de condicionamiento de texto.
- encoder_hidden_states_image (torch.Tensor, opcional) — Incrustaciones de condicionamiento por imagen; se concatenan antes de los tokens de texto cuando se proporcionan.
- attention_kwargs (dict, opcional) — Kwargs reenviados al AttentionProcessor tal como se define en self.processor dentro de 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.
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
con autoatención global bidireccional sobre la secuencia plana de tokens resultante.