Buckets:
| # Kandinsky 6 | |
| Kandinsky 6 — это семейство моделей генерации видео от [Kandinsky Lab](https://huggingface.co/kandinskylab). Основная модель генерирует видео и синхронизированный звук по тексту или опорному изображению с помощью единого мультимодального диффузионного трансформера: латенты видео и звука денойзируются совместно через слитые блоки, которые выполняют кросс-внимание между двумя модальностями, каждая из которых обусловлена собственным текстовым ветвлением Qwen2.5-VL и пул-эмбеддингом CLIP. Отдельная модель супер-разрешения увеличивает разрешение сгенерированного видео по тайлам в латентном пространстве каузального 3D K-VAE. | |
| > [!TIP] | |
| > Ознакомьтесь с организацией [Kandinsky Lab](https://huggingface.co/kandinskylab) на Hub, где доступен полный набор официальных контрольных точек, включая варианты flow-matching и дистиллированные версии как базовой, так и модели супер-разрешения. | |
| > | |
| > Дистиллированные контрольные точки поставляются с пошаговым [PiflowScheduler](/docs/diffusers/main/ru/api/schedulers/piflow#diffusers.PiflowScheduler) и должны запускаться с параметром `guidance_scale=1.0`. | |
| ## Доступные модели | |
| | Модель | Pipeline | Примечания | | |
| |---|---|---| | |
| | [`kandinskylab/Kandinsky-6.0-Pro-5s-Diffusers`](https://huggingface.co/kandinskylab/Kandinsky-6.0-Pro-5s-Diffusers) | [Kandinsky6TI2VAPipeline](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6TI2VAPipeline) | Поточное согласование, `guidance_scale=5.0`, 50 шагов | | |
| | [`kandinskylab/Kandinsky-6.0-Pro-distill-5s-Diffusers`](https://huggingface.co/kandinskylab/Kandinsky-6.0-Pro-distill-5s-Diffusers) | [Kandinsky6TI2VAPipeline](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6TI2VAPipeline) | Дистиллированный, `guidance_scale=1.0`, 10 шагов | | |
| | [`kandinskylab/Kandinsky-6.0-Lite-5s-Diffusers`](https://huggingface.co/kandinskylab/Kandinsky-6.0-Lite-5s-Diffusers) | [Kandinsky6TI2VAPipeline](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6TI2VAPipeline) | Поточное согласование, `guidance_scale=5.0`, 50 шагов | | |
| | [`kandinskylab/Kandinsky-6.0-Lite-distill-5s-Diffusers`](https://huggingface.co/kandinskylab/Kandinsky-6.0-Lite-distill-5s-Diffusers) | [Kandinsky6TI2VAPipeline](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6TI2VAPipeline) | Дистиллированный, `guidance_scale=1.0`, 10 шагов | | |
| | [`kandinskylab/Kandinsky-6.0-Pro-pretrain-5s-Diffusers`](https://huggingface.co/kandinskylab/Kandinsky-6.0-Pro-pretrain-5s-Diffusers) | [Kandinsky6TI2VAPipeline](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6TI2VAPipeline) | Поточное согласование, `guidance_scale=5.0`, 50 шагов | | |
| | [`kandinskylab/Kandinsky-6.0-Lite-pretrain-5s-Diffusers`](https://huggingface.co/kandinskylab/Kandinsky-6.0-Lite-pretrain-5s-Diffusers) | [Kandinsky6TI2VAPipeline](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6TI2VAPipeline) | Поточное согласование, `guidance_scale=5.0`, 50 шагов | | |
| | [`kandinskylab/Kandinsky-6.0-VSR-5s-Diffusers`](https://huggingface.co/kandinskylab/Kandinsky-6.0-VSR-5s-Diffusers) | [Kandinsky6SRPipeline](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6SRPipeline) | Сверхразрешение с помощью flow matching | | |
| | [`kandinskylab/Kandinsky-6.0-VSR-distilled2steps-5s-Diffusers`](https://huggingface.co/kandinskylab/Kandinsky-6.0-VSR-distilled2steps-5s-Diffusers) | [Kandinsky6SRPipeline](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6SRPipeline) | Дистиллированное супер-разрешение, 2 шага | | |
| ## Текст/изображение в видео и аудио | |
| ```python | |
| 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](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6SRPipeline) принимает кадры, сгенерированные [Kandinsky6TI2VAPipeline](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6TI2VAPipeline), и увеличивает их разрешение в `2`, `4` или `2.25` раза (предварительное билинейное увеличение в 1.125 раза с последующим применением пути для 2x). Видео разбивается на перекрывающиеся тайлы, каждый тайл уточняется на одном из размеров тайлов, на которых обучался SR-трансформер, а затем тайлы склеиваются обратно с использованием окон Ханна. | |
| ```python | |
| # 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] | |
| ``` | |
| ## Оптимизация памяти | |
| См. руководство [Сокращение использования памяти](../../optimization/memory) для общего набора техник. Оба [Kandinsky6TI2VAPipeline](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6TI2VAPipeline) и [Kandinsky6SRPipeline](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6SRPipeline) поддерживают [выгрузку модели](../../optimization/memory#model-offloading) (использованную выше) и, для меньшего потребления ресурсов ценой скорости, [последовательную выгрузку на CPU](../../optimization/memory#cpu-offloading): | |
| ```python | |
| pipe.enable_sequential_cpu_offload() | |
| ``` | |
| Видео-VAE в [Kandinsky6TI2VAPipeline](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6TI2VAPipeline) также поддерживает [tiled decoding](../../optimization/memory#vae-tiling) для высокого разрешения или длинных видео: | |
| ```python | |
| pipe.vae.enable_tiling() | |
| ``` | |
| ## Примечания | |
| - `height` и `width` должны делиться на произведение пространственного коэффициента сжатия видео-VAE и размера патча трансформера — `16` при конфигурации по умолчанию [Kandinsky6TI2VAPipeline](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6TI2VAPipeline) (`AutoencoderKLHunyuanVideo` с коэффициентом сжатия `8`, `patch_size=(1, 2, 2)`). Значение `480x864`, использованное в примере выше, этому условию удовлетворяет. | |
| - Входной параметр `video` для [Kandinsky6SRPipeline](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6SRPipeline) должен содержать `1 + k * vae_scale_factor_temporal` кадров для некоторого целого числа `k` (при стандартной конфигурации K-VAE коэффициент временного сжатия равен `4`, поэтому `121` кадров подходит, а `120` — нет) — перед увеличением разрешения обрежьте или дополните видео, если оно не соответствует этому условию. | |
| - `expand_prompts=True` повторно использует уже загруженный текстовый энкодер Qwen2.5-VL для дополнительного прохода генерации перед денойзингом, поэтому добавляет задержку, но не требует дополнительных весов модели. | |
| - Скомпилируйте повторяющиеся блоки трансформера для более быстрого повторного вывода: | |
| ```python | |
| pipe.transformer.compile_repeated_blocks(fullgraph=True) | |
| ``` | |
| ## Kandinsky6TI2VAPipeline[[diffusers.Kandinsky6TI2VAPipeline]] | |
| #### diffusers.Kandinsky6TI2VAPipeline[[diffusers.Kandinsky6TI2VAPipeline]] | |
| ```python | |
| 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) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky6/pipeline_kandinsky6_ti2va.py#L178) | |
| **Параметры:** | |
| transformer ([Kandinsky6Transformer3DModel](/docs/diffusers/main/ru/api/models/kandinsky6_transformer#diffusers.Kandinsky6Transformer3DModel)) : мультимодальный трансформер, выполняющий удаление шума из латентных представлений видео и аудио. | |
| vae ([AutoencoderKLHunyuanVideo](/docs/diffusers/main/ru/api/models/autoencoder_kl_hunyuan_video#diffusers.AutoencoderKLHunyuanVideo)) : VAE для видео, используемый для кодирования эталонного изображения и декодирования сгенерированного видео. | |
| text_encoder ([Qwen2_5_VLForConditionalGeneration](https://huggingface.co/docs/transformers/main/en/model_doc/qwen2_5_vl#transformers.Qwen2_5_VLForConditionalGeneration)) : модель Qwen2.5-VL, предоставляющая текстовые эмбеддинги на уровне токенов и, при необходимости, расширение промпта. | |
| tokenizer ([Qwen2_5_VLProcessor](https://huggingface.co/docs/transformers/main/en/model_doc/qwen2_5_vl#transformers.Qwen2_5_VLProcessor)) : процессор для `text_encoder`. | |
| text_encoder_2 ([CLIPTextModel](https://huggingface.co/docs/transformers/main/en/model_doc/clip#transformers.CLIPTextModel)) : текстовый энкодер CLIP, предоставляющий пуллинг-эмбеддинг текста. | |
| tokenizer_2 ([CLIPTokenizer](https://huggingface.co/docs/transformers/main/en/model_doc/clip#transformers.CLIPTokenizer)) : Токенизатор для `text_encoder_2`. | |
| scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler) или [PiflowScheduler](/docs/diffusers/main/ru/api/schedulers/piflow#diffusers.PiflowScheduler)) : планировщик, используемый вместе с `transformer` для удаления шума из латентов. Дистиллированные контрольные точки поставляются с [PiflowScheduler](/docs/diffusers/main/ru/api/schedulers/piflow#diffusers.PiflowScheduler) и должны запускаться с `guidance_scale=1.0`. | |
| audio_vae ([MMAudioVAE](/docs/diffusers/main/ru/api/models/kandinsky6_vae#diffusers.MMAudioVAE), *необязательный*) : аудио-VAE, используемый для декодирования сгенерированных аудио-латентов в мел-спектрограмму. Требуется только при `sample_audio=True`. | |
| vocoder ([MMAudioVocoder](/docs/diffusers/main/ru/api/models/kandinsky6_vae#diffusers.MMAudioVocoder), *необязательный*) : Вокодер, используемый для преобразования мел-спектрограммы, декодируемой `audio_vae`, в звуковой сигнал. Требуется только при `sample_audio=True`. | |
| Пайплайн для генерации видео и аудио из текста/изображений с использованием Kandinsky 6. | |
| Латенты видео и аудио денойзируются совместно одним мультимодальным трансформером, который получает в качестве условий текстовые токены Qwen2.5-VL и пул-эмбеддинг CLIP. Необязательное опорное изображение задаёт условия для первого кадра. | |
| Эта модель наследуется от [DiffusionPipeline](/docs/diffusers/main/ru/api/pipelines/overview#diffusers.DiffusionPipeline). Общую документацию по методам, реализованным для всех пайплайнов (загрузка, сохранение, запуск на конкретном устройстве и т. д.), см. в документации родительского класса. | |
| #### __call__[[diffusers.Kandinsky6TI2VAPipeline.__call__]] | |
| ```python | |
| __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']) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky6/pipeline_kandinsky6_ti2va.py#L644) | |
| **Параметры:** | |
| 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](/docs/diffusers/main/ru/api/schedulers/piflow#diffusers.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()](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6TI2VAPipeline.expand_prompts) перед кодированием. | |
| max_sequence_length (`int`, по умолчанию `1024`) : Максимальное количество токенов промпта после шаблона чата. | |
| output_type (`str`, по умолчанию `"pil"`) : Формат вывода сгенерированного видео: `"pil"`, `"np"`, `"pt"` или `"latent"`. | |
| return_dict (`bool`, по умолчанию `True`) : Возвращать ли [Kandinsky6TI2VAPipelineOutput](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.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](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6TI2VAPipelineOutput) или `tuple` | |
| Сгенерированное видео и аудио; кортеж `(frames, audio)`, если `return_dict=False`. | |
| Функция вызова конвейера для генерации. | |
| Примеры: | |
| ```python | |
| >>> 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]] | |
| ```python | |
| 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) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky6/pipeline_kandinsky6_ti2va.py#L551) | |
| Кодирует опорное изображение(я) в латенты первого кадра формы `(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]] | |
| ```python | |
| 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) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky6/pipeline_kandinsky6_ti2va.py#L309) | |
| **Параметры:** | |
| 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]] | |
| ```python | |
| 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) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky6/pipeline_kandinsky6_ti2va.py#L412) | |
| **Параметры:** | |
| 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]] | |
| ```python | |
| 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) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky6/pipeline_kandinsky6_ti2va.py#L607) | |
| Возвращает аудио-латенты в раскладке `(batch_size, audio_length, channels)` трансформера. Ожидаемый тензор `audio_latents`, переданный пользователем, должен иметь раскладку `(batch_size, channels, audio_length)`. | |
| #### prepare_latents[[diffusers.Kandinsky6TI2VAPipeline.prepare_latents]] | |
| ```python | |
| 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) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky6/pipeline_kandinsky6_ti2va.py#L578) | |
| Возвращает латенты видео в раскладке `(batch_size, num_frames, height, width, channels)` трансформера. Ожидается, что пользовательский тензор `latents` будет передан в раскладке `(batch_size, channels, num_frames, height, width)`. | |
| ## Kandinsky6SRPipeline[[diffusers.Kandinsky6SRPipeline]] | |
| #### diffusers.Kandinsky6SRPipeline[[diffusers.Kandinsky6SRPipeline]] | |
| ```python | |
| 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) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky6/pipeline_kandinsky6_sr.py#L143) | |
| **Параметры:** | |
| transformer ([Kandinsky6SRTransformer3DModel](/docs/diffusers/main/ru/api/models/kandinsky6_transformer#diffusers.Kandinsky6SRTransformer3DModel)) : трансформер, уточняющий латентные тайлы. | |
| vae ([Kandinsky6SRVAE](/docs/diffusers/main/ru/api/models/kandinsky6_vae#diffusers.Kandinsky6SRVAE)) : Причинный видео K-VAE, используемый для кодирования входного видео и декодирования улучшенных тайлов. | |
| scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler) или [PiflowScheduler](/docs/diffusers/main/ru/api/schedulers/piflow#diffusers.PiflowScheduler)) : планировщик, используемый вместе с `transformer` для удаления шума из тайлов. Дистиллированные контрольные точки поставляются с [PiflowScheduler](/docs/diffusers/main/ru/api/schedulers/piflow#diffusers.PiflowScheduler). | |
| latent_upscaler ([Kandinsky6SRLatentUpscalerBank](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6SRLatentUpscalerBank), *необязательный*) : Латентные апскейлеры для поддерживаемых масштабов. | |
| Пайплайн для супер-разрешения видео с Kandinsky 6. | |
| Видео разбивается на перекрывающиеся пространственные тайлы, каждый тайл уточняется SR-трансформером на одном из размеров тайлов, на которых обучалась модель (`transformer.config.tile_sizes`), а уточненные тайлы смешиваются обратно с окнами Ханна. Если в конвейере есть `latent_upscaler`, тайлы вырезаются из K-VAE-латентов всего видео и масштабируются в латентном пространстве; в противном случае пиксельные тайлы масштабируются билинейно и кодируются. | |
| Эта модель наследуется от [DiffusionPipeline](/docs/diffusers/main/ru/api/pipelines/overview#diffusers.DiffusionPipeline). Общую документацию по методам, реализованным для всех пайплайнов (загрузка, сохранение, запуск на конкретном устройстве и т. д.), см. в документации родительского класса. | |
| #### __call__[[diffusers.Kandinsky6SRPipeline.__call__]] | |
| ```python | |
| __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) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky6/pipeline_kandinsky6_sr.py#L228) | |
| **Параметры:** | |
| video (`list[PIL.Image.Image]`, `np.ndarray` или `torch.Tensor`) : Видео с низким разрешением в любом формате, который принимает [preprocess_video()](/docs/diffusers/main/ru/api/video_processor#diffusers.VideoProcessor.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](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6SRPipelineOutput) вместо обычного кортежа. | |
| **Возвращает:** [Kandinsky6SRPipelineOutput](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6SRPipelineOutput) или `tuple` | |
| Видео с повышенной детализацией; кортеж из одного элемента, если `return_dict=False`. | |
| Функция вызова конвейера для супер-разрешения. | |
| Примеры: | |
| ```python | |
| >>> 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]] | |
| ```python | |
| decode_latents(latents: Tensor) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky6/pipeline_kandinsky6_sr.py#L223) | |
| Декодирует масштабированные латенты K-VAE в видео с формой `(batch_size, channels, num_frames, height, width)` в диапазоне `[-1, 1]`. | |
| #### encode_video[[diffusers.Kandinsky6SRPipeline.encode_video]] | |
| ```python | |
| encode_video(video: Tensor) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky6/pipeline_kandinsky6_sr.py#L213) | |
| Кодирует видео `(batch_size, channels, num_frames, height, width)` в диапазоне `[-1, 1]` в K-VAE-латенты, масштабированные коэффициентом `scaling_factor` VAE. | |
| ## Kandinsky6SRLatentUpscalerBank[[diffusers.Kandinsky6SRLatentUpscalerBank]] | |
| #### diffusers.Kandinsky6SRLatentUpscalerBank[[diffusers.Kandinsky6SRLatentUpscalerBank]] | |
| ```python | |
| 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) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/latent_upscaler/latent_upscaler_kandinsky6_sr.py#L251) | |
| **Параметры:** | |
| 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](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6SRPipeline): один `Kandinsky6SRLatentUpscaler` на каждый поддерживаемый пространственный масштаб, работающий с латентами K-VAE. | |
| #### forward[[diffusers.Kandinsky6SRLatentUpscalerBank.forward]] | |
| ```python | |
| forward(latents: Tensor, scale: int, return_dict: bool = True) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/latent_upscaler/latent_upscaler_kandinsky6_sr.py#L305) | |
| **Параметры:** | |
| 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]] | |
| ```python | |
| diffusers.Kandinsky6TI2VAPipelineOutput(frames: typing.Union[torch.Tensor, numpy.ndarray, list[list[PIL.Image.Image]]], audio: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky6/pipeline_output.py#L25) | |
| **Параметры:** | |
| 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](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.Kandinsky6TI2VAPipeline). | |
| ## Kandinsky6SRPipelineOutput[[diffusers.Kandinsky6SRPipelineOutput]] | |
| #### diffusers.Kandinsky6SRPipelineOutput[[diffusers.Kandinsky6SRPipelineOutput]] | |
| ```python | |
| diffusers.Kandinsky6SRPipelineOutput(frames: typing.Union[torch.Tensor, numpy.ndarray, list[list[PIL.Image.Image]]]) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky6/pipeline_output.py#L46) | |
| **Параметры:** | |
| 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](/docs/diffusers/main/ru/api/pipelines/kandinsky6#diffusers.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.