Diffusers documentation

Kandinsky 6 Transformers

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

Kandinsky 6 Transformers

Kandinsky 6 использует мультимодальный диффузионный трансформер, который одновременно снимает шум с латентных представлений видео и аудио для генерации видео и аудио по тексту или изображению, а также диффузионный трансформер без текстового ввода для супер-разрешения видео.

Kandinsky6Transformer3DModel

Мультимодальный трансформер, используемый в Kandinsky6TI2VAPipeline.

import torch
from diffusers import Kandinsky6Transformer3DModel

transformer = Kandinsky6Transformer3DModel.from_pretrained(
    "kandinskylab/Kandinsky-6.0-Pro-distill-5s-Diffusers", subfolder="transformer", torch_dtype=torch.bfloat16
)

класс diffusers.Kandinsky6Transformer3DModel

< >

( in_visual_dim: int = 16out_visual_dim: int = 16in_text_dim: int = 3584in_text_dim2: int = 768time_dim: int = 1024patch_size: tuple = (1, 2, 2)model_dim: int = 4096ff_dim: int = 16384num_text_blocks: int = 4num_visual_blocks: int = 60axes_dims: tuple = (32, 48, 48)visual_cond: bool = Truein_audio_dim: int = 20out_audio_dim: int = 20model_dim_a: int | None = Nonetime_dim_a: int | None = Noneff_dim_a: int | None = Noneaxes_dims_a: tuple | None = Noneaudio_freqs_scaling: float = 1.0scale_factor: tuple | list[float] = (1.0, 2.0, 2.0)text_token_padding: bool = Falseca_rope: bool = Falsecross_gates: bool = Falsefix_modulation: bool = Falsevisual_token_type_num_embeddings: int = 0 )

Параметры

  • in_visual_dim (int, optional, по умолчанию 16) — Количество входных каналов латентного видео.
  • out_visual_dim (int, optional, по умолчанию 16) — Количество выходных латентных каналов видео.
  • in_text_dim (int, optional, по умолчанию 3584) — Размерность эмбеддингов текстовых токенов.
  • in_text_dim2 (int, необязательный, по умолчанию 768) — размерность пуллинг-эмбеддинга текста.
  • time_dim (int, optional, по умолчанию 1024) — Размерность временного эмбеддинга.
  • patch_size (tuple[int, int, int], optional, по умолчанию (1, 2, 2)) — Размер патча видео.
  • model_dim (int, optional, по умолчанию 4096) — скрытое измерение видео-трансформера.
  • ff_dim (int, optional, по умолчанию 16384) — Скрытое размерность полносвязного слоя для видео.
  • num_text_blocks (int, необязательный, по умолчанию 4) — Количество текстовых блоков на модальность.
  • num_visual_blocks (int, optional, по умолчанию 60) — Количество объединённых блоков видео/аудио.
  • axes_dims (tuple[int, int, int], optional, по умолчанию (32, 48, 48)) — размеры RoPE для видео.
  • visual_cond (bool, optional, по умолчанию True) — Указывает, присутствуют ли каналы видеоусловий.
  • in_audio_dim (int, optional, по умолчанию 20) — Количество входных каналов аудиовыходных латентов.
  • out_audio_dim (int, optional, по умолчанию 20) — Количество выходных каналов аудиовыхода.
  • model_dim_a (int, optional) — Скрытое измерение аудио-трансформера. По умолчанию model_dim.
  • time_dim_a (int, optional) — Размерность временного эмбеддинга аудио. По умолчанию time_dim.
  • ff_dim_a (int, optional) — Скрытое размерность аудио-feed-forward слоя. По умолчанию ff_dim.
  • axes_dims_a (tuple[int, int, int], необязательный) — Размеры Audio RoPE. По умолчанию axes_dims.
  • audio_freqs_scaling (float, optional, по умолчанию 1.0) — масштабирование частот Audio RoPE.
  • scale_factor (tuple[float, float, float], optional, по умолчанию (1.0, 2.0, 2.0)) — масштабирование частот RoPE по осям (t, h, w), применяемое к позициям видео.
  • text_token_padding (bool, optional, по умолчанию False) — метаданные контрольной точки, фиксирующие, выполнялось ли выравнивание (padding) текстовых последовательностей в эталонной модели. forward всегда принимает необязательный encoder_attention_mask независимо от этого флага; передаётся ли он на самом деле, полностью зависит от вызывающего кода.
  • ca_rope (bool, optional, по умолчанию False) — Использовать ли кросс-модальный аудио RoPE.
  • cross_gates (bool, optional, по умолчанию False) — Использовать ли межмодальные остаточные гейты.
  • fix_modulation (bool, optional, по умолчанию False) — Использовать ли вариант с фиксированной модуляцией.
  • visual_token_type_num_embeddings (int, optional, по умолчанию 0) — Количество эмбеддингов типов визуальных токенов.

