Diffusers documentation

Kandinsky 6

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

Kandinsky 6 — это семейство моделей генерации видео от Kandinsky Lab. Основная модель генерирует видео и синхронизированный звук по тексту или опорному изображению с помощью единого мультимодального диффузионного трансформера: латенты видео и звука денойзируются совместно через сблокированные слои, которые выполняют кросс-внимание между двумя модальностями, каждая из которых обусловлена собственным текстовым ветвлением Qwen2.5-VL и пул-эмбеддингом CLIP. Отдельная модель супер-разрешения увеличивает разрешение сгенерированного видео по тайлам в латентном пространстве каузального 3D K-VAE.

Ознакомьтесь с организацией Kandinsky Lab на Hub, где доступен полный набор официальных контрольных точек, включая варианты flow-matching и дистиллированные версии как базовой, так и модели супер-разрешения.

Дистиллированные контрольные точки поставляются с пошаговым PiflowScheduler и должны запускаться с параметром guidance_scale=1.0.

Доступные модели

МодельPipelineПримечания
kandinskylab/Kandinsky-6.0-Pro-5s-DiffusersKandinsky6TI2VAPipelineПоточное согласование, guidance_scale=5.0, 50 шагов
kandinskylab/Kandinsky-6.0-Pro-distill-5s-DiffusersKandinsky6TI2VAPipelineДистиллированный, guidance_scale=1.0, 10 шагов
kandinskylab/Kandinsky-6.0-Lite-5s-DiffusersKandinsky6TI2VAPipelineПоточное согласование, guidance_scale=5.0, 50 шагов
kandinskylab/Kandinsky-6.0-Lite-distill-5s-DiffusersKandinsky6TI2VAPipelineДистиллированный, guidance_scale=1.0, 10 шагов
kandinskylab/Kandinsky-6.0-Pro-pretrain-5s-DiffusersKandinsky6TI2VAPipelineПоточное согласование, guidance_scale=5.0, 50 шагов
kandinskylab/Kandinsky-6.0-Lite-pretrain-5s-DiffusersKandinsky6TI2VAPipelineПоточное согласование, guidance_scale=5.0, 50 шагов
kandinskylab/Kandinsky-6.0-VSR-5s-DiffusersKandinsky6SRPipelineСверхразрешение с помощью flow matching
kandinskylab/Kandinsky-6.0-VSR-distilled2steps-5s-DiffusersKandinsky6SRPipelineДистиллированное супер-разрешение, 2 шага

Текст/изображение в видео и аудио

import torch
from diffusers import Kandinsky6TI2VAPipeline
from diffusers.utils import encode_video

pipe = Kandinsky6TI2VAPipeline.from_pretrained(
    "kandinskylab/Kandinsky-6.0-Pro-distill-5s-Diffusers", torch_dtype=torch.bfloat16
)
pipe.enable_model_cpu_offload()

output = pipe(
    prompt="A cat and a dog baking a cake together in a kitchen.",
    height=480,
    width=864,
    num_frames=121,
    num_inference_steps=10,
    guidance_scale=1.0,
)
encode_video(
    output.frames[0],
    fps=24,
    output_path="output.mp4",
    audio=output.audio[0][None],
    audio_sample_rate=pipe.audio_sample_rate,
)

Передайте image=, чтобы задать условие для первого кадра на основе опорного изображения, sample_audio=False, чтобы генерировать только видео, и expand_prompts=True, чтобы текстовый энкодер Qwen2.5-VL сначала переписал короткие промпты в детализированные.

Сверхразрешение видео

Kandinsky6SRPipeline принимает кадры, сгенерированные Kandinsky6TI2VAPipeline, и увеличивает их разрешение в 2, 4 или 2.25 раза (предварительное билинейное увеличение в 1.125 раза с последующим применением пути для 2x). Видео разбивается на перекрывающиеся тайлы, каждый тайл уточняется на одном из размеров тайлов, на которых обучался SR-трансформер, а затем тайлы объединяются обратно с использованием окон Ханна.

# required: lets inductor pick flex-attention tiles that fit the SR block mask
torch._inductor.config.max_autotune = True  

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

upscaled = sr_pipe(video=output.frames[0], resolution_scale=2.25, num_inference_steps=2).frames[0]

