Buckets:
Kandinsky 6
Kandinsky 6 — это семейство моделей генерации видео от Kandinsky Lab. Основная модель генерирует видео и синхронизированный звук по тексту или опорному изображению с помощью единого мультимодального диффузионного трансформера: латенты видео и звука денойзируются совместно через слитые блоки, которые выполняют кросс-внимание между двумя модальностями, каждая из которых обусловлена собственным текстовым ветвлением Qwen2.5-VL и пул-эмбеддингом CLIP. Отдельная модель супер-разрешения увеличивает разрешение сгенерированного видео по тайлам в латентном пространстве каузального 3D K-VAE.
Ознакомьтесь с организацией Kandinsky Lab на Hub, где доступен полный набор официальных контрольных точек, включая варианты flow-matching и дистиллированные версии как базовой, так и модели супер-разрешения.
Дистиллированные контрольные точки поставляются с пошаговым PiflowScheduler и должны запускаться с параметром
guidance_scale=1.0.
Доступные модели
Текст/изображение в видео и аудио
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]]
diffusers.Kandinsky6TI2VAPipeline[[diffusers.Kandinsky6TI2VAPipeline]]
diffusers.Kandinsky6TI2VAPipeline(transformer: Kandinsky6Transformer3DModel, vae: AutoencoderKLHunyuanVideo, text_encoder: Qwen2_5_VLForConditionalGeneration, tokenizer: Qwen2_5_VLProcessor, text_encoder_2: CLIPTextModel, tokenizer_2: CLIPTokenizer, scheduler: diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler | diffusers.schedulers.scheduling_piflow.PiflowScheduler, audio_vae: diffusers.models.autoencoders.autoencoder_mmaudio.MMAudioVAE | None = None, vocoder: 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[[diffusers.Kandinsky6TI2VAPipeline.call]]
__call__(prompt: str | list[str] | None = None, image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, negative_prompt: str | list[str] | None = None, height: int = 512, width: int = 768, num_frames: int = 121, frame_rate: float = 24.0, num_inference_steps: int = 50, timesteps: list[int] | None = None, sigmas: list[float] | None = None, guidance_scale: float = 5.0, num_videos_per_prompt: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, audio_latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, sample_audio: bool = True, expand_prompts: bool = False, max_sequence_length: int = 1024, output_type: str = 'pil', return_dict: bool = True, callback_on_step_end: collections.abc.Callable[[int, int, dict], None] | None = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'])
Параметры:
prompt (str или list[str], необязательный) : Промпт или промпты для управления генерацией. Обязателен, если не задан prompt_embeds.
image (PipelineImageInput, необязательный) : Изображение(я), задающее(е) условия для первого кадра (изображение в видео и аудио).
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) : Масштаб classifier-free guidance. Должен быть 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[[diffusers.Kandinsky6TI2VAPipeline.encode_image]]
encode_image(image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], height: int, width: int, device: device, dtype: dtype, num_videos_per_prompt: int = 1, generator: 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[[diffusers.Kandinsky6TI2VAPipeline.encode_prompt]]
encode_prompt(prompt: str | list[str], negative_prompt: str | list[str] | None = None, do_classifier_free_guidance: bool = True, num_videos_per_prompt: int = 1, prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_attention_mask: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None, max_sequence_length: int = 1024, device: typing.Optional[torch.device] = None, dtype: 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[[diffusers.Kandinsky6TI2VAPipeline.expand_prompts]]
expand_prompts(prompt: str | list[str], tokenizer, text_encoder, device: device, image: PIL.Image.Image | list[PIL.Image.Image] | None = None, max_sequence_length: int = 1024, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None)
Параметры:
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[[diffusers.Kandinsky6TI2VAPipeline.prepare_audio_latents]]
prepare_audio_latents(batch_size: int, num_channels_latents: int, audio_length: int, dtype: dtype, device: device, generator: 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[[diffusers.Kandinsky6TI2VAPipeline.prepare_latents]]
prepare_latents(batch_size: int, num_channels_latents: int, height: int, width: int, num_frames: int, dtype: dtype, device: device, generator: 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]]
diffusers.Kandinsky6SRPipeline[[diffusers.Kandinsky6SRPipeline]]
diffusers.Kandinsky6SRPipeline(transformer: Kandinsky6SRTransformer3DModel, vae: Kandinsky6SRVAE, scheduler: diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler | diffusers.schedulers.scheduling_piflow.PiflowScheduler, latent_upscaler: diffusers.models.latent_upscaler.latent_upscaler_kandinsky6_sr.Kandinsky6SRLatentUpscalerBank | None = None)
Параметры:
transformer (Kandinsky6SRTransformer3DModel) : трансформер, уточняющий латентные тайлы.
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[[diffusers.Kandinsky6SRPipeline.call]]
__call__(video: typing.Union[list[PIL.Image.Image], list[list[PIL.Image.Image]], numpy.ndarray, torch.Tensor], resolution_scale: float = 2.25, num_inference_steps: int = 4, timesteps: list[int] | None = None, sigmas: list[float] | None = None, lq_noise_scale: float = 0.7, min_overlap: float = 0.2, tiles_batch_size: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, output_type: str = 'pil', return_dict: bool = True)
Параметры:
video (list[PIL.Image.Image], np.ndarray или 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[[diffusers.Kandinsky6SRPipeline.decode_latents]]
decode_latents(latents: Tensor)
Декодирует масштабированные латенты K-VAE в видео с формой (batch_size, channels, num_frames, height, width) в диапазоне [-1, 1].
encode_video[[diffusers.Kandinsky6SRPipeline.encode_video]]
encode_video(video: Tensor)
Кодирует видео (batch_size, channels, num_frames, height, width) в диапазоне [-1, 1] в K-VAE-латенты, масштабированные коэффициентом scaling_factor VAE.
Kandinsky6SRLatentUpscalerBank[[diffusers.Kandinsky6SRLatentUpscalerBank]]
diffusers.Kandinsky6SRLatentUpscalerBank[[diffusers.Kandinsky6SRLatentUpscalerBank]]
diffusers.Kandinsky6SRLatentUpscalerBank(in_channels: int = 64, stage_channels: tuple[int, int, int] = (2048, 1024, 512), num_pre_blocks: int = 5, num_mid_blocks: int = 3, num_post_blocks: int = 3, num_x2_adapter_blocks: int = 2, scales: 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[[diffusers.Kandinsky6SRLatentUpscalerBank.forward]]
forward(latents: Tensor, scale: int, return_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 вместо обычного кортежа.
Возвращает:
Увеличенные латенты формы (batch_size, in_channels, num_frames, height * scale, width * scale).
Kandinsky6TI2VAPipelineOutput[[diffusers.Kandinsky6TI2VAPipelineOutput]]
diffusers.Kandinsky6TI2VAPipelineOutput[[diffusers.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]]
diffusers.Kandinsky6SRPipelineOutput[[diffusers.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.
Xet Storage Details
- Size:
- 47.1 kB
- Xet hash:
- c0f9a234872f87e035cb522bf2e809f82fa505cee543d1ddb5f800f3498e2afa
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.