Нейросеть Stable Diffusion: установка, обновление и использование расширения ControlNet
ControlNet — это модель нейросети Stable Diffusion, которая позволяет копировать композиции или позы человека из эталонного изображения.
Опытные пользователи Stable Diffusion знают, как сложно создать нужную композицию. Изображения получаются, как правило, случайные. Поэтому приходится создавать большое количество изображений, чтобы выбрать то, которое устраивает.
С помощью ControlNet наконец-то появилась возможность осуществлять контроль над тем, где должны находиться объекты и как они должны выглядеть.
Итак, ControlNet — это расширение, которое дает дополнительный контроль над генерацией изображений.
ControlNet управляет генерацией изображений двумя способами:
Как показано ниже, ControlNet берет дополнительное входное изображение и определяет его контуры с помощью детектора краев Canny. Затем изображение, содержащее обнаруженные края, сохраняется как контрольная карта.
Детектор краев Canny выделяет одновременно края объекта и фона. Поэтому он более точно передает композицию.
2. Обнаружение положения человека
Openpose — это быстрая модель обнаружения ключевых точек человека, которая может извлекать человеческие позы (положение рук, ног и головы).
Ключевые точки извлекаются из входного изображения с помощью OpenPose и сохраняются в виде контрольной карты, которая передается в Stable Diffusion в качестве дополнительной обработки вместе с текстовой подсказкой.
OpenPose обнаруживает только ключевые точки человека, такие как положение головы, рук и т.д. Генерация изображения более свободна, но следует исходной позе.
Установка ControlNet в AUTOMATIC1111
2. Выберите вкладку Установить с URL-адреса.
3. Поместите следующий URL-адрес в поле URL-адреса репозитория расширения:
https://github.com/Mikubill/sd-webui-controlnet
5. Дождитесь подтверждающего сообщения о том, что расширение установлено.
6. Перезапустите AUTOMATIC1111.
7. Посетите страницу моделей ControlNet.
8. Загрузите все файлы модели (имя файла заканчивается на .pth). Если вы не хотите загружать их все, можно просто загрузить мозаичную модель (та, что заканчивается на _tile).
9. Поместите файл(ы) модели в каталог модели расширения ControlNet:
stable-diffusion-webui\extensions\sd-webui-controlnet\models
10. Перезапустите AUTOMATIC1111.
Если расширение успешно установлено, вы увидите новый сворачиваемый раздел во вкладке txt2img под названием ControlNet . Он должен быть прямо над раскрывающимся меню «Сценарий» (Script):
Обновление ControlNet
Обновление расширения необходимо, если вы запускаете AUTOMATIC1111 локально на Windows или Mac. Блокнот Colab на сайте всегда работает с последним расширением ControlNet.
Самый простой способ обновить расширение ControlNet — использовать графический интерфейс AUTOMATIC1111:
- Перейдите на страницу расширений.
- На вкладке «Установлено» нажмите «Проверить наличие обновлений» .
- Дождитесь подтверждающего сообщения.
- Полностью закройте и перезапустите веб-интерфейс AUTOMATIC1111.
Использование ControlNet
ControlNet необходимо использовать с моделью Stable Diffusion. К примеру, выберите базовую модель версии 1.5 - v1-5-pruned-emaonly.ckpt.
На вкладке txt2image напишите текстовый запрос, при необходимости еще напишите отрицательный запрос. Установите размер изображения для генерации изображения.
Теперь перейдите к панели ControlNet.
Нажмите курсор справа, чтобы развернуть панель ControlNet. Вы увидите холст для загрузки исходного изображения и панель управления:
Сначала загрузите изображение на холст изображения. Например, это:
Установите флажок Включить (Enable).
Выбор препроцессора
Существует несколько препроцессоров OpenPose.
OpenPose определяет ключевые точки человека, такие как положение головы, плеч, рук и т. д. Это полезно для копирования человеческих поз без копирования других деталей (одежда, прически, фон).
- OpenPose : глаза, нос, глаза, шея, плечо, локоть, запястье, колени и лодыжки (базовый)
- OpenPose_face : OpenPose + детали лица
- OpenPose_hand : OpenPose + руки и пальцы
- OpenPose_faceonly : только детали лица
- OpenPose_full : все вышеперечисленное
Выбор модели
Модель ControlNet должна быть согласована с препроцессором. Модель следует выбирать с тем же начальным ключевым словом, что и у препроцессора.
предпроцессор: depth_xxxx модель: control_xxxx_depth
предпроцессор: openpose_xxxx модель: control_xxxx_openpose
В качестве препроцессора выберем openpose. Для OpenPose в качестве модели следует выбрать control_openpose-fp16:
Теперь нажмите Generate , чтобы начать генерировать изображения с помощью ControlNet.
Вот какие изображения получились на выходе:
Последнее изображение - прямо с этапа предварительной обработки. В данном случае это обнаруженные ключевые точки.
1) zPose Catwalk Styles 1 (pose helper) - Volume 2 png | Stable Diffusion Poses | Civitai
2) A1111 ControlNet - объяснение на пальцах для детей
3) Безумные результаты в Stable Diffusion с использованием Controlnet!