Оптимизация памяти

См. руководство Сокращение использования памяти для общего набора техник. Оба Kandinsky6TI2VAPipeline и Kandinsky6SRPipeline поддерживают выгрузку модели (использованную выше) и, для меньшего потребления ресурсов ценой скорости, последовательную выгрузку на CPU:

pipe.enable_sequential_cpu_offload()

Видео-VAE в Kandinsky6TI2VAPipeline также поддерживает tiled decoding для высоких разрешений или длинных видео:

pipe.vae.enable_tiling()

Примечания

  • height и width должны делиться на произведение пространственного коэффициента сжатия видео-VAE и размера патча трансформера — 16 при конфигурации по умолчанию Kandinsky6TI2VAPipeline (AutoencoderKLHunyuanVideo с коэффициентом сжатия 8, patch_size=(1, 2, 2)). Значение 480x864, использованное в примере выше, этому условию удовлетворяет.
  • Входной параметр video для Kandinsky6SRPipeline должен содержать 1 + k * vae_scale_factor_temporal кадров для некоторого целого числа k (при стандартной конфигурации K-VAE коэффициент временного сжатия равен 4, поэтому 121 кадров подходит, а 120 — нет) — перед увеличением разрешения обрежьте или дополните видео, если оно уже не соответствует этому условию.
  • expand_prompts=True повторно использует уже загруженный текстовый энкодер Qwen2.5-VL для дополнительного прохода генерации перед денойзингом, поэтому добавляет задержку, но не требует дополнительных весов модели.
  • Скомпилируйте повторяющиеся блоки трансформера для более быстрого повторного вывода:
    pipe.transformer.compile_repeated_blocks(fullgraph=True)

Kandinsky6TI2VAPipeline

класс diffusers.Kandinsky6TI2VAPipeline

< >

( transformer: Kandinsky6Transformer3DModelvae: AutoencoderKLHunyuanVideotext_encoder: Qwen2_5_VLForConditionalGenerationtokenizer: Qwen2_5_VLProcessortext_encoder_2: CLIPTextModeltokenizer_2: CLIPTokenizerscheduler: diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler | diffusers.schedulers.scheduling_piflow.PiflowScheduleraudio_vae: diffusers.models.autoencoders.autoencoder_mmaudio.MMAudioVAE | None = Nonevocoder: diffusers.models.autoencoders.mmaudio_vocoder.MMAudioVocoder | None = None )

Параметры

  • transformer (Kandinsky6Transformer3DModel) — Мультимодальный трансформер, который выполняет денуазинг латентов видео и аудио.
  • vae (AutoencoderKLHunyuanVideo) — видео-VAE, используемый для кодирования эталонного изображения и декодирования сгенерированного видео.
  • text_encoder (Qwen2_5_VLForConditionalGeneration) — модель Qwen2.5-VL, обеспечивающая токеновые текстовые эмбеддинги и, при необходимости, расширение промпта.
  • tokenizer (Qwen2_5_VLProcessor) — процессор для text_encoder.
  • text_encoder_2 (CLIPTextModel) — текстовый энкодер CLIP, предоставляющий пул-эмбеддинг текста.
  • tokenizer_2 (CLIPTokenizer) — токенизатор для text_encoder_2.
  • scheduler (FlowMatchEulerDiscreteScheduler или PiflowScheduler) — планировщик, используемый вместе с transformer для удаления шума из латентов. Дистиллированные контрольные точки поставляются с PiflowScheduler и должны запускаться с guidance_scale=1.0.
  • audio_vae (MMAudioVAE, необязательный) — Аудио-VAE, используемый для декодирования сгенерированных аудио-латентов в мел-спектрограмму. Требуется только при sample_audio=True.
  • vocoder (MMAudioVocoder, необязательный) — Вокодер, используемый для преобразования мел-спектрограммы, декодируемой audio_vae, в звуковой сигнал. Требуется только при sample_audio=True.

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

Латенты видео и аудио денойзируются совместно одним мультимодальным трансформером, который получает в качестве условий текстовые токены Qwen2.5-VL и пул-эмбеддинг CLIP. Необязательное опорное изображение задаёт условия для первого кадра.

