Руководство по созданию изображений

задача генератора изображений

Задача MediaPipe Image Generator позволяет создавать изображения на основе текстового запроса. В этой задаче используется модель преобразования текста в изображение для генерации изображений с применением методов диффузии.

Задача принимает на вход текстовую подсказку, а также необязательное изображение-условие, которое модель может дополнить и использовать в качестве эталона для генерации. Более подробную информацию о генерации текста в изображение с учетом условий см. в разделе «Плагины для генерации текста в изображение с учетом условий на устройстве» .

Генератор изображений также может создавать изображения на основе конкретных концепций, предоставленных модели во время обучения или переобучения. Для получения дополнительной информации см. раздел «Настройка с помощью LoRA» .

Начать

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

Детали задачи

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

Функции

С помощью генератора изображений можно реализовать следующее:

  1. Генерация изображений из текста — создание изображений с помощью текстовой подсказки.
  2. Генерация изображений с использованием изображений условий — Создавайте изображения с помощью текстовой подсказки и эталонного изображения. Генератор изображений использует изображения условий аналогично ControlNet .
  3. Генерация изображений с использованием весов LoRA — создавайте изображения конкретных людей, объектов и стилей с помощью текстовой подсказки, используя настраиваемые веса модели.
Входные данные задачи Результаты выполнения задачи
Генератор изображений принимает следующие входные данные:
  • Текстовая подсказка
  • Семя
  • Количество генеративных итераций
  • Дополнительно: изображение состояния
Генератор изображений выдает следующие результаты:
  • Изображение, сгенерированное на основе входных данных.
  • Необязательно: итеративные снимки сгенерированного изображения.

Параметры конфигурации

Данная задача имеет следующие параметры конфигурации:

Название варианта Описание Диапазон значений
imageGeneratorModelDirectory Каталог модели генератора изображений, в котором хранятся веса модели. PATH
loraWeightsFilePath Задает путь к файлу весов LoRA. Необязательный параметр, применим только в том случае, если модель была настроена с использованием LoRA. PATH
errorListener Устанавливает необязательный обработчик ошибок. N/A

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

При добавлении модели плагина к базовой модели также необходимо настроить параметры плагина. Плагин Face landmark использует faceConditionOptions , плагин Canny edge использует edgeConditionOptions , а плагин Depth использует depthConditionOptions .

Умные варианты с выгодными предложениями

Настройте следующие параметры в edgeConditionOptions .

Название варианта Описание Диапазон значений Значение по умолчанию
threshold1 Первый пороговый уровень для процедуры гистерезиса. Float 100
threshold2 Второй пороговый уровень для процедуры гистерезиса. Float 200
apertureSize Размер диафрагмы для оператора Собеля. Типичный диапазон — от 3 до 7. Integer 3
l2Gradient Используется ли норма L2 для вычисления величины градиента изображения вместо нормы L1 по умолчанию. BOOLEAN False
EdgePluginModelBaseOptions Объект BaseOptions , задающий путь к модели плагина. Объект BaseOptions N/A

Для получения более подробной информации о работе этих параметров конфигурации см. раздел «Детектор границ Кэнни» .

Варианты расположения лицевых ориентиров

Настройте следующие параметры в faceConditionOptions .

Название варианта Описание Диапазон значений Значение по умолчанию
minFaceDetectionConfidence Минимальный показатель достоверности, при котором распознавание лица считается успешным. Float [0.0,1.0] 0.5
minFacePresenceConfidence Минимальный показатель достоверности наличия лица при определении лицевых ориентиров. Float [0.0,1.0] 0.5
faceModelBaseOptions Объект BaseOptions задает путь к модели, создающей изображение состояния. Объект BaseOptions N/A
FacePluginModelBaseOptions Объект BaseOptions , задающий путь к модели плагина. Объект BaseOptions N/A

Для получения более подробной информации о работе этих параметров конфигурации см. задачу «Ориентир на лице» .

Варианты глубины

Настройте следующие параметры в файле depthConditionOptions .

Название варианта Описание Диапазон значений Значение по умолчанию
depthModelBaseOptions Объект BaseOptions задает путь к модели, создающей изображение состояния. Объект BaseOptions N/A
depthPluginModelBaseOptions Объект BaseOptions , задающий путь к модели плагина. Объект BaseOptions N/A

Модели

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

Плагины-модели являются необязательными и дополняют базовые модели, позволяя пользователям предоставлять дополнительное изображение условий вместе с текстовой подсказкой для более точной генерации изображений. Настройка базовых моделей с использованием весов LoRA — это опция, которая обучает базовую модель определенной концепции, такой как объект, человек или стиль, и внедряет их в генерируемые изображения.

Базовые модели

