Buckets:

mishig's picture
|
download
raw
28.7 kB

Kandinsky 3

Kandinsky 3 создан Владимиром Архипкиным,Анастасией Мальцевой,Игорем Павловым,Андреем Филатовым,Арсением Шахматовым,Андреем Кузнецовым,Денисом Димитровым, Зейном Шахином

Описание с его страницы на GitHub:

Kandinsky 3.0 — это открытая диффузионная модель для генерации изображений по текстовому описанию, построенная на основе семейства моделей Kandinsky2-x. По сравнению с предыдущими версиями в модели улучшены понимание текста и визуальное качество, что достигнуто за счёт увеличения размера текстового энкодера и модели Diffusion U-Net соответственно.

Его архитектура включает 3 основных компонента:

  1. FLAN-UL2 — это модель с архитектурой «кодировщик-декодировщик», основанная на архитектуре T5.
  2. Новая архитектура U-Net с блоками BigGAN-deep удваивает глубину, сохраняя то же количество параметров.
  3. Sber-MoVQGAN — это декодер, продемонстрировавший превосходные результаты в области восстановления изображений.

Исходный код можно найти в репозитории ai-forever/Kandinsky-3.

Ознакомьтесь с организацией Kandinsky Community на Hub, где размещены официальные контрольные точки моделей для таких задач, как генерация изображений по тексту, преобразование изображения в изображение и инпейнтинг.

Обязательно ознакомьтесь с руководством по планировщикам, чтобы узнать, как исследовать баланс между скоростью и качеством планировщика, а также с разделом повторное использование компонентов в разных конвейерах, чтобы узнать, как эффективно загружать одни и те же компоненты в несколько конвейеров.

Kandinsky3Pipeline[[diffusers.Kandinsky3Pipeline]]

diffusers.Kandinsky3Pipeline[[diffusers.Kandinsky3Pipeline]]

diffusers.Kandinsky3Pipeline(tokenizer: T5Tokenizer, text_encoder: T5EncoderModel, unet: Kandinsky3UNet, scheduler: DDPMScheduler, movq: VQModel)

Источник

call[[diffusers.Kandinsky3Pipeline.call]]

__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)

Источник

Параметры:

prompt (str или list[str], необязательный) : Промпт или промпты для управления генерацией изображения. Если не задан, необходимо передать prompt_embeds вместо него.

num_inference_steps (int, optional, по умолчанию 25) : Количество шагов денойзинга. Как правило, большее количество шагов денойзинга приводит к изображению более высокого качества, но за счёт более медленного вывода.

guidance_scale (float, optional, по умолчанию 3.0) : Масштаб руководства, определённый в Classifier-Free Diffusion Guidance. guidance_scale определяется как w из уравнения 2 в Imagen Paper. Масштаб руководства активируется при установке 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 для обеспечения детерминированности генерации.

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: 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 или tuple

Функция, вызываемая при обращении к конвейеру для генерации.

Примеры:

>>> 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]]

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)

Источник

Параметры:

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]]

diffusers.Kandinsky3Img2ImgPipeline(tokenizer: T5Tokenizer, text_encoder: T5EncoderModel, unet: Kandinsky3UNet, scheduler: DDPMScheduler, movq: VQModel)

Источник

call[[diffusers.Kandinsky3Img2ImgPipeline.call]]

__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)

Источник

Параметры:

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. guidance_scale определяется как w из уравнения 2 в Imagen Paper. Масштаб руководства активируется при установке 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 для обеспечения детерминированности генерации.

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: 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 или tuple

Функция, вызываемая при обращении к конвейеру для генерации.

Примеры:

>>> 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]]

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)

Источник

Параметры:

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.