Buckets:
| # Kandinsky 3 | |
| Kandinsky 3 создан [Владимиром Архипкиным](https://github.com/oriBetelgeuse),[Анастасией Мальцевой](https://github.com/NastyaMittseva),[Игорем Павловым](https://github.com/boomb0om),[Андреем Филатовым](https://github.com/anvilarth),[Арсением Шахматовым](https://github.com/cene555),[Андреем Кузнецовым](https://github.com/kuznetsoffandrey),[Денисом Димитровым](https://github.com/denndimitrov), [Зейном Шахином](https://github.com/zeinsh) | |
| Описание с его страницы на GitHub: | |
| *Kandinsky 3.0 — это открытая диффузионная модель для генерации изображений по текстовому описанию, построенная на основе семейства моделей Kandinsky2-x. По сравнению с предыдущими версиями в модели улучшены понимание текста и визуальное качество, что достигнуто за счёт увеличения размера текстового энкодера и модели Diffusion U-Net соответственно.* | |
| Его архитектура включает 3 основных компонента: | |
| 1. [FLAN-UL2](https://huggingface.co/google/flan-ul2) — это модель с архитектурой «кодировщик-декодировщик», основанная на архитектуре T5. | |
| 2. Новая архитектура U-Net с блоками BigGAN-deep удваивает глубину, сохраняя то же количество параметров. | |
| 3. Sber-MoVQGAN — это декодер, продемонстрировавший превосходные результаты в области восстановления изображений. | |
| Исходный код можно найти в репозитории [ai-forever/Kandinsky-3](https://github.com/ai-forever/Kandinsky-3). | |
| > [!TIP] | |
| > Ознакомьтесь с организацией [Kandinsky Community](https://huggingface.co/kandinsky-community) на Hub, где размещены официальные контрольные точки моделей для таких задач, как генерация изображений по тексту, преобразование изображения в изображение и инпейнтинг. | |
| > [!TIP] | |
| > Обязательно ознакомьтесь с [руководством по планировщикам](../../using-diffusers/schedulers), чтобы узнать, как исследовать баланс между скоростью и качеством планировщика, а также с разделом [повторное использование компонентов в разных конвейерах](../../using-diffusers/loading#reusing-models-in-multiple-pipelines), чтобы узнать, как эффективно загружать одни и те же компоненты в несколько конвейеров. | |
| ## Kandinsky3Pipeline[[diffusers.Kandinsky3Pipeline]] | |
| #### diffusers.Kandinsky3Pipeline[[diffusers.Kandinsky3Pipeline]] | |
| ```python | |
| diffusers.Kandinsky3Pipeline(tokenizer: T5Tokenizer, text_encoder: T5EncoderModel, unet: Kandinsky3UNet, scheduler: DDPMScheduler, movq: VQModel) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky3/pipeline_kandinsky3.py#L59) | |
| #### __call__[[diffusers.Kandinsky3Pipeline.__call__]] | |
| ```python | |
| __call__(prompt: str | list[str] = None, num_inference_steps: int = 25, guidance_scale: float = 3.0, negative_prompt: str | list[str] | None = None, num_images_per_prompt: int | None = 1, height: int | None = 1024, width: int | None = 1024, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, negative_attention_mask: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, latents = None, callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], **kwargs) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky3/pipeline_kandinsky3.py#L334) | |
| **Параметры:** | |
| prompt (`str` или `list[str]`, *необязательный*) : Промпт или промпты для управления генерацией изображения. Если не задан, необходимо передать `prompt_embeds` вместо него. | |
| num_inference_steps (`int`, *optional*, по умолчанию 25) : Количество шагов денойзинга. Как правило, большее количество шагов денойзинга приводит к изображению более высокого качества, но за счёт более медленного вывода. | |
| guidance_scale (`float`, *optional*, по умолчанию 3.0) : Масштаб руководства, определённый в [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` определяется как `w` из уравнения 2 в [Imagen Paper](https://huggingface.co/papers/2205.11487). Масштаб руководства активируется при установке `guidance_scale > 1`. Более высокий масштаб руководства способствует генерации изображений, тесно связанных с текстовым `prompt`, обычно за счёт снижения качества изображения. | |
| negative_prompt (`str` или `list[str]`, *необязательный*) : Промпт или промпты, которые не должны направлять генерацию изображения. Если не задан, необходимо передать `negative_prompt_embeds`. Игнорируется, если не используется направляющее влияние (то есть игнорируется, если `guidance_scale` меньше `1`). | |
| num_images_per_prompt (`int`, *необязательный*, по умолчанию 1) : Количество изображений, генерируемых на один запрос. | |
| height (`int`, *optional*, по умолчанию self.unet.config.sample_size) : Высота генерируемого изображения в пикселях. | |
| width (`int`, *optional*, по умолчанию self.unet.config.sample_size) : Ширина генерируемого изображения в пикселях. | |
| generator (`torch.Generator` или `list[torch.Generator]`, *необязательный*) : Один или список [генераторов torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) для обеспечения детерминированности генерации. | |
| prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, *например* для взвешивания промпта. Если не предоставлены, текстовые эмбеддинги будут сгенерированы из входного аргумента `prompt`. | |
| negative_prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные отрицательные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, *например* для взвешивания промпта. Если не предоставлены, negative_prompt_embeds будут сгенерированы из входного аргумента `negative_prompt`. | |
| attention_mask (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска внимания. Обязательна при прямой передаче `prompt_embeds`. | |
| negative_attention_mask (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска отрицательного внимания. Необходимо указать при прямой передаче `negative_prompt_embeds`. | |
| output_type (`str`, *необязательный*, по умолчанию `"pil"`) : Формат вывода для генерируемого изображения. Выберите между [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` или `np.array`. | |
| return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `~pipelines.stable_diffusion.IFPipelineOutput` вместо обычного кортежа. | |
| latents (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные зашумленные латенты, выбранные из гауссова распределения, которые используются в качестве входных данных для генерации изображений. Можно использовать, чтобы скорректировать одну и ту же генерацию с разными промптами. Если не предоставлены, тензор латентов будет сгенерирован путём выборки с использованием переданного случайного `generator`. | |
| callback_on_step_end (`Callable`, *необязательный*) : функция, вызываемая в конце каждого шага денойзинга во время инференса. Функция вызывается со следующими аргументами: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`. `callback_kwargs` будет содержать список всех тензоров, как указано в `callback_on_step_end_tensor_inputs`. | |
| callback_on_step_end_tensor_inputs (`list`, *optional*) : Список тензорных входных данных для функции `callback_on_step_end`. Тензоры, указанные в списке, будут переданы в качестве аргумента `callback_kwargs`. Вы сможете включать только переменные, перечисленные в атрибуте `._callback_tensor_inputs` вашего класса pipeline. | |
| **Возвращает:** [ImagePipelineOutput](/docs/diffusers/main/ru/api/pipelines/consistency_models#diffusers.ImagePipelineOutput) или `tuple` | |
| Функция, вызываемая при обращении к конвейеру для генерации. | |
| Примеры: | |
| ```py | |
| >>> from diffusers import AutoPipelineForText2Image | |
| >>> import torch | |
| >>> pipe = AutoPipelineForText2Image.from_pretrained( | |
| ... "kandinsky-community/kandinsky-3", variant="fp16", torch_dtype=torch.float16 | |
| ... ) | |
| >>> pipe.enable_model_cpu_offload() | |
| >>> prompt = "A photograph of the inside of a subway train. There are raccoons sitting on the seats. One of them is reading a newspaper. The window shows the city in the background." | |
| >>> generator = torch.Generator(device="cpu").manual_seed(0) | |
| >>> image = pipe(prompt, num_inference_steps=25, generator=generator).images[0] | |
| ``` | |
| #### encode_prompt[[diffusers.Kandinsky3Pipeline.encode_prompt]] | |
| ```python | |
| encode_prompt(prompt, do_classifier_free_guidance = True, num_images_per_prompt = 1, device = None, negative_prompt = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, _cut_context = False, attention_mask: typing.Optional[torch.Tensor] = None, negative_attention_mask: typing.Optional[torch.Tensor] = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky3/pipeline_kandinsky3.py#L91) | |
| **Параметры:** | |
| prompt (`str` или `list[str]`, *необязательный*) : промпт для кодирования | |
| device : (`torch.device`, *необязательный*): устройство torch, на котором будут размещены полученные эмбеддинги | |
| num_images_per_prompt (`int`, *необязательный*, по умолчанию 1) : количество изображений, которые должны быть сгенерированы для каждого промпта | |
| do_classifier_free_guidance (`bool`, *необязательный*, по умолчанию `True`) : использовать ли classifier free guidance | |
| negative_prompt (`str` или `list[str]`, *необязательный*) : Промпт или промпты, которые не должны направлять генерацию изображения. Если не задан, необходимо передать `negative_prompt_embeds`. вместо этого. Если не задан, необходимо передать `negative_prompt_embeds`. вместо этого. Игнорируется, если не используется направляющее влияние (т. е. игнорируется, если `guidance_scale` меньше `1`). | |
| prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, *например* для взвешивания промпта. Если не предоставлены, текстовые эмбеддинги будут сгенерированы из входного аргумента `prompt`. | |
| negative_prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные отрицательные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, *например* для взвешивания промпта. Если не предоставлены, negative_prompt_embeds будут сгенерированы из входного аргумента `negative_prompt`. | |
| attention_mask (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска внимания. Обязательна при прямой передаче `prompt_embeds`. | |
| negative_attention_mask (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска отрицательного внимания. Необходимо указать при прямой передаче `negative_prompt_embeds`. | |
| Кодирует промпт в скрытые состояния текстового энкодера. | |
| ## Kandinsky3Img2ImgPipeline[[diffusers.Kandinsky3Img2ImgPipeline]] | |
| #### diffusers.Kandinsky3Img2ImgPipeline[[diffusers.Kandinsky3Img2ImgPipeline]] | |
| ```python | |
| diffusers.Kandinsky3Img2ImgPipeline(tokenizer: T5Tokenizer, text_encoder: T5EncoderModel, unet: Kandinsky3UNet, scheduler: DDPMScheduler, movq: VQModel) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky3/pipeline_kandinsky3_img2img.py#L56) | |
| #### __call__[[diffusers.Kandinsky3Img2ImgPipeline.__call__]] | |
| ```python | |
| __call__(prompt: str | list[str] = None, image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]] = None, strength: float = 0.3, num_inference_steps: int = 25, guidance_scale: float = 3.0, negative_prompt: str | list[str] | None = None, num_images_per_prompt: int | None = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, negative_attention_mask: 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]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], **kwargs) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky3/pipeline_kandinsky3_img2img.py#L400) | |
| **Параметры:** | |
| prompt (`str` или `list[str]`, *необязательный*) : Промпт или промпты для управления генерацией изображения. Если не задан, необходимо передать `prompt_embeds` вместо него. | |
| image (`torch.Tensor`, `PIL.Image.Image`, `np.ndarray`, `list[torch.Tensor]`, `list[PIL.Image.Image]` или `list[np.ndarray]`) : `Image` или тензор, представляющий пакет изображений, который будет использоваться как отправная точка для процесса. | |
| strength (`float`, *optional*, по умолчанию 0.8) : Определяет степень трансформации исходного `image`. Значение должно быть в диапазоне от 0 до 1. `image` используется как отправная точка, и чем выше `strength`, тем больше шума добавляется. Количество шагов денойзинга зависит от количества шума, добавленного изначально. Когда `strength` равно 1, добавляется максимальное количество шума, и процесс денойзинга выполняется в течение полного числа итераций, указанного в `num_inference_steps`. Значение 1 фактически игнорирует `image`. | |
| num_inference_steps (`int`, *optional*, по умолчанию 50) : Количество шагов денойзинга. Как правило, большее число шагов денойзинга приводит к изображению более высокого качества, но за счёт более медленного вывода. | |
| guidance_scale (`float`, *optional*, по умолчанию 3.0) : Масштаб руководства, определённый в [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` определяется как `w` из уравнения 2 в [Imagen Paper](https://huggingface.co/papers/2205.11487). Масштаб руководства активируется при установке `guidance_scale > 1`. Более высокий масштаб руководства способствует генерации изображений, тесно связанных с текстовым `prompt`, обычно за счёт снижения качества изображения. | |
| negative_prompt (`str` или `list[str]`, *необязательный*) : Промпт или промпты, которые не должны направлять генерацию изображения. Если не задан, необходимо передать `negative_prompt_embeds`. Игнорируется, если не используется направляющее влияние (то есть игнорируется, если `guidance_scale` меньше `1`). | |
| num_images_per_prompt (`int`, *необязательный*, по умолчанию 1) : Количество изображений, генерируемых на один запрос. | |
| generator (`torch.Generator` или `list[torch.Generator]`, *необязательный*) : Один или список [генераторов torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) для обеспечения детерминированности генерации. | |
| prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, *например* для взвешивания промпта. Если не предоставлены, текстовые эмбеддинги будут сгенерированы из входного аргумента `prompt`. | |
| negative_prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные отрицательные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, *например* для взвешивания промпта. Если не предоставлены, negative_prompt_embeds будут сгенерированы из входного аргумента `negative_prompt`. | |
| attention_mask (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска внимания. Обязательна при прямой передаче `prompt_embeds`. | |
| negative_attention_mask (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска отрицательного внимания. Необходимо указать при прямой передаче `negative_prompt_embeds`. | |
| output_type (`str`, *необязательный*, по умолчанию `"pil"`) : Формат вывода для генерируемого изображения. Выберите между [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` или `np.array`. | |
| return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `~pipelines.stable_diffusion.IFPipelineOutput` вместо обычного кортежа. | |
| callback_on_step_end (`Callable`, *необязательный*) : функция, вызываемая в конце каждого шага денойзинга во время инференса. Функция вызывается со следующими аргументами: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`. `callback_kwargs` будет содержать список всех тензоров, как указано в `callback_on_step_end_tensor_inputs`. | |
| callback_on_step_end_tensor_inputs (`list`, *optional*) : Список тензорных входных данных для функции `callback_on_step_end`. Тензоры, указанные в списке, будут переданы в качестве аргумента `callback_kwargs`. Вы сможете включать только переменные, перечисленные в атрибуте `._callback_tensor_inputs` вашего класса pipeline. | |
| **Возвращает:** [ImagePipelineOutput](/docs/diffusers/main/ru/api/pipelines/consistency_models#diffusers.ImagePipelineOutput) или `tuple` | |
| Функция, вызываемая при обращении к конвейеру для генерации. | |
| Примеры: | |
| ```py | |
| >>> from diffusers import AutoPipelineForImage2Image | |
| >>> from diffusers.utils import load_image | |
| >>> import torch | |
| >>> pipe = AutoPipelineForImage2Image.from_pretrained( | |
| ... "kandinsky-community/kandinsky-3", variant="fp16", torch_dtype=torch.float16 | |
| ... ) | |
| >>> pipe.enable_model_cpu_offload() | |
| >>> prompt = "A painting of the inside of a subway train with tiny raccoons." | |
| >>> image = load_image( | |
| ... "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky3/t2i.png" | |
| ... ) | |
| >>> generator = torch.Generator(device="cpu").manual_seed(0) | |
| >>> image = pipe(prompt, image=image, strength=0.75, num_inference_steps=25, generator=generator).images[0] | |
| ``` | |
| #### encode_prompt[[diffusers.Kandinsky3Img2ImgPipeline.encode_prompt]] | |
| ```python | |
| encode_prompt(prompt, do_classifier_free_guidance = True, num_images_per_prompt = 1, device = None, negative_prompt = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, _cut_context = True, attention_mask: typing.Optional[torch.Tensor] = None, negative_attention_mask: typing.Optional[torch.Tensor] = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky3/pipeline_kandinsky3_img2img.py#L106) | |
| **Параметры:** | |
| prompt (`str` или `list[str]`, *необязательный*) : промпт для кодирования | |
| Кодирует промпт в скрытые состояния текстового энкодера. | |
| device: (`torch.device`, *необязательный*): устройство torch, на котором должны размещаться результирующие эмбеддинги num_images_per_prompt (`int`, *необязательный*, по умолчанию 1): количество изображений, которые должны быть сгенерированы для каждого промпта do_classifier_free_guidance (`bool`, *необязательный*, по умолчанию `True`): использовать ли classifier free guidance negative_prompt (`str` или `list[str]`, *необязательный*): промпт или промпты, которые не должны направлять генерацию изображения. Если не задан, необходимо передать `negative_prompt_embeds`. вместо этого. Если не задан, необходимо передать `negative_prompt_embeds`. вместо этого. Игнорируется, если guidance не используется (т. е. игнорируется, если `guidance_scale` меньше `1`). prompt_embeds (`torch.Tensor`, *необязательный*): предварительно сгенерированные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, *например* взвешивания промпта. Если не предоставлены, текстовые эмбеддинги будут сгенерированы из входного аргумента `prompt`. negative_prompt_embeds (`torch.Tensor`, *необязательный*): предварительно сгенерированные отрицательные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, *например* взвешивания промпта. Если не предоставлены, negative_prompt_embeds будут сгенерированы из входного аргумента `negative_prompt`. attention_mask (`torch.Tensor`, *необязательный*): предварительно сгенерированная маска внимания. Необходимо предоставить при прямой передаче `prompt_embeds`. negative_attention_mask (`torch.Tensor`, *необязательный*): предварительно сгенерированная отрицательная маска внимания. Необходимо предоставить при прямой передаче `negative_prompt_embeds`. | |
Xet Storage Details
- Size:
- 28.7 kB
- Xet hash:
- 6211c8360a419bd3c22cbaee7c1aa14bae2bdbcb8fc3d3cff004524c11c27e56
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.