Diffusers documentation

AnyFlowTransformer3DModel

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AnyFlowTransformer3DModel

O Transformer 3D bidirecional usado por AnyFlowPipeline. É o backbone Wan2.1 v0.35.1 com uma mudança estrutural: o incorporador de passo de tempo é substituído por AnyFlowDualTimestepTextImageEmbedding, para que cada chamada de encaminhamento condicione tanto no passo de tempo de origem t quanto no passo de tempo de destino r. Esta é a incorporação necessária para aprender o mapa de fluxo Φr←t\Phi_{r\leftarrow t} introduzido em AnyFlow. Veja a página AnyFlowPipeline para o artigo, os autores e os checkpoints liberados.

Para geração autoregressiva por blocos (FAR causal), use AnyFlowFARTransformer3DModel em vez disso.

from diffusers import AnyFlowTransformer3DModel

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

AnyFlowTransformer3DModel

classe diffusers.AnyFlowTransformer3DModel

< >

( 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], padrão (1, 2, 2)) — Dimensões do patch 3D para incorporação de vídeo (t_patch, h_patch, w_patch).
  • num_attention_heads (int, padrão 40) — Número de cabeças de atenção.
  • attention_head_dim (int, padrão 128) — O número de canais em cada head.
  • in_channels (int, padrão 16) — O número de canais no latente de entrada.
  • out_channels (int, padrão 16) — O número de canais no latente de saída.
  • text_dim (int, padrão 4096) — Dimensão de entrada para embeddings de texto (UMT5).
  • freq_dim (int, padrão 256) — Dimensão para incorporações de tempo sinusoidais.
  • ffn_dim (int, padrão 13824) — Dimensão intermediária na rede feed-forward.
  • num_layers (int, padrão 40) — Número de blocos de transformer.
  • cross_attn_norm (bool, padrão True) — Ativa a normalização de atenção cruzada.
  • eps (float, padrão 1e-6) — Epsilon para as camadas de normalização.
  • image_dim (Optional[int], opcional, padrão None) — Dimensão do embedding de imagem para condicionamento I2V (1280 para o modelo original Wan2.1-I2V).
  • rope_max_seq_len (int, padrão 1024) — Comprimento máximo da sequência usado para pré-computar as frequências de posição rotativa.
  • gate_value (float, padrão 0.25) — Porta de mistura entre os embeddings de timestep de origem e timestep delta (o parâmetro gg do paper AnyFlow, fixado em 0.25 na destilação da etapa 1).
  • deltatime_type (str, padrão ‘r’) — Ou "r" (o delta é o timestep alvo) ou "t-r" (o delta é o intervalo absoluto).

Transformador 3D bidirecional para amostragem de mapas de fluxo do AnyFlow.

A arquitetura é o backbone Wan2.1 3D DiT da v0.35.1 com uma mudança estrutural: o incorporador de passo de tempo é substituído por AnyFlowDualTimestepTextImageEmbedding para que cada chamada de forward condicione tanto no passo de tempo de origem t quanto no passo de tempo de destino r. Este é o incorporador necessário para aprender o mapa de fluxo Φr←t\Phi_{r\leftarrow t} introduzido em AnyFlow.

Para geração autoregressiva por blocos (FAR causal), use AnyFlowFARTransformer3DModel em vez disso; essa variante adiciona a máscara de bloco causal FAR e um patch embedding de quadro comprimido sobre o mesmo backbone.

forward

< >

( 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 vídeo de entrada.
  • timestep (torch.Tensor) — Timestep t do fluxo-mapa de origem (mais ruidoso).
  • r_timestep (torch.Tensor) — Timestep r do fluxo-mapa de destino (mais limpo); define o destino do passo do fluxo-mapa.
  • encoder_hidden_states (torch.Tensor de forma (batch_size, sequence_len, embed_dims)) — Incorporações de condicionamento de texto.
  • encoder_hidden_states_image (torch.Tensor, opcional) — Incorporações de condicionamento por imagem; concatenadas antes dos tokens de texto quando fornecidas.
  • attention_kwargs (dict, opcional) — Kwargs encaminhados ao AttentionProcessor conforme definido em self.processor em diffusers.models.attention_processor.
  • return_dict (bool, opcional, padrão True) — Se deve retornar um [~models.transformer_2d.Transformer2DModelOutput] em vez de uma tupla simples.

Passada direta do fluxo bidirecional de mapa de fluxo. hidden_states é organizado como (B, F, C, H, W) (latentes por quadro). A entrada é patchificada com o padrão patch_embedding (kernel = stride = patch_size) e desrujida com autoatenção global bidirecional sobre a sequência plana de tokens resultante.

Update on GitHub