Diffusers documentation
KandinskyS2VTransformer3DModel
KandinskyS2VTransformer3DModel
Diffusion Transformer (DiT) модели Kandinsky S2V 1.0, использующий в качестве условий опорный кадр и аудиодорожку речи.
KandinskyS2VTransformer3DModel
класс diffusers.KandinskyS2VTransformer3DModel
< source >( 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— опорная система координат, закреплённая за временным индексом RoPEindex_rope_ref_image;visual— зашумлённое латентное представление, которое подвергается денуизингу.
memory и ref чистые, поэтому они модулируются с t = 0, тогда как visual использует реальный шаг; модуляция содержит обе строки, а индекс выбирает значение для каждого токена.
forward
< source >( 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: последовательность упакована, а речевое кросс-внимание выровнено по кадрам.