Эта модель наследуется от DiffusionPipeline. Общую документацию по методам, реализованным для всех пайплайнов (загрузка, сохранение, запуск на конкретном устройстве и т. д.), см. в документации родительского класса.

__call__

< >

( prompt: str | list[str] | None = Noneimage: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Nonenegative_prompt: str | list[str] | None = Noneheight: int = 512width: int = 768num_frames: int = 121frame_rate: float = 24.0num_inference_steps: int = 50timesteps: list[int] | None = Nonesigmas: list[float] | None = Noneguidance_scale: float = 5.0num_videos_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneaudio_latents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonesample_audio: bool = Trueexpand_prompts: bool = Falsemax_sequence_length: int = 1024output_type: str = 'pil'return_dict: bool = Truecallback_on_step_end: collections.abc.Callable[[int, int, dict], None] | None = Nonecallback_on_step_end_tensor_inputs: list = ['latents'] ) → Kandinsky6TI2VAPipelineOutput or tuple

Параметры

  • prompt (str или list[str], необязательный) — Промпт или промпты для управления генерацией. Обязателен, если не задан prompt_embeds.
  • image (PipelineImageInput, необязательный) — Справочное изображение (или изображения), задающее условие для первого кадра (image-to-video-and-audio).
  • negative_prompt (str или list[str], необязательный) — Промпт или промпты, которые не должны направлять генерацию. По умолчанию используется отрицательный промпт Kandinsky 6.
  • height (int, по умолчанию 512) — Высота генерируемого видео в пикселях.
  • width (int, по умолчанию 768) — Ширина сгенерированного видео в пикселях.
  • num_frames (int, по умолчанию 121) — Количество генерируемых кадров.
  • frame_rate (float, по умолчанию 24.0) — Частота кадров, с которой генерируется видео; определяет длительность синхронизированного аудио.
  • num_inference_steps (int, по умолчанию 50) — Количество шагов денойзинга. Используйте 16 для дистиллированных контрольных точек.
  • timesteps (list[int], необязательный) — Пользовательские шаги для планировщиков, которые их поддерживают.
  • sigmas (list[float], необязательный) — Пользовательские сигмы для планировщиков, которые их поддерживают.
  • guidance_scale (float, по умолчанию 5.0) — Масштаб классификаторно-свободного управления. Должен быть 1.0 при использовании PiflowScheduler.
  • num_videos_per_prompt (int, по умолчанию 1) — Количество видео, генерируемых для каждого промпта.
  • generator (torch.Generator или list[torch.Generator], необязательный) — Генератор(ы), используемые для начального шума и кодирования опорного изображения.
  • latents (torch.Tensor, необязательный) — Предварительно сгенерированные латенты видео формы (batch_size, channels, num_latent_frames, latent_height, latent_width).
  • audio_latents (torch.Tensor, необязательный) — Предварительно сгенерированные аудио-латенты формы (batch_size, channels, audio_length).
  • prompt_embeds (torch.Tensor, необязательный) — Предварительно сгенерированные текстовые эмбеддинги Qwen2.5-VL.
  • pooled_prompt_embeds (torch.Tensor, необязательный) — Предварительно сгенерированные пул-эмбеддинги текста CLIP.
  • negative_prompt_embeds (torch.Tensor, необязательный) — Предварительно сгенерированные отрицательные текстовые эмбеддинги Qwen2.5-VL.
  • negative_pooled_prompt_embeds (torch.Tensor, необязательный) — Предварительно сгенерированные отрицательные CLIP-векторы пул-эмбеддингов текста.
  • sample_audio (bool, по умолчанию True) — Создавать ли синхронизированный звук. Требует, чтобы в конвейере были audio_vae и vocoder.
  • expand_prompts (bool, по умолчанию False) — Переопределять ли промпты с помощью expand_prompts() перед кодированием.
  • max_sequence_length (int, по умолчанию 1024) — Максимальное количество токенов запроса после применения шаблона чата.
  • output_type (str, по умолчанию "pil") — Формат вывода сгенерированного видео: "pil", "np", "pt" или "latent".
  • return_dict (bool, по умолчанию True) — Определяет, возвращать ли Kandinsky6TI2VAPipelineOutput вместо обычного кортежа.
  • callback_on_step_end (Callable, необязательный) — Функция, вызываемая в конце каждого шага денойзинга с параметрами callback_on_step_end(self, step, timestep, callback_kwargs). Может возвращать словарь, переопределяющий перечисленные тензоры.
  • callback_on_step_end_tensor_inputs (list[str], по умолчанию ["latents"]) — тензорные входные данные, передаваемые в callback_on_step_end; подмножество _callback_tensor_inputs.