Базовые модели представляют собой скрытые модели преобразования текста в изображение, которые генерируют изображения на основе текстового запроса. Генератор изображений требует, чтобы базовая модель соответствовала формату модели stable-diffusion-v1-5/stable-diffusion-v1-5 EMA-only , основанному на следующей модели:

Следующие базовые модели также совместимы с генератором изображений:

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

Установите необходимые зависимости:

$ pip install torch typing_extensions numpy Pillow requests pytorch_lightning absl-py

Запустите скрипт convert.py :

$ python3 convert.py --ckpt_path <ckpt_path> --output_path <output_path>

Модели плагинов

Модели плагинов в этом разделе разработаны компанией Google и должны использоваться в сочетании с базовой моделью. Модели плагинов позволяют Image Generator принимать в качестве входных данных изображение с условиями вместе с текстовой подсказкой, что позволяет управлять структурой генерируемых изображений. Модели плагинов предоставляют возможности, аналогичные ControlNet , с новой архитектурой, специально разработанной для распространения изображений на устройстве .

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

Плагин Canny Edge

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

Плагин Canny Edge принимает изображение условий, которое описывает предполагаемые края генерируемого изображения. Базовая модель использует края, подразумеваемые изображением условий, и генерирует новое изображение на основе текстовой подсказки. Генератор изображений содержит встроенные возможности для создания изображений условий и требует только загрузки модели плагина.

Скачать плагин Canny Edge

Плагин Canny Edge содержит следующие параметры конфигурации:

Название варианта Описание Диапазон значений Значение по умолчанию
threshold1 Первый пороговый уровень для процедуры гистерезиса. Float 100
threshold2 Второй пороговый уровень для процедуры гистерезиса. Float 200
apertureSize Размер диафрагмы для оператора Собеля. Типичный диапазон — от 3 до 7. Integer 3
l2Gradient Используется ли норма L2 для вычисления величины градиента изображения вместо нормы L1 по умолчанию. BOOLEAN False
EdgePluginModelBaseOptions Объект BaseOptions , задающий путь к модели плагина. Объект BaseOptions N/A

Для получения более подробной информации о работе этих параметров конфигурации см. раздел «Детектор границ Кэнни» .

Плагин Face Landmark

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

Плагин Face Landmark принимает выходные данные от MediaPipe Face Landmarker в качестве изображения состояния. Face Landmarker предоставляет подробную сетку лица, которая отображает наличие и расположение черт лица. Базовая модель использует отображение лица, полученное из изображения состояния, и генерирует новое лицо поверх сетки.

Скачать плагин Face landmark

Для создания изображения состояния плагину Face Landmarker также требуется пакет моделей Face Landmarker. Этот пакет моделей совпадает с пакетом, используемым задачей Face Landmarker .

Скачать набор моделей-ориентиров для лица

Плагин Face Landmark содержит следующие параметры конфигурации:

Название варианта Описание Диапазон значений Значение по умолчанию
minFaceDetectionConfidence Минимальный показатель достоверности, при котором распознавание лица считается успешным. Float [0.0,1.0] 0.5
minFacePresenceConfidence Минимальный показатель достоверности наличия лица при определении лицевых ориентиров. Float [0.0,1.0] 0.5
faceModelBaseOptions Объект BaseOptions задает путь к модели, создающей изображение состояния. Объект BaseOptions N/A
FacePluginModelBaseOptions Объект BaseOptions , задающий путь к модели плагина. Объект BaseOptions N/A

Для получения более подробной информации о работе этих параметров конфигурации см. задачу «Ориентир на лице» .

Плагин глубины

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

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

Скачать плагин «Глубина»

Для создания изображения состояния плагин Depth также требуется модель оценки глубины.

Скачать модель оценки глубины

Плагин Depth содержит следующие параметры конфигурации:

Название варианта Описание Диапазон значений Значение по умолчанию
depthModelBaseOptions Объект BaseOptions задает путь к модели, создающей изображение состояния. Объект BaseOptions N/A
depthPluginModelBaseOptions Объект BaseOptions , задающий путь к модели плагина. Объект BaseOptions N/A

Настройка с помощью LoRA

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

Для создания весов LoRa необходимо обучить базовую модель на изображениях определенного объекта, человека или стиля, что позволит модели распознавать новую концепцию и применять ее при генерации изображений. Если вы создаете веса LoRa для генерации изображений конкретных людей и лиц, используйте это решение только для своего лица или лиц людей, которые дали вам на это разрешение.

Ниже представлен результат работы пользовательской модели, обученной на изображениях чайников из набора данных DreamBooth с использованием токена "чайник monadikos":

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

Подсказка : чайник Monadikos рядом с зеркалом

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

LoRA с Vertex AI

Для получения дополнительной информации см. руководство по настройке , в котором используется Model Garden на Vertex AI для настройки модели путем применения весов LoRA к базовой модели.