Diffusers documentation
Kandinsky 6
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-Diffusers | Kandinsky6TI2VAPipeline | Поточное согласование, guidance_scale=5.0, 50 шагов |
kandinskylab/Kandinsky-6.0-Pro-distill-5s-Diffusers | Kandinsky6TI2VAPipeline | Дистиллированный, guidance_scale=1.0, 10 шагов |
kandinskylab/Kandinsky-6.0-Lite-5s-Diffusers | Kandinsky6TI2VAPipeline | Поточное согласование, guidance_scale=5.0, 50 шагов |
kandinskylab/Kandinsky-6.0-Lite-distill-5s-Diffusers | Kandinsky6TI2VAPipeline | Дистиллированный, guidance_scale=1.0, 10 шагов |
kandinskylab/Kandinsky-6.0-Pro-pretrain-5s-Diffusers | Kandinsky6TI2VAPipeline | Поточное согласование, guidance_scale=5.0, 50 шагов |
kandinskylab/Kandinsky-6.0-Lite-pretrain-5s-Diffusers | Kandinsky6TI2VAPipeline | Поточное согласование, guidance_scale=5.0, 50 шагов |
kandinskylab/Kandinsky-6.0-VSR-5s-Diffusers | Kandinsky6SRPipeline | Сверхразрешение с помощью flow matching |
kandinskylab/Kandinsky-6.0-VSR-distilled2steps-5s-Diffusers | Kandinsky6SRPipeline | Дистиллированное супер-разрешение, 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
< source >( 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__
< source >( 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
< source >( 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
< source >( 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
< source >( 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
< source >( 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
< source >( 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
< source >( 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__
< source >( 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.ndarrayortorch.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)Декодирует масштабированные латенты K-VAE в видео с формой (batch_size, channels, num_frames, height, width) в диапазоне [-1, 1].
Кодирует видео (batch_size, channels, num_frames, height, width) в диапазоне [-1, 1] в латенты K-VAE, масштабированные scaling_factor VAE.
Kandinsky6SRLatentUpscalerBank
class diffusers.Kandinsky6SRLatentUpscalerBank
< source >( 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_factorK-VAE).
Банк латентных апскейлеров, используемый Kandinsky6SRPipeline: один Kandinsky6SRLatentUpscaler на каждый поддерживаемый пространственный масштаб, работающий с латентами K-VAE.
forward
< source >( 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
< source >( 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
< source >( 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.