Возвращает

Kandinsky6TI2VAPipelineOutput или tuple

Сгенерированное видео и аудио; кортеж (frames, audio), если return_dict=False.

Функция вызова конвейера для генерации.

Примеры:

>>> import torch
>>> from diffusers import Kandinsky6TI2VAPipeline
>>> from diffusers.utils import encode_video

>>> pipe = Kandinsky6TI2VAPipeline.from_pretrained(
...     "kandinskylab/Kandinsky-6.0-Pro-distill-5s-Diffusers", torch_dtype=torch.bfloat16
... )
>>> pipe.enable_model_cpu_offload()

>>> output = pipe(
...     prompt="A cat and a dog baking a cake together in a kitchen.",
...     height=480,
...     width=864,
...     num_frames=121,
...     num_inference_steps=16,
...     guidance_scale=1.0,
... )
>>> encode_video(
...     output.frames[0],
...     fps=24,
...     output_path="output.mp4",
...     audio=output.audio[0][None],
...     audio_sample_rate=pipe.audio_sample_rate,
... )

encode_image

< >

( image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]height: intwidth: intdevice: devicedtype: dtypenum_videos_per_prompt: int = 1generator: typing.Optional[torch.Generator] = None )

Кодирует опорное изображение(я) в латенты первого кадра формы (batch_size, latent_height, latent_width, latent_channels), масштабированные с помощью scaling_factor VAE. Изображения PIL изменяются в размере и центрируются с обрезкой до height x width; тензоры и массивы должны уже иметь этот размер. Латенты повторяются num_videos_per_prompt раз вдоль измерения батча.

encode_prompt

< >

( prompt: str | list[str]negative_prompt: str | list[str] | None = Nonedo_classifier_free_guidance: bool = Truenum_videos_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_attention_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.Tensor] = Nonemax_sequence_length: int = 1024device: typing.Optional[torch.device] = Nonedtype: typing.Optional[torch.dtype] = None )

Параметры

  • prompt (str или list[str]) — Промпт для кодирования.
  • negative_prompt (str или list[str], необязательный) — Промпт, который не следует использовать для управления генерацией. Игнорируется, если do_classifier_free_guidance равно False.
  • do_classifier_free_guidance (bool, по умолчанию True) — Следует ли также кодировать отрицательный промпт.
  • num_videos_per_prompt (int, по умолчанию 1) — Количество видео, генерируемых для каждого промпта; соответствующие эмбеддинги дублируются.
  • prompt_embeds (torch.Tensor, необязательный) — Предварительно сгенерированные текстовые эмбеддинги Qwen2.5-VL. Позволяет пропустить кодирование prompt.
  • pooled_prompt_embeds (torch.Tensor, необязательный) — Предварительно сгенерированные пул-эмбеддинги текста CLIP. Должен передаваться вместе с prompt_embeds.
  • prompt_attention_mask (torch.Tensor, необязательный) — Маска булевых заполнителей для prompt_embeds.
  • negative_prompt_embeds (torch.Tensor, необязательный) — Предварительно сгенерированные отрицательные текстовые эмбеддинги Qwen2.5-VL.
  • negative_pooled_prompt_embeds (torch.Tensor, необязательный) — Предварительно сгенерированные отрицательные CLIP-векторы пул-эмбеддингов текста.
  • negative_prompt_attention_mask (torch.Tensor, необязательный) — Маска булевых заполнителей для negative_prompt_embeds.
  • max_sequence_length (int, по умолчанию 1024) — Максимальное количество токенов запроса после применения шаблона чата.
  • device (torch.device, необязательный) — Устройство, на котором будут выполняться текстовые энкодеры.
  • dtype (torch.dtype, необязательный) — Тип данных возвращаемых эмбеддингов.

