Diffusers documentation

AnyFlowTransformer3DModel

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, по умолчанию 0.25) — Ворота смешивания между эмбеддингами исходного временного шага и дельта-шага (параметр gg из статьи AnyFlow, зафиксированный на уровне 0.25 на этапе дистилляции первого порядка).
  • 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