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

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

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

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

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

Начать

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

Подробности задачи

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

Функции

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

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

Варианты конфигураций

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

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

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

При добавлении модели плагина к модели фундамента также настройте параметры плагина. Плагин Face Land использует 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

Дополнительную информацию о работе этих параметров конфигурации см. в разделе Детектор краев Canny .

Параметры ориентиров на лице

Настройте следующие параметры в 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

Дополнительную информацию о работе этих параметров конфигурации см. в задаче Face Landmarker .

Параметры глубины

Настройте следующие параметры в 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

Дополнительную информацию о работе этих параметров конфигурации см. в разделе Детектор краев Canny .

Плагин Face Landmark

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

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

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

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

Загрузить набор моделей Face Landmark

Плагин 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

Дополнительную информацию о работе этих параметров конфигурации см. в задаче Face Landmarker .

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

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

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

Скачать плагин Depth

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

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

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

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

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

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

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

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

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

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

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

LoRA с Vertex AI

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