Кодирует промпт в скрытые состояния текстового энкодера.

expand_prompts

< >

( prompt: str | list[str]tokenizertext_encoderdevice: deviceimage: PIL.Image.Image | list[PIL.Image.Image] | None = Nonemax_sequence_length: int = 1024generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None ) → str or list[str]

Параметры

  • prompt (str или list[str]) — Промпт или список промптов для расширения.
  • tokenizer — Процессор Qwen2.5-VL, например pipe.tokenizer.
  • text_encoder — Модель Qwen2.5-VL, например pipe.text_encoder.
  • device (torch.device) — Устройство, на котором выполняется текстовый энкодер.
  • image (PIL.Image.Image или list[PIL.Image.Image], необязательный) — Ссылочное изображение(я) для вызова image-to-video.
  • max_sequence_length (int, по умолчанию 1024) — Максимальное количество токенов, генерируемых на один запрос.
  • generator (torch.Generator или list[torch.Generator], необязательный) — Инициализирует выборку расширения; список должен совпадать по длине с prompt, по одному генератору на элемент. generate извлекает значения из глобального RNG, поэтому глобальный RNG инициализируется из seed этого генератора; последующие вызовы randn_tensor продолжают использовать generator напрямую.

Возвращает

str или list[str]

Расширенный(ие) промпт(ы).

Переписывает короткие промпты в детальные видео+аудио промпты с помощью текстового энкодера Qwen2.5-VL, привязывая их к эталонному изображению, если оно указано. Является staticmethod, поэтому может использоваться автономно, до запуска конвейера.

prepare_audio_latents

< >

( batch_size: intnum_channels_latents: intaudio_length: intdtype: dtypedevice: devicegenerator: typing.Union[torch.Generator, list[torch.Generator], NoneType]audio_latents: typing.Optional[torch.Tensor] = None )

Возвращает аудио-латенты в раскладке (batch_size, audio_length, channels) трансформера. Ожидаемый тензор audio_latents, переданный пользователем, должен иметь раскладку (batch_size, channels, audio_length).

prepare_latents

< >

( batch_size: intnum_channels_latents: intheight: intwidth: intnum_frames: intdtype: dtypedevice: devicegenerator: typing.Union[torch.Generator, list[torch.Generator], NoneType]latents: typing.Optional[torch.Tensor] = None )

Возвращает латенты видео в раскладке (batch_size, num_frames, height, width, channels) трансформера. Ожидаемый тензор latents, переданный пользователем, должен иметь раскладку (batch_size, channels, num_frames, height, width).

Kandinsky6SRPipeline

класс diffusers.Kandinsky6SRPipeline

< >

( transformer: Kandinsky6SRTransformer3DModelvae: Kandinsky6SRVAEscheduler: diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler | diffusers.schedulers.scheduling_piflow.PiflowSchedulerlatent_upscaler: diffusers.models.latent_upscaler.latent_upscaler_kandinsky6_sr.Kandinsky6SRLatentUpscalerBank | None = None )

Параметры

  • transformer (Kandinsky6SRTransformer3DModel) — Transformer, который уточняет латентные тайлы.
  • vae (Kandinsky6SRVAE) — Причинный видео K-VAE, используемый для кодирования входного видео и декодирования улучшенных тайлов.
  • scheduler (FlowMatchEulerDiscreteScheduler или PiflowScheduler) — планировщик, используемый вместе с transformer для удаления шума из тайлов. Дистиллированные контрольные точки поставляются с PiflowScheduler.
  • latent_upscaler (Kandinsky6SRLatentUpscalerBank, необязательный) — Масштабаторы латентных представлений для поддерживаемых масштабов.

Пайплайн для супер-разрешения видео с Kandinsky 6.

Видео разбивается на перекрывающиеся пространственные тайлы, каждый тайл уточняется SR-трансформером на одном из размеров тайлов, на которых обучалась модель (transformer.config.tile_sizes), а уточненные тайлы смешиваются обратно с использованием окон Ханна. Если в пайплайне есть latent_upscaler, тайлы вырезаются из K-VAE латентов всего видео и масштабируются в латентном пространстве; в противном случае пиксельные тайлы масштабируются билинейно и кодируются.

