Задача MediaPipe Image Generator позволяет создавать изображения на основе текстового запроса. В этой задаче используется модель преобразования текста в изображение для создания изображений с использованием методов диффузии.
Задача принимает в качестве входных данных текстовую подсказку, а также необязательное изображение условия, которое модель может дополнить и использовать в качестве ссылки для генерации. Дополнительные сведения об условном преобразовании текста в изображение см. в разделе Плагины распространения на устройстве для условного преобразования текста в изображение .
Генератор изображений также может генерировать изображения на основе конкретных концепций, предоставленных модели во время обучения или переобучения. Дополнительные сведения см. в разделе Настройка с помощью LoRA .
Начать
Начните использовать эту задачу, следуя одному из этих руководств по реализации для вашей целевой платформы. Эти руководства для конкретных платформ покажут вам базовую реализацию этой задачи с примерами кода, использующими модель по умолчанию и рекомендуемые параметры конфигурации:
- Android – Пример кода – Руководство
- Настройка с помощью LoRA — Пример кода — Colab
Подробности задачи
В этом разделе описаны возможности, входы, выходы и параметры конфигурации этой задачи.
Функции
Вы можете использовать генератор изображений для реализации следующего:
- Генерация текста в изображение . Создавайте изображения с помощью текстовой подсказки.
- Генерация изображений с изображениями состояния . Создавайте изображения с текстовой подсказкой и эталонным изображением. Генератор изображений использует изображения условий аналогично ControlNet .
- Генерация изображений с весами 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 содержит следующие параметры конфигурации:
Название опции | Описание | Диапазон значений | Значение по умолчанию |
---|---|---|---|
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 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, и разместила его изображение рядом с зеркалом, как указано в подсказке.
Дополнительные сведения см. в руководстве по настройке , в котором используется Model Garden на Vertex AI для настройки модели путем применения весов LoRA к модели фундамента.