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

Двунаправленный 3D-трансформер, используемый в AnyFlowPipeline. Это основа Wan2.1 версии v0.35.1 с одним структурным изменением: встраиватель временного шага заменён на AnyFlowDualTimestepTextImageEmbedding, таким образом, каждый прямой вызов использует в качестве условия и исходный временной шаг t и целевой временной шаг r. Это встраивание необходимо для обучения отображению потока Φr←t\Phi_{r\leftarrow t} введённому в AnyFlow. См. страницу AnyFlowPipeline для информации о статье, авторах и опубликованных контрольных точках.

Для посегментной авто регрессивной генерации (FAR causal) используйте AnyFlowFARTransformer3DModel.

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

< >

( 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' )

Параметры

  • patch_size (Tuple[int], по умолчанию (1, 2, 2)) — размеры 3D-патчей для встраивания видео (t_patch, h_patch, w_patch).
  • num_attention_heads (int, по умолчанию 40) — Количество головок внимания.
  • attention_head_dim (int, по умолчанию 128) — Количество каналов в каждой голове.
  • in_channels (int, по умолчанию 16) — Количество каналов во входном латентном представлении.
  • out_channels (int, по умолчанию 16) — Количество каналов в выходном латентном представлении.
  • text_dim (int, по умолчанию 4096) — Размерность входных векторов для текстовых эмбеддингов (UMT5).
  • freq_dim (int, по умолчанию 256) — Размерность для синусоидных временных эмбеддингов.
  • ffn_dim (int, по умолчанию 13824) — Промежуточное измерение в полносвязной сети.
  • num_layers (int, по умолчанию 40) — Количество блоков трансформера.
  • cross_attn_norm (bool, по умолчанию True) — Включает нормализацию кросс-внимания.
  • eps (float, по умолчанию 1e-6) — Значение эпсилона для слоёв нормализации.
  • image_dim (Optional[int], необязательный, по умолчанию None) — Размерность эмбеддинга изображения для I2V-условия (1280 для исходной модели Wan2.1-I2V).
  • rope_max_seq_len (int, по умолчанию 1024) — Максимальная длина последовательности, используемая для предварительного вычисления частот вращательных позиционных кодировок.
  • 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, по умолчанию ‘r’) — Либо "r" (delta — целевой шаг), либо "t-r" (delta — абсолютный интервал).

Двунаправленный 3D-трансформер для выборки карт потоков AnyFlow.

Архитектура представляет собой базовый блок Wan2.1 3D DiT версии v0.35.1 с одним структурным изменением: встраиватель временного шага заменён на AnyFlowDualTimestepTextImageEmbedding , чтобы каждый вызов forward использовал в качестве условия и исходный временной шаг t , и целевой временной шаг r. Это встраивание необходимо для обучения отображению потокаΦr←t\Phi_{r\leftarrow t} , представленному в AnyFlow.

Для покусочной авто регрессивной генерации (FAR causal) используйте AnyFlowFARTransformer3DModel; этот вариант добавляет блок-маску FAR causal и встраивание патчей сжатых кадров поверх того же бэкбона.

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 )

Параметры

  • hidden_states (torch.Tensor формы (batch_size, num_frames, num_channels, height, width)) — Входные латенты видео.
  • timestep (torch.Tensor) — Исходный (более шумный) шаг потока t.
  • r_timestep (torch.Tensor) — Целевой (более чистый) шаг flow-map r; определяет конечную точку шага flow-map.
  • encoder_hidden_states (torch.Tensor формы (batch_size, sequence_len, embed_dims)) — Векторы, задающие текстовое условие.
  • encoder_hidden_states_image (torch.Tensor, optional) — Встраивания для условного кодирования изображения; при наличии конкатенируются перед текстовыми токенами.
  • attention_kwargs (dict, optional) — Аргументы, передаваемые в AttentionProcessor, определённый в self.processor в модуле diffusers.models.attention_processor.
  • return_dict (bool, необязательный, по умолчанию True) — Определяет, следует ли возвращать [~models.transformer_2d.Transformer2DModelOutput] вместо обычного кортежа.

Прямой проход двунаправленной flow-карты. hidden_states имеет форму (B, F, C, H, W) (латенты для каждого кадра). Вход преобразуется в патчи с помощью стандартного patch_embedding (размер ядра = шаг = patch_size) и очищается от шума с помощью глобального двунаправленного self-attention по получившейся плоской последовательности токенов.

Update on GitHub