Эта модель наследуется от DiffusionPipeline. Общую документацию по методам, реализованным для всех пайплайнов (загрузка, сохранение, запуск на конкретном устройстве и т. д.), см. в документации родительского класса.

__call__

< >

( video: typing.Union[list[PIL.Image.Image], list[list[PIL.Image.Image]], numpy.ndarray, torch.Tensor]resolution_scale: float = 2.25num_inference_steps: int = 4timesteps: list[int] | None = Nonesigmas: list[float] | None = Nonelq_noise_scale: float = 0.7min_overlap: float = 0.2tiles_batch_size: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Noneoutput_type: str = 'pil'return_dict: bool = True ) → Kandinsky6SRPipelineOutput or tuple

Параметры

  • video (list[PIL.Image.Image], np.ndarray or torch.Tensor) — Видео низкого разрешения в любом формате, который принимает preprocess_video(), с количеством кадров 1 + k * 4. Размеры округляются вниз до кратного пространственному коэффициенту VAE.
  • resolution_scale (float, по умолчанию 2.25) — Общее пространственное увеличение: 2, 4 или 2.25 (предварительное билинейное увеличение в 1.125 раза, за которым следует путь с увеличением в 2 раза).
  • num_inference_steps (int, по умолчанию 4) — Количество шагов денойзинга на тайл. Используйте 2 с дистиллированными чекпоинтами.
  • timesteps (list[int], необязательный) — Пользовательские шаги для планировщиков, которые их поддерживают.
  • sigmas (list[float], необязательный) — Пользовательские сигмы для планировщиков, которые их поддерживают.
  • lq_noise_scale (float, по умолчанию 0.7) — Количество гауссова шума, добавляемого в латенты низкого разрешения (с сохранением дисперсии) перед процессом денойзинга.
  • min_overlap (float, по умолчанию 0.2) — Минимальное перекрытие между соседними тайлами в долях от размера тайла.
  • tiles_batch_size (int, по умолчанию 1) — Количество тайлов, для которых выполняется денойзинг за один вызов трансформера.
  • generator (torch.Generator или list[torch.Generator], необязательный) — Генератор(ы), используемые для шума, смешиваемого в тайлах.
  • output_type (str, по умолчанию "pil") — Формат вывода сгенерированного видео: "pil", "np" или "pt".
  • return_dict (bool, по умолчанию True) — Определяет, возвращать ли Kandinsky6SRPipelineOutput вместо обычного кортежа.

Возвращает

Kandinsky6SRPipelineOutput или tuple

Видео с повышенной детализацией; кортеж из одного элемента, если return_dict=False.

Функция вызова конвейера для супер-разрешения.

Примеры:

>>> import torch
>>> from diffusers import Kandinsky6SRPipeline, Kandinsky6TI2VAPipeline
>>> from diffusers.utils import export_to_video

>>> pipe = Kandinsky6TI2VAPipeline.from_pretrained(
...     "kandinskylab/Kandinsky-6.0-Pro-distill-5s-Diffusers", torch_dtype=torch.bfloat16
... )
>>> pipe.enable_model_cpu_offload()
>>> video = pipe(
...     prompt="A cat and a dog baking a cake together in a kitchen.",
...     height=480,
...     width=864,
...     num_inference_steps=16,
...     guidance_scale=1.0,
...     sample_audio=False,
... ).frames[0]

>>> sr_pipe = Kandinsky6SRPipeline.from_pretrained(
...     "kandinskylab/Kandinsky-6.0-VSR-distilled2steps-5s-Diffusers", torch_dtype=torch.bfloat16
... )
>>> # The transformer always runs attention through the `flex` backend; compiling avoids the eager
>>> # fallback's much higher memory use at video resolutions.
>>> sr_pipe.transformer.compile_repeated_blocks(fullgraph=True)
>>> sr_pipe.enable_model_cpu_offload()
>>> output = sr_pipe(video=video, resolution_scale=2.25, num_inference_steps=2)
>>> export_to_video(output.frames[0], "output_sr.mp4", fps=24)

decode_latents

< >

( latents: Tensor )