Kandinsky 6 мультимодальный трансформер для генерации видео и аудио по тексту/изображению.

Видео и аудио денойзируются совместно через объединённые кросс-модальные трансформерные блоки, каждый из которых обусловлен собственной текстовой ветвью (токены Qwen2.5-VL + пул-эмбеддинг CLIP). Если не передавать audio_hidden_states, выполняется денойзинг только видео, при этом в объединённом блоке по-прежнему работают этапы само-внимания, кросс-внимания и полносвязного слоя для видео. Вращательные эмбеддинги вычисляются внутри forward на основе сетки токенов.

Опубликованные контрольные точки задают значения text_token_padding, ca_rope, cross_gates и fix_modulation равными True (см. transformer/config.json каждой контрольной точки); значения по умолчанию False описывают лишь вариант архитектуры, для которого в этом репозитории не публикуются веса.

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensorpooled_projections: Tensortimestep: Tensoraudio_hidden_states: Tensor | None = Nonevisual_rope_pos: tuple[Tensor, Tensor, Tensor] | None = Noneencoder_attention_mask: Tensor | None = Nonevisual_token_type_ids: Tensor | None = Nonereturn_dict: bool = True ) → Kandinsky6TransformerOutput or tuple

Параметры

  • hidden_states (torch.Tensor формы (batch_size, num_frames, height, width, in_channels)) — Латентные представления видео в раскладке (B, T, H, W, C). При visual_cond=True значение in_channels равно 2 * in_visual_dim + 1: шумовое латентное представление, латентное представление для условия и маска условия.
  • encoder_hidden_states (torch.Tensor формы (batch_size, sequence_length, in_text_dim)) — Векторы токенов текста, общие для текстовых ветвей видео и аудио.
  • pooled_projections (torch.Tensor формы (batch_size, in_text_dim2)) — Средневзвешенное текстовое представление, добавляемое к представлению временного шага в обоих ветвях.
  • timestep (torch.Tensor формы (batch_size,)) — Шаг диффузии в масштабе [0, num_train_timesteps], общий для обеих модальностей.
  • audio_hidden_states (torch.Tensor формы (batch_size, audio_length, in_audio_dim), необязательный) — Латенты аудио. Если параметр не указан, объединённые блоки выполняют только видео-путь.
  • visual_rope_pos (tuple[torch.Tensor, torch.Tensor, torch.Tensor], необязательный) — Индексы ротационных позиций по осям (t, h, w) для токенов видео, разбитых на патчи. По умолчанию используется arange для каждой оси. Конвейер передаёт явный временной индекс, когда добавляет опорный кадр, повторно использующий позицию 0.
  • encoder_attention_mask (torch.Tensor формы (batch_size, sequence_length), необязательный) — Маска буферизации для encoder_hidden_states. Передавайте None, если промпт не дополнен.
  • visual_token_type_ids (torch.Tensor формы (batch_size, num_frames), необязательный) — Идентификаторы типов токенов для каждого кадра, встроенные через visual_token_type_embeddings. Требует, чтобы visual_token_type_num_embeddings > 0.
  • return_dict (bool, по умолчанию True) — Определяет, возвращать ли Kandinsky6TransformerOutput вместо обычного кортежа.

Возвращает

Kandinsky6TransformerOutput или tuple

Скорость предсказанного видео в раскладке (B, T, H, W, out_visual_dim) и, если было передано audio_hidden_states, скорость предсказанного аудио с формой (B, audio_length, out_audio_dim).

Kandinsky6SRTransformer3DModel

Текст-свободный трансформер, используемый Kandinsky6SRPipeline для последовательной доработки каждого тайла увеличенного видео.

import torch
from diffusers import Kandinsky6SRTransformer3DModel

