Buckets:

hf-doc-build/doc / diffusers /main /ru /api /pipelines /kandinsky5_image.md
mishig's picture
|
download
raw
36.8 kB
# Kandinsky 5.0 Image
[Kandinsky 5.0](https://arxiv.org/abs/2511.14993) — это семейство диффузионных моделей для генерации видео и изображений.
Kandinsky 5.0 Image Lite — это легкая модель генерации изображений (6 млрд параметров).
Модель вносит несколько ключевых инноваций:
- **Конвейер латентного диффузионного моделирования** с **Flow Matching** для повышения стабильности обучения
- **Diffusion Transformer (DiT)** в качестве основного генеративного каркаса с кросс-вниманием к текстовым эмбеддингам
- Двойное кодирование текста с использованием **Qwen2.5-VL** и **CLIP** для комплексного понимания текста
- **Flux VAE** для эффективного кодирования и декодирования изображений
Исходный код можно найти в репозитории [kandinskylab/Kandinsky-5](https://github.com/kandinskylab/Kandinsky-5).
> [!TIP]
> Ознакомьтесь с организацией [Kandinsky Lab](https://huggingface.co/kandinskylab) на Hub, где размещены официальные контрольные точки моделей для генерации видео по тексту, включая предобученные, SFT, no-CFG и дистиллированные варианты.
## Доступные модели
Kandinsky 5.0 Image Lite:
| model_id | Описание | Сценарии использования |
|------------|-------------|-----------|
| [**kandinskylab/Kandinsky-5.0-T2I-Lite-sft-Diffusers**](https://huggingface.co/kandinskylab/Kandinsky-5.0-T2I-Lite-sft-Diffusers) | 6B-изображение модель, обученная с помощью контролируемого дообучения | Наивысшее качество генерации |
| [**kandinskylab/Kandinsky-5.0-I2I-Lite-sft-Diffusers**](https://huggingface.co/kandinskylab/Kandinsky-5.0-I2I-Lite-sft-Diffusers) | Модель 6B для редактирования изображений, обученная с помощью Supervised Fine-Tuning | Наивысшее качество генерации |
| [**kandinskylab/Kandinsky-5.0-T2I-Lite-pretrain-Diffusers**](https://huggingface.co/kandinskylab/Kandinsky-5.0-T2I-Lite-pretrain-Diffusers) | 6B image Базовая предобученная модель | Исследования и дообучение |
| [**kandinskylab/Kandinsky-5.0-I2I-Lite-pretrain-Diffusers**](https://huggingface.co/kandinskylab/Kandinsky-5.0-I2I-Lite-pretrain-Diffusers) | 6B базовая предобученная модель для редактирования изображений | Исследования и дообучение |
## Примеры использования
### Базовая генерация изображений по тексту
```python
import torch
from diffusers import Kandinsky5T2IPipeline
# Load the pipeline
model_id = "kandinskylab/Kandinsky-5.0-T2I-Lite-sft-Diffusers"
pipe = Kandinsky5T2IPipeline.from_pretrained(model_id)
_ = pipe.to(device='cuda',dtype=torch.bfloat16) # or "mps", "xpu", "cpu"
# Generate image
prompt = "A fluffy, expressive cat wearing a bright red hat with a soft, slightly textured fabric. The hat should look cozy and well-fitted on the cat’s head. On the front of the hat, add clean, bold white text that reads “SWEET”, clearly visible and neatly centered. Ensure the overall lighting highlights the hat’s color and the cat’s fur details."
output = pipe(
prompt=prompt,
negative_prompt="",
height=1024,
width=1024,
num_inference_steps=50,
guidance_scale=3.5,
).image[0]
```
### Базовая генерация изображений из изображений
```python
import torch
from diffusers import Kandinsky5I2IPipeline
from diffusers.utils import load_image
# Load the pipeline
model_id = "kandinskylab/Kandinsky-5.0-I2I-Lite-sft-Diffusers"
pipe = Kandinsky5I2IPipeline.from_pretrained(model_id)
_ = pipe.to(device='cuda',dtype=torch.bfloat16) # or "mps", "xpu", "cpu"
pipe.enable_model_cpu_offload() # <--- Enable CPU offloading for single GPU inference
# Edit the input image
image = load_image(
"https://huggingface.co/kandinsky-community/kandinsky-3/resolve/main/assets/title.jpg?download=true"
)
prompt = "Change the background from a winter night scene to a bright summer day. Place the character on a sandy beach with clear blue sky, soft sunlight, and gentle waves in the distance. Replace the winter clothing with a light short-sleeved T-shirt (in soft pastel colors) and casual shorts. Ensure the character’s fur reflects warm daylight instead of cold winter tones. Add small beach details such as seashells, footprints in the sand, and a few scattered beach toys nearby. Keep the oranges in the scene, but place them naturally on the sand."
negative_prompt = ""
output = pipe(
image=image,
prompt=prompt,
negative_prompt=negative_prompt,
guidance_scale=3.5,
).image[0]
```
## Kandinsky5T2IPipeline[[diffusers.Kandinsky5T2IPipeline]]
#### diffusers.Kandinsky5T2IPipeline[[diffusers.Kandinsky5T2IPipeline]]
```python
diffusers.Kandinsky5T2IPipeline(transformer: Kandinsky5Transformer3DModel, vae: AutoencoderKL, text_encoder: Qwen2_5_VLForConditionalGeneration, tokenizer: Qwen2VLProcessor, text_encoder_2: CLIPTextModel, tokenizer_2: CLIPTokenizer, scheduler: FlowMatchEulerDiscreteScheduler)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky_t2i.py#L120)
**Параметры:**
transformer (`Kandinsky5Transformer3DModel`) : Условный Transformer для удаления шума из закодированных латентов изображения.
vae ([AutoencoderKL](/docs/diffusers/main/ru/api/models/autoencoderkl#diffusers.AutoencoderKL)) : вариационная автокодирующая модель [black-forest-labs/FLUX.1-dev (vae)](https://huggingface.co/black-forest-labs/FLUX.1-dev) для кодирования и декодирования видео в латентные представления и обратно.
text_encoder (`Qwen2_5_VLForConditionalGeneration`) : Замороженный текстовый энкодер [Qwen2.5-VL](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct).
tokenizer (`AutoProcessor`) : Токенизатор для Qwen2.5-VL.
text_encoder_2 (`CLIPTextModel`) : замороженный [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModel), а именно вариант [clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14).
tokenizer_2 (`CLIPTokenizer`) : Токенизатор для CLIP.
scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : планировщик, используемый в связке с `transformer` для удаления шума из закодированных латентов изображения.
Пайплайн для генерации изображений по тексту с использованием Kandinsky 5.0.
Эта модель наследуется от [DiffusionPipeline](/docs/diffusers/main/ru/api/pipelines/overview#diffusers.DiffusionPipeline). Общую документацию по методам, реализованным для всех пайплайнов (загрузка, сохранение, запуск на конкретном устройстве и т. д.), см. в документации родительского класса.
#### __call__[[diffusers.Kandinsky5T2IPipeline.__call__]]
```python
__call__(prompt: str | list[str] = None, negative_prompt: str | list[str] | None = None, height: int = 1024, width: int = 1024, num_inference_steps: int = 50, guidance_scale: float = 3.5, num_images_per_prompt: int | None = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds_qwen: typing.Optional[torch.Tensor] = None, prompt_embeds_clip: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_qwen: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_clip: typing.Optional[torch.Tensor] = None, prompt_cu_seqlens: typing.Optional[torch.Tensor] = None, negative_prompt_cu_seqlens: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, callback_on_step_end: typing.Optional[typing.Callable[[int, int, NoneType], diffusers.callbacks.PipelineCallback | diffusers.callbacks.MultiPipelineCallbacks]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], max_sequence_length: int = 512)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky_t2i.py#L534)
**Параметры:**
prompt (`str` или `list[str]`, *необязательный*) : Промпт или промпты для управления генерацией изображения. Если не задан, передайте вместо него `prompt_embeds`.
negative_prompt (`str` или `list[str]`, *необязательный*) : Промпт или промпты, которые следует избегать при генерации изображения. Если не задан, передайте вместо него `negative_prompt_embeds`. Игнорируется, если не используется направляющая (`guidance_scale` < `1`).
height (`int`, по умолчанию `1024`) : Высота генерируемого изображения в пикселях.
width (`int`, по умолчанию `1024`) : Ширина генерируемого изображения в пикселях.
num_inference_steps (`int`, по умолчанию `50`) : Количество шагов денойзинга.
guidance_scale (`float`, по умолчанию `5.0`) : Масштаб руководства, определённый в classifier-free guidance.
num_images_per_prompt (`int`, *необязательный*, по умолчанию 1) : Количество изображений, генерируемых на один запрос.
generator (`torch.Generator` или `list[torch.Generator]`, *необязательный*) : генератор torch для детерминированной генерации.
latents (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные зашумленные латенты.
prompt_embeds_qwen (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги Qwen.
prompt_embeds_clip (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги CLIP.
negative_prompt_embeds_qwen (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные отрицательные текстовые эмбеддинги Qwen.
negative_prompt_embeds_clip (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные отрицательные текстовые эмбеддинги CLIP.
prompt_cu_seqlens (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные накопленные длины последовательностей для положительного промпта Qwen.
negative_prompt_cu_seqlens (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные накопленные длины последовательностей для отрицательного промпта Qwen.
output_type (`str`, *необязательный*, по умолчанию `"pil"`) : Формат вывода сгенерированного изображения.
return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `KandinskyImagePipelineOutput`.
callback_on_step_end (`Callable`, `PipelineCallback`, `MultiPipelineCallbacks`, *optional*) : функция, вызываемая в конце каждого шага удаления шума.
callback_on_step_end_tensor_inputs (`List`, *необязательный*) : Список тензорных входных данных для функции `callback_on_step_end`.
max_sequence_length (`int`, по умолчанию `512`) : Максимальная длина последовательности для кодирования текста.
**Возвращает:** `~KandinskyImagePipelineOutput` или `tuple`
Если `return_dict` равно `True`, возвращается `KandinskyImagePipelineOutput`, иначе возвращается `tuple`, первым элементом которого является список с сгенерированными изображениями.
Функция вызова pipeline для генерации изображений по тексту.
Примеры:
```python
>>> import torch
>>> from diffusers import Kandinsky5T2IPipeline
>>> # Available models:
>>> # kandinskylab/Kandinsky-5.0-T2I-Lite-sft-Diffusers
>>> # kandinskylab/Kandinsky-5.0-T2I-Lite-pretrain-Diffusers
>>> model_id = "kandinskylab/Kandinsky-5.0-T2I-Lite-sft-Diffusers"
>>> pipe = Kandinsky5T2IPipeline.from_pretrained(model_id, torch_dtype=torch.bfloat16)
>>> pipe = pipe.to("cuda")
>>> prompt = "A cat and a dog baking a cake together in a kitchen."
>>> output = pipe(
... prompt=prompt,
... negative_prompt="",
... height=1024,
... width=1024,
... num_inference_steps=50,
... guidance_scale=3.5,
... ).frames[0]
```
#### check_inputs[[diffusers.Kandinsky5T2IPipeline.check_inputs]]
```python
check_inputs(prompt, negative_prompt, height, width, prompt_embeds_qwen = None, prompt_embeds_clip = None, negative_prompt_embeds_qwen = None, negative_prompt_embeds_clip = None, prompt_cu_seqlens = None, negative_prompt_cu_seqlens = None, callback_on_step_end_tensor_inputs = None, max_sequence_length = None)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky_t2i.py#L380)
**Параметры:**
prompt : Вводный промпт
negative_prompt : Отрицательный промпт для управления
height : Высота изображения
width : Ширина изображения
prompt_embeds_qwen : Предварительно вычисленные эмбеддинги промптов Qwen
prompt_embeds_clip : Предварительно вычисленные эмбеддинги промптов CLIP
negative_prompt_embeds_qwen : Предварительно вычисленные эмбеддинги отрицательного промпта Qwen
negative_prompt_embeds_clip : Предварительно вычисленные эмбеддинги отрицательных промптов CLIP
prompt_cu_seqlens : Предварительно вычисленные накопленные длины последовательностей для положительного промпта Qwen
negative_prompt_cu_seqlens : Предварительно вычисленные накопленные длины последовательностей для отрицательного промпта Qwen
callback_on_step_end_tensor_inputs : Входы тензоров обратного вызова
**Исключения:** ``ValueError``
- ``ValueError`` -- если входные данные недействительны
Проверка входных параметров конвейера.
#### encode_prompt[[diffusers.Kandinsky5T2IPipeline.encode_prompt]]
```python
encode_prompt(prompt: str | list[str], num_images_per_prompt: int = 1, max_sequence_length: int = 512, device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky_t2i.py#L289)
**Параметры:**
prompt (`str` или `list[str]`) : Промпт для кодирования.
num_images_per_prompt (`int`, *необязательный*, по умолчанию 1) : Количество изображений, генерируемых на один запрос.
max_sequence_length (`int`, *optional*, по умолчанию 512) : Максимальная длина последовательности для кодирования текста. Должна быть меньше 1024
device (`torch.device`, *необязательный*) : Устройство Torch.
dtype (`torch.dtype`, *необязательный*) : Torch dtype.
**Возвращает:** tuple[torch.Tensor, torch.Tensor, torch.Tensor]
- Qwen текстовые эмбеддинги формы (batch_size * num_images_per_prompt, sequence_length, embedding_dim)
- Собранные эмбеддинги CLIP формы (batch_size * num_images_per_prompt, clip_embedding_dim)
- Кумулятивные длины последовательностей (`cu_seqlens`) для эмбеддингов Qwen формы (batch_size * num_images_per_prompt + 1,)
Кодирует один промпт (положительный или отрицательный) в скрытые состояния текстового энкодера.
Этот метод объединяет эмбеддинги из текстовых энкодеров Qwen2.5-VL и CLIP, чтобы создать комплексные текстовые представления для генерации изображений.
#### prepare_latents[[diffusers.Kandinsky5T2IPipeline.prepare_latents]]
```python
prepare_latents(batch_size: int, num_channels_latents: int = 16, height: int = 1024, width: int = 1024, dtype: typing.Optional[torch.dtype] = None, device: typing.Optional[torch.device] = None, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky_t2i.py#L469)
**Параметры:**
batch_size (int) : количество изображений для генерации
num_channels_latents (int) : количество каналов в латентном пространстве
height (int) : Высота сгенерированного изображения
width (int) : Ширина сгенерированного изображения
dtype (torch.dtype) : Тип данных для латентов
device (torch.device) : Устройство, на котором создаются латенты
generator (torch.Generator) : генератор случайных чисел
latents (torch.Tensor) : Существующие латенты для использования
**Возвращает:** `torch.Tensor`
Подготовленный тензор латентов
Подготовьте начальные латентные переменные для генерации изображений по тексту.
Этот метод создаёт случайные шумовые латенты
## Kandinsky5I2IPipeline[[diffusers.Kandinsky5I2IPipeline]]
#### diffusers.Kandinsky5I2IPipeline[[diffusers.Kandinsky5I2IPipeline]]
```python
diffusers.Kandinsky5I2IPipeline(transformer: Kandinsky5Transformer3DModel, vae: AutoencoderKL, text_encoder: Qwen2_5_VLForConditionalGeneration, tokenizer: Qwen2VLProcessor, text_encoder_2: CLIPTextModel, tokenizer_2: CLIPTokenizer, scheduler: FlowMatchEulerDiscreteScheduler)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky_i2i.py#L120)
**Параметры:**
transformer (`Kandinsky5Transformer3DModel`) : Условный Transformer для удаления шума из закодированных латентов изображения.
vae ([AutoencoderKL](/docs/diffusers/main/ru/api/models/autoencoderkl#diffusers.AutoencoderKL)) : вариационная автокодирующая модель [black-forest-labs/FLUX.1-dev (vae)](https://huggingface.co/black-forest-labs/FLUX.1-dev) для кодирования и декодирования видео в латентные представления и обратно.
text_encoder (`Qwen2_5_VLForConditionalGeneration`) : Замороженный текстовый энкодер [Qwen2.5-VL](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct).
tokenizer (`AutoProcessor`) : Токенизатор для Qwen2.5-VL.
text_encoder_2 (`CLIPTextModel`) : замороженный [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModel), а именно вариант [clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14).
tokenizer_2 (`CLIPTokenizer`) : Токенизатор для CLIP.
scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : планировщик, используемый в связке с `transformer` для удаления шума из закодированных латентов изображения.
Пайплайн для генерации изображений по изображению с использованием Kandinsky 5.0.
Эта модель наследуется от [DiffusionPipeline](/docs/diffusers/main/ru/api/pipelines/overview#diffusers.DiffusionPipeline). Общую документацию по методам, реализованным для всех пайплайнов (загрузка, сохранение, запуск на конкретном устройстве и т. д.), см. в документации родительского класса.
#### __call__[[diffusers.Kandinsky5I2IPipeline.__call__]]
```python
__call__(image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], prompt: str | list[str] = None, negative_prompt: str | list[str] | None = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, guidance_scale: float = 3.5, num_images_per_prompt: int | None = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds_qwen: typing.Optional[torch.Tensor] = None, prompt_embeds_clip: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_qwen: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_clip: typing.Optional[torch.Tensor] = None, prompt_cu_seqlens: typing.Optional[torch.Tensor] = None, negative_prompt_cu_seqlens: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, callback_on_step_end: typing.Optional[typing.Callable[[int, int, NoneType], diffusers.callbacks.PipelineCallback | diffusers.callbacks.MultiPipelineCallbacks]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], max_sequence_length: int = 1024)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky_i2i.py#L567)
**Параметры:**
image (`PipelineImageInput`) : Входное изображение для обусловливания генерации. Должно быть изображением, списком изображений или `torch.Tensor`.
prompt (`str` или `list[str]`, *необязательный*) : Промпт или промпты для управления генерацией изображения. Если не задан, передайте вместо него `prompt_embeds`.
negative_prompt (`str` или `list[str]`, *необязательный*) : Промпт или промпты, которые следует избегать при генерации изображения. Если не задан, передайте вместо него `negative_prompt_embeds`. Игнорируется, если не используется направляющая (`guidance_scale` < `1`).
height (`int`) : Высота генерируемого изображения в пикселях.
width (`int`) : Ширина сгенерированного изображения в пикселях.
num_inference_steps (`int`, по умолчанию `50`) : Количество шагов денойзинга.
guidance_scale (`float`, по умолчанию `5.0`) : Масштаб руководства, определённый в classifier-free guidance.
num_images_per_prompt (`int`, *необязательный*, по умолчанию 1) : Количество изображений, генерируемых на один запрос.
generator (`torch.Generator` или `list[torch.Generator]`, *необязательный*) : генератор torch для детерминированной генерации.
latents (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные зашумленные латенты.
prompt_embeds_qwen (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги Qwen.
prompt_embeds_clip (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги CLIP.
negative_prompt_embeds_qwen (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные отрицательные текстовые эмбеддинги Qwen.
negative_prompt_embeds_clip (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные отрицательные текстовые эмбеддинги CLIP.
prompt_cu_seqlens (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные накопленные длины последовательностей для положительного промпта Qwen.
negative_prompt_cu_seqlens (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные накопленные длины последовательностей для отрицательного промпта Qwen.
output_type (`str`, *необязательный*, по умолчанию `"pil"`) : Формат вывода сгенерированного изображения.
return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `KandinskyImagePipelineOutput`.
callback_on_step_end (`Callable`, `PipelineCallback`, `MultiPipelineCallbacks`, *optional*) : функция, вызываемая в конце каждого шага удаления шума.
callback_on_step_end_tensor_inputs (`List`, *необязательный*) : Список тензорных входных данных для функции `callback_on_step_end`.
max_sequence_length (`int`, по умолчанию `1024`) : Максимальная длина последовательности для кодирования текста и изображений qwen. Должна быть меньше 1024
**Возвращает:** `~KandinskyImagePipelineOutput` или `tuple`
Если `return_dict` равно `True`, возвращается `KandinskyImagePipelineOutput`, иначе возвращается `tuple`, первым элементом которого является список с сгенерированными изображениями.
Функция вызова pipeline для генерации изображений по изображению.
Примеры:
```python
>>> import torch
>>> from diffusers import Kandinsky5I2IPipeline
>>> # Available models:
>>> # kandinskylab/Kandinsky-5.0-I2I-Lite-sft-Diffusers
>>> # kandinskylab/Kandinsky-5.0-I2I-Lite-pretrain-Diffusers
>>> model_id = "kandinskylab/Kandinsky-5.0-I2I-Lite-sft-Diffusers"
>>> pipe = Kandinsky5I2IPipeline.from_pretrained(model_id, torch_dtype=torch.bfloat16)
>>> pipe = pipe.to("cuda")
>>> prompt = "A cat and a dog baking a cake together in a kitchen."
>>> output = pipe(
... prompt=prompt,
... negative_prompt="",
... height=1024,
... width=1024,
... num_inference_steps=50,
... guidance_scale=3.5,
... ).frames[0]
```
#### check_inputs[[diffusers.Kandinsky5I2IPipeline.check_inputs]]
```python
check_inputs(prompt, negative_prompt, image, height, width, prompt_embeds_qwen = None, prompt_embeds_clip = None, negative_prompt_embeds_qwen = None, negative_prompt_embeds_clip = None, prompt_cu_seqlens = None, negative_prompt_cu_seqlens = None, callback_on_step_end_tensor_inputs = None, max_sequence_length = None)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky_i2i.py#L388)
**Параметры:**
prompt : Вводный промпт
negative_prompt : Отрицательный промпт для управления
image : Входное изображение для обусловливания
height : Высота изображения
width : Ширина изображения
prompt_embeds_qwen : Предварительно вычисленные эмбеддинги промптов Qwen
prompt_embeds_clip : Предварительно вычисленные эмбеддинги промптов CLIP
negative_prompt_embeds_qwen : Предварительно вычисленные эмбеддинги отрицательного промпта Qwen
negative_prompt_embeds_clip : Предварительно вычисленные эмбеддинги отрицательных промптов CLIP
prompt_cu_seqlens : Предварительно вычисленные накопленные длины последовательностей для положительного промпта Qwen
negative_prompt_cu_seqlens : Предварительно вычисленные накопленные длины последовательностей для отрицательного промпта Qwen
callback_on_step_end_tensor_inputs : Входы тензоров обратного вызова
**Исключения:** ``ValueError``
- ``ValueError`` -- если входные данные недействительны
Проверка входных параметров конвейера.
#### encode_prompt[[diffusers.Kandinsky5I2IPipeline.encode_prompt]]
```python
encode_prompt(prompt: str | list[str], image: Tensor, num_images_per_prompt: int = 1, 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/kandinsky5/pipeline_kandinsky_i2i.py#L295)
**Параметры:**
prompt (`str` или `list[str]`) : Промпт для кодирования.
num_images_per_prompt (`int`, *необязательный*, по умолчанию 1) : Количество изображений, генерируемых на один запрос.
max_sequence_length (`int`, *optional*, по умолчанию 1024) : Максимальная длина последовательности для кодирования текста. Должна быть меньше 1024
device (`torch.device`, *необязательный*) : Устройство Torch.
dtype (`torch.dtype`, *необязательный*) : Torch dtype.
**Возвращает:** tuple[torch.Tensor, torch.Tensor, torch.Tensor]
- Qwen текстовые эмбеддинги формы (batch_size * num_images_per_prompt, sequence_length, embedding_dim)
- Собранные эмбеддинги CLIP формы (batch_size * num_images_per_prompt, clip_embedding_dim)
- Кумулятивные длины последовательностей (`cu_seqlens`) для эмбеддингов Qwen формы (batch_size * num_images_per_prompt + 1,)
Кодирует один промпт (положительный или отрицательный) в скрытые состояния текстового энкодера.
Этот метод объединяет эмбеддинги из текстовых энкодеров Qwen2.5-VL и CLIP, чтобы создать комплексные текстовые представления для генерации изображений.
#### prepare_latents[[diffusers.Kandinsky5I2IPipeline.prepare_latents]]
```python
prepare_latents(image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], batch_size: int, num_channels_latents: int = 16, height: int = 1024, width: int = 1024, dtype: typing.Optional[torch.dtype] = None, device: typing.Optional[torch.device] = None, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky_i2i.py#L482)
**Параметры:**
image (PipelineImageInput) : входное изображение для обусловливания генерации
batch_size (int) : количество изображений для генерации
num_channels_latents (int) : количество каналов в латентном пространстве
height (int) : Высота сгенерированного изображения
width (int) : Ширина сгенерированного изображения
dtype (torch.dtype) : Тип данных для латентов
device (torch.device) : Устройство, на котором создаются латенты
generator (torch.Generator) : генератор случайных чисел
latents (torch.Tensor) : Существующие латенты для использования
**Возвращает:** `torch.Tensor`
Подготовленный тензор латентов с закодированным изображением
Подготовьте начальные латентные переменные для генерации изображений по изображению.
Этот метод создаёт случайные шумовые латенты с закодированным изображением,
## Цитирование
```bibtex
@misc{kandinsky2025,
author = {Alexander Belykh and Alexander Varlamov and Alexey Letunovskiy and Anastasia Aliaskina and Anastasia Maltseva and Anastasiia Kargapoltseva and Andrey Shutkin and Anna Averchenkova and Anna Dmitrienko and Bulat Akhmatov and Denis Dimitrov and Denis Koposov and Denis Parkhomenko and Dmitrii and Ilya Vasiliev and Ivan Kirillov and Julia Agafonova and Kirill Chernyshev and Kormilitsyn Semen and Lev Novitskiy and Maria Kovaleva and Mikhail Mamaev and Mikhailov and Nikita Kiselev and Nikita Osterov and Nikolai Gerasimenko and Nikolai Vaulin and Olga Kim and Olga Vdovchenko and Polina Gavrilova and Polina Mikhailova and Tatiana Nikulina and Viacheslav Vasilev and Vladimir Arkhipkin and Vladimir Korviakov and Vladimir Polovnikov and Yury Kolabushin},
title = {Kandinsky 5.0: A family of diffusion models for Video & Image generation},
howpublished = {\url{https://github.com/kandinskylab/Kandinsky-5}},
year = 2025
}
```

Xet Storage Details

Size:
36.8 kB
·
Xet hash:
5d852fa95aa24a0046ed903053123baf198e9a14452896ac6d9d27a72f501211

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.