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

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

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

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

Начать

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

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

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

Функции

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

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

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

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

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

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

При добавлении модели плагина к базовой модели также настройте параметры плагина. Плагин ориентира Face использует 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 — это вариант, который обучает базовую модель определенному понятию, например объекту, человеку или стилю, и внедряет их в сгенерированные изображения.

Модели фундамента

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

Следующие модели фундаментов также совместимы с Image Generator:

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

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

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

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

Плагин 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 к модели фундамента.