
Задача MediaPipe Image Generator позволяет создавать изображения на основе текстового запроса. В этой задаче используется модель преобразования текста в изображение для генерации изображений с применением методов диффузии.
Задача принимает на вход текстовую подсказку, а также необязательное изображение-условие, которое модель может дополнить и использовать в качестве эталона для генерации. Более подробную информацию о генерации текста в изображение с учетом условий см. в разделе «Плагины для генерации текста в изображение с учетом условий на устройстве» .
Генератор изображений также может создавать изображения на основе конкретных концепций, предоставленных модели во время обучения или переобучения. Для получения дополнительной информации см. раздел «Настройка с помощью LoRA» .
Начать
Начните использовать эту задачу, следуя одному из этих руководств по реализации для вашей целевой платформы. Эти руководства, специфичные для каждой платформы, помогут вам выполнить базовую реализацию этой задачи, с примерами кода, использующими модель по умолчанию и рекомендуемые параметры конфигурации:
- Android — Пример кода — Руководство
- Настройка с помощью LoRA — пример кода — Colab
Детали задачи
В этом разделе описываются возможности, входные и выходные данные, а также параметры конфигурации данной задачи.
Функции
С помощью генератора изображений можно реализовать следующее:
- Генерация изображений из текста — создание изображений с помощью текстовой подсказки.
- Генерация изображений с использованием изображений условий — Создавайте изображения с помощью текстовой подсказки и эталонного изображения. Генератор изображений использует изображения условий аналогично ControlNet .
- Генерация изображений с использованием весов 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 содержит следующие параметры конфигурации:
| Название варианта | Описание | Диапазон значений | Значение по умолчанию |
|---|---|---|---|
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 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 содержит следующие параметры конфигурации:
| Название варианта | Описание | Диапазон значений | Значение по умолчанию |
|---|---|---|---|
depthModelBaseOptions | Объект BaseOptions задает путь к модели, создающей изображение состояния. | Объект BaseOptions | N/A |
depthPluginModelBaseOptions | Объект BaseOptions , задающий путь к модели плагина. | Объект BaseOptions | N/A |
Настройка с помощью LoRA
Настройка модели с помощью LoRA позволяет генератору изображений создавать изображения на основе определенных концепций, которые идентифицируются уникальными токенами во время обучения. С новыми весами LoRA после обучения модель способна генерировать изображения новой концепции, если токен указан в текстовом запросе.
Для создания весов LoRa необходимо обучить базовую модель на изображениях определенного объекта, человека или стиля, что позволит модели распознавать новую концепцию и применять ее при генерации изображений. Если вы создаете веса LoRa для генерации изображений конкретных людей и лиц, используйте это решение только для своего лица или лиц людей, которые дали вам на это разрешение.
Ниже представлен результат работы пользовательской модели, обученной на изображениях чайников из набора данных DreamBooth с использованием токена "чайник monadikos":

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