Декодирует масштабированные латенты K-VAE в видео с формой (batch_size, channels, num_frames, height, width) в диапазоне [-1, 1].

encode_video

< >

( video: Tensor )

Кодирует видео (batch_size, channels, num_frames, height, width) в диапазоне [-1, 1] в латенты K-VAE, масштабированные scaling_factor VAE.

Kandinsky6SRLatentUpscalerBank

class diffusers.Kandinsky6SRLatentUpscalerBank

< >

( in_channels: int = 64stage_channels: tuple[int, int, int] = (2048, 1024, 512)num_pre_blocks: int = 5num_mid_blocks: int = 3num_post_blocks: int = 3num_x2_adapter_blocks: int = 2scales: tuple[int, ...] = (2, 4)scaling_factor: float = 0.910344004631042 )

Параметры

  • in_channels (int, по умолчанию 64) — Количество латентных каналов.
  • stage_channels (tuple[int, int, int], по умолчанию (2048, 1024, 512)) — Ширины признаков трёх стадий каскада.
  • num_pre_blocks (int, по умолчанию 5) — Остаточные блоки перед первым увеличением разрешения в модели x4.
  • num_mid_blocks (int, по умолчанию 3) — Остаточные блоки между двумя операциями апсемплинга.
  • num_post_blocks (int, по умолчанию 3) — Остаточные блоки после последней операции апсемплинга.
  • num_x2_adapter_blocks (int, по умолчанию 2) — Остаточные блоки адаптера модели x2.
  • scales (tuple[int, ...], по умолчанию (2, 4)) — Пространственные масштабы, для которых банк предоставляет апскейлер.
  • scaling_factor (float, по умолчанию 0.910344) — Масштаб, который, как ожидается, имеют входные латенты (параметр scaling_factor K-VAE).

Банк латентных апскейлеров, используемый Kandinsky6SRPipeline: один Kandinsky6SRLatentUpscaler на каждый поддерживаемый пространственный масштаб, работающий с латентами K-VAE.

forward

< >

( latents: Tensorscale: intreturn_dict: bool = True )

Параметры

  • latents (torch.Tensor формы (batch_size, in_channels, num_frames, height, width)) — латенты K-VAE, масштабированные с помощью scaling_factor.
  • scale (int) — Коэффициент пространственного масштабирования; одно из значений scales.
  • return_dict (bool, по умолчанию True) — Определяет, следует ли возвращать ~models.autoencoder_kl.DecoderOutput вместо обычного кортежа.

Kandinsky6TI2VAPipelineOutput

класс diffusers.Kandinsky6TI2VAPipelineOutput

< >

( frames: typing.Union[torch.Tensor, numpy.ndarray, list[list[PIL.Image.Image]]]audio: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = None )

Параметры

  • frames (torch.Tensor, np.ndarray или list[list[PIL.Image.Image]]) — Сгенерированное видео. Вложенный список длины batch_size, содержащий по num_frames изображений PIL в каждом элементе, либо массив NumPy или тензор torch с формой (batch_size, num_frames, height, width, channels) / (batch_size, num_frames, channels, height, width). При output_type="latent" — латенты видео с формой (batch_size, channels, num_latent_frames, latent_height, latent_width).
  • audio (torch.Tensor или np.ndarray, необязательный) — Сгенерированные звуковые волны формы (batch_size, num_samples) в диапазоне [-1, 1] с частотой дискретизации аудио-VAE, или None, если аудио не было дискретизировано. При output_type="latent" — аудио-латенты формы (batch_size, channels, audio_length).

Класс результата для Kandinsky6TI2VAPipeline.

Kandinsky6SRPipelineOutput

класс diffusers.Kandinsky6SRPipelineOutput

< >

( frames: typing.Union[torch.Tensor, numpy.ndarray, list[list[PIL.Image.Image]]] )

Параметры

  • frames (torch.Tensor, np.ndarray или list[list[PIL.Image.Image]]) — Видео с повышенным разрешением. Вложенный список длины batch_size, содержащий по num_frames изображений PIL в каждом элементе, либо массив NumPy или тензор torch с формой (batch_size, num_frames, height, width, channels) / (batch_size, num_frames, channels, height, width).

Класс результата для Kandinsky6SRPipeline.

Update on GitHub