Diffusers documentation

KandinskyS2VTransformer3DModel

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

KandinskyS2VTransformer3DModel

Diffusion Transformer (DiT) модели Kandinsky S2V 1.0, использующий в качестве условий опорный кадр и аудиодорожку речи.

KandinskyS2VTransformer3DModel

класс diffusers.KandinskyS2VTransformer3DModel

< >

( in_visual_dim: int = 16out_visual_dim: int = 16in_text_dim: int = 3584in_text_dim2: int = 768in_audio_dim: int = 3584time_dim: int = 512patch_size: tuple[int, int, int] = (1, 2, 2)frame_buckets: tuple[int, int, int] = (2, 4, 24)enable_framepack: bool = Trueindex_rope_ref_image: int = 40patch_proj1x_coef: tuple[int, int, int] = (1, 1, 1)patch_proj2x_coef: tuple[int, int, int] = (2, 2, 2)patch_proj4x_coef: tuple[int, int, int] = (4, 4, 4)model_dim: int = 1792ff_dim: int = 7168num_text_blocks: int = 2num_audio_blocks: int = 2num_visual_blocks: int = 32axes_dims: tuple[int, int, int] = (16, 24, 24)audio_inject_layers: tuple[int, ...] = ()text_rope_max_pos: int = 4096 )

Диффузионный трансформер для генерации видео по речи.

Имена параметров совпадают с контрольными точками обучения, поэтому сконвертированный .safetensors загружается без переименования ключей. Вывод выполняется с размером батча 1: последовательность упакована, а кросс-внимание речи выровнено по кадрам, поэтому forward принимает ведущую ось батча размером 1 и сжимает её.

Визуальный поток представляет собой одну упакованную последовательность [memory | ref | visual]:

  • memory — контекст FramePack из предыдущего фрагмента с временным даунсемплингом 4x / 2x / 1x, размещённый на отрицательных позициях временного RoPE;
  • ref — опорная система координат, закреплённая за временным индексом RoPE index_rope_ref_image;
  • visual — зашумлённое латентное представление, которое подвергается денуизингу.

memory и ref чистые, поэтому они модулируются с t = 0, тогда как visual использует реальный шаг; модуляция содержит обе строки, а индекс выбирает значение для каждого токена.

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensoraudio_hidden_states: Tensorreference_hidden_states: Tensormemory_hidden_states: tuple[Tensor, Tensor, Tensor]timestep: Tensorpooled_projections: Tensorvisual_rope_pos: list[Tensor]reference_rope_pos: list[Tensor]memory_rope_pos: tuple[list[Tensor], list[Tensor], list[Tensor]]text_rope_pos: Tensoraudio_rope_pos: Tensorscale_factor: tuple[float, float, float] = (1.0, 1.0, 1.0)return_dict: bool = True ) → [~models.modeling_outputs.Transformer2DModelOutput] or tuple

Параметры

  • hidden_states — зашумлённое латентное представление, (1, T, H, W, C).
  • encoder_hidden_states — эмбеддинги текста, (1, S_text, in_text_dim).
  • audio_hidden_states — признаки речи, (1, S_audio, in_audio_dim).
  • reference_hidden_states — латентное представление опорного кадра, (1, 1, H, W, C).
  • memory_hidden_states — память FramePack в масштабах 4x / 2x / 1x, каждая (1, T_i, H_i, W_i, C).
  • timestep — текущий шаг, (1,).
  • pooled_projections — пуллинг-эмбеддинг текста CLIP, (1, in_text_dim2).
  • visual_rope_pos — позиции RoPE по каждой оси для зашумленного латента.
  • reference_rope_pos — позиции RoPE по каждой оси для опорной системы координат.
  • memory_rope_pos — позиции RoPE по каждой оси для каждого масштаба памяти FramePack.
  • text_rope_pos — одномерные позиции RoPE для текстовых токенов.
  • audio_rope_pos — латентный кадр, которому принадлежит каждый токен речи.
  • scale_factor — масштаб RoPE по каждой оси, задаваемый разрешающим бакетом.
  • return_dict — возвращает Transformer2DModelOutput вместо кортежа.

Возвращает

[~models.modeling_outputs.Transformer2DModelOutput] или tuple

предсказанная скорость, имеющая форму hidden_states.

Денойзинг одного чанка.

Размер батча должен быть равен 1: последовательность упакована, а речевое кросс-внимание выровнено по кадрам.

Update on GitHub