Diffusers documentation

AnyFlowTransformer3DModel

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
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, defaults to 0.25) — Mixing gate between source-timestep and delta-timestep embeddings (the AnyFlow paper’s{@html "ggg"} parameter, fixed at 0.25 in stage-1 distillation).
  • 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