Задача MediaPipe Image Generator позволяет генерировать изображения на основе текстового запроса. Эта задача использует модель преобразования текста в изображение для создания изображений с использованием методов диффузии.
Задача принимает в качестве входных данных текстовую подсказку, а также необязательное изображение условия, которое модель может дополнить и использовать в качестве основы для генерации. Подробнее об условной генерации текста в изображение см. в статье Плагины диффузии на устройстве для условной генерации текста в изображение .
Image Generator также может генерировать изображения на основе конкретных концепций, предоставленных модели во время обучения или переобучения. Подробнее см. в разделе «Настройка с LoRA» .
Начать
Начните работу с этой задачей, следуя одному из этих руководств по реализации для вашей целевой платформы. Эти руководства для конкретных платформ проведут вас через базовую реализацию этой задачи с примерами кода, использующими модель по умолчанию, и рекомендуемыми параметрами конфигурации:
- Android - Пример кода - Руководство
- Настройка с помощью LoRA — пример кода — Colab
Подробности задачи
В этом разделе описываются возможности, входы, выходы и параметры конфигурации этой задачи.
Функции
Вы можете использовать генератор изображений для реализации следующего:
- Генерация текста в изображение . Генерация изображений с помощью текстовой подсказки.
- Генерация изображений с использованием условных изображений — генерация изображений с использованием текстовой подсказки и эталонного изображения. Генератор изображений использует условные изображения аналогично ControlNet .
- Генерация изображений с весами 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
, основанному на следующей модели:
Следующие модели фундаментов также совместимы с генератором изображений:
- justinpinkney/miniSD
- хакурей/waifu-diffusion-v1-4
- Вымышленная вселенная/Стабильная_диффузионная_модель_вырезания_на_бумаге
После загрузки базовой модели используйте 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
Плагин 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 к базовой модели.