transformer = Kandinsky6SRTransformer3DModel.from_pretrained(
    "kandinskylab/Kandinsky-6.0-VSR-distilled2steps-5s-Diffusers", subfolder="transformer", torch_dtype=torch.bfloat16
)
# The transformer always runs NABLA sparse attention (`nabla_threshold`, 0.8 by default) on the `flex` backend.
# Compile it, otherwise flex falls back to an eager implementation that needs far more memory at video resolutions.
transformer.compile_repeated_blocks(fullgraph=True)

класс diffusers.Kandinsky6SRTransformer3DModel

< >

( in_visual_dim: int = 64out_visual_dim: int = 640time_dim: int = 512patch_size: tuple[int, int, int] = (1, 1, 1)model_dim: int = 1792ff_dim: int = 7168num_visual_blocks: int = 32axes_dims: tuple[int, int, int] = (16, 24, 24)scale_factor: tuple[float, float, float] = (1.0, 2.0, 2.0)nabla_threshold: float = 0.8nabla_window: tuple[int, int, int] = (11, 7, 7)tile_sizes: tuple[tuple[int, int], ...] = ((512, 512), (512, 768), (768, 512)) )

Параметры

  • in_visual_dim (int, по умолчанию 64) — Количество латентных каналов K-VAE.
  • out_visual_dim (int, по умолчанию 640) — Количество выходных каналов.
  • time_dim (int, по умолчанию 512) — Размерность эмбеддинга временного шага.
  • patch_size (tuple[int, int, int], по умолчанию (1, 1, 1)) — Размер патча в формате (temporal, height, width).
  • model_dim (int, по умолчанию 1792) — Скрытое измерение трансформера.
  • ff_dim (int, по умолчанию 7168) — Внутреннее измерение полносвязных сетей.
  • num_visual_blocks (int, по умолчанию 32) — Количество блоков трансформера.
  • axes_dims (tuple[int, int, int], по умолчанию (16, 24, 24)) — размерности RoPE для каждой оси (t, h, w); их сумма равна размерности головы внимания.
  • scale_factor (tuple[float, float, float], по умолчанию (1.0, 2.0, 2.0)) — Масштабирование частоты RoPE по каждой оси, применяемое к позициям токенов.
  • nabla_threshold (float, по умолчанию 0.8) — Порог кумулятивного внимания для выбора блоков NABLA.
  • nabla_window (tuple[int, int, int], по умолчанию (11, 7, 7)) — Нечёткие размеры (t, h, w) скользящего тайлового априорного распределения, на которое всегда обращает внимание каждый блок токенов 8x8.
  • tile_sizes (tuple[tuple[int, int], ...], по умолчанию ((512, 512), (512, 768), (768, 512))) — Размеры (height, width) в пикселях видеотайлов, на которых обучалась модель. Kandinsky6SRPipeline уточняет каждый тайл с тем размером, чье соотношение сторон наиболее близко к соотношению входного видео.

Диффузионный трансформер без текста для супер-разрешения видео Kandinsky 6.

Модель выполняет денойзинг тайлов латентного видео K-VAE. На вход модели подаётся конкатенация зашумлённого латента с якорным латентом и якорной маской, которые задают условия для супер-разрешения (2 * in_visual_dim + 1 каналов), а на выходе формируется out_visual_dim каналов: in_visual_dim для обычного velocity-чекпоинта или расширенные n_grid * in_visual_dim для дистиллированных чекпоинтов PiflowScheduler. Само-внимание видео выполняется через разреженный блочный паттерн NABLA на бэкенде внимания flex, который требует, чтобы сетка токенов (height и width после patch_size) делилась на 8.

forward

< >

( hidden_states: Tensortimestep: Tensorreturn_dict: bool = True ) → Transformer2DModelOutput or tuple

Параметры

  • hidden_states (torch.Tensor формы (batch_size, num_frames, height, width, 2 * in_visual_dim + 1)) — Латентные тайлы в раскладке (B, T, H, W, C): зашумлённый латентный, якорный латентный и маска якоря, конкатенированные по оси каналов.
  • timestep (torch.Tensor формы (batch_size,)) — Шаг диффузии в масштабе [0, num_train_timesteps].
  • return_dict (bool, по умолчанию True) — Определяет, следует ли возвращать Transformer2DModelOutput вместо обычного кортежа.

Возвращает

Transformer2DModelOutput или tuple

Предсказание формы (batch_size, num_frames, height, width, out_visual_dim).

Update on GitHub