Во всех руководствах по установке ControlNet была рекомендация использовать posex для работы с позами. Спустя несколько месяцев появилось более мощные редакторы, posex морально устарел и перестал обновляться, а в последних версиях WebUI он просто перестал работать. Пришло время искать замену.
В этой заметке я расскажу о 5 редакторах поз, которые рекомендую использовать вместо posex.
SD WebUI OpenPose Editor
Самый мощный из доступных редакторов поз для ControlNet. Кроме стандартного скелета передаёт для рисования информацию о пальцах и положении лица в пространстве.
Особенности редактора
Работает внутри ControlNet, но доступ к редактору не тривиален
— Загружаем изображение-референс в ControlNet v1.1.217 (или новее), модель поз должна быть версии 1.1 или выше
— Выбираем “Enable” и “Allow Preview”, в категории “Control Type” выбираем “OpenPose”
— Жмём кнопку с непонятной иконкой, которая находится между “Preprocessor” и “Model”
— В появившемся блоке “Preprocessor Preview” жмём “Edit” и попадаем в редактор
— Кнопка “ui.sendPose” в левом верхнем углу редактора отправляет позу в ControlNet
Работа со скелетом в плоскости
Возможность перетаскивать ноды мышкой или задавать численные координаты
Автоматически распознаёт позу и добавляет скелет с учётом положения кистей рук и лица. Дополнительные скелеты можно добавить вручную.
Возможен импорт позы из JSON
Редактирование позы либо мышкой (перетаскиваем ноды), либо изменением координат в специальном интерфейсе
Импорт/экспорт позы в JSON, с сохранением возможности редактировать
Экспорт позы в png, без возможности редактирования
Отсутствует вращение камеры (может быть минусом), возможно приближение/отдаление курсором мыши
Установка расширения состоит из нескольких этапов:
Обновление ControlNet до v1.1.217 или более свежей
Установка расширения стандартным способом через вкладку “Extensions” в WebUI (инструкция в конце поста)
Необходимо скачать архив dist.zip из репозитория проекта
https://github.com/huchenlei/sd-webui-openpose-editor/releases
и распаковать в папку с заменой файлов
stable-diffusion-webui\extensions\sd-webui-openpose-editor\dist
Openpose Editor
Openpose Editor — это продвинутый, в сравнении с posex, редактор поз для ControlNet. Но в сравнении с другими это достаточно простой редактор.
Особенности редактора
Работа со скелетом в плоскости
Автоматически определяет позу из добавленного изображения (Detect Image)
Ручная настройка, или редактирование, позы по фоновому изображению
Сохранение созданной позы в качестве пресета
(поза добавляется в конфиг \extensions\openpose-editor\presets.json)
Импорт/экспорт позы в JSON, с сохранением возможности редактировать
Экспорт позы в png, без возможности редактирования
Отправка готовой позы в ControlNet одним кликом
Возможность разместить сколько угодно скелетов
Отсутствие вращения камеры (может быть минусом), размер скелета изменяется растягиванием объекта
Depth Library
Depth Library — это не полноценный редактор поз, а дополнение к любому другому редактору, которое необходимо для улучшения рисования кистей рук. Стандартную библиотеку пресетов можно дополнить любым количеством кистей, в сообществе на civitai выложено несколько подборок (900 штук, 50 штук).
Принцип работы редактора: вы добавляете кисти рук с необходимым вами расположением пальцев в пространстве, и на основе этого генерируете маску глубины (depth mask). При рисовании персонажа через ControlNet в одном юните вы задаёте скелет (open pose), во втором карты глубины (depth) из этого расширения и если всё сделано правильно — у вас получатся идеальные руки.
Особенности расширения
Все настройки, включая положение кистей в пространстве и их размеры необходимо задавать вручную, для лучшего результата в два этапа: сначала по референсу выставляем размер кистей, затем по скелету для этого референса выставляем кисти в нужные места.
Возможности расширения напрямую зависят от количества добавленных вариантов кистей. При желании можно добавлять кисти самостоятельно.
Отправка полученной маски в ControlNet одним кликом
Экспорт масок в png
3D OpenPose Editor
Мощный редактор поз с возможностью работы со скелетом в пространстве, что позволит точнее настроить позу.
Помимо стандартного скелета openpose, расширение генерирует контуры, маску глубину и карту нормалей для кистей рук и стоп. Для достижения наилучших результатов стоит использовать комбинацию скелета и контуров/маски/карты (одно из трёх). Выбирать пару стоит исходя из вашего референса. Для простых достаточно скелета и контуров или скелета и маски. В сложных случаях рисование по скелету и карте нормалей покажет наилучший результат.
Можно рискнуть и рисовать по четырём файлам. Но с большой долей вероятности результат будет хуже, чем при рисовании по двум.
Особенности редактора
Работа со скелетом в объёмном пространстве, возможность точнее задавать позу и положение конечностей
Возможность настройки пальцев на кистях рук и положения стоп
Автоматическое распознание позы работает, но не идеально (пример на скрине), можно вручную задать позу по фоновому изображению
Помимо скелета openpose генерирует контуры (canny), маску глубины (depth) и карту нормалей (normal) для кистей и стоп
За это отвечает фиолетовая кнопка “Generate” в правом верхнем углу редактора.
Экспорт результатов в png
Отправка скелета и масок в ControlNet одним кликом
С непривычки работать в редакторе очень неудобно
PoseMy.art
Условно-бесплатный браузерный редактор поз с самыми большими, на данный момент, возможностями по настройке позы. Все необходимые для работы функции доступны в базовой версии, за пейволлом лишь необязательные.
Особенности редактора
Работа со скелетом в объёмном пространстве, возможность точнее задавать позу и положение конечностей
Возможность настройки пальцев на кистях рук и положения стоп
Коллекция пресетов поз и сцен (в платной версии их больше)
Анимация скелета (2446 штук), возможность остановить движение и экспортировать скелет по стоп-кадру
Выставление объектов (пропсов) на сцену: в бесплатной версии ограничение только из стандартного набора; в платной версии импорт любых
Три варианта экспорта в png: скелеты без пальцев и с пальцами + карта нормалей всей сцены (улучшит результаты при рисовании сцены с объектами)
Экспорт сцены как картинки
Нет быстрой отправки в ControlNet
Распознание позы по изображению доступно в платной версии
Как установить расширения?
Для установки расширений необходимо перейти во вкладку Extensions вашего Web UI
Вкладка Install from URL
Вставляем в поле ссылку на репозиторий проекта, например https://github.com/huchenlei/sd-webui-openpose-editor
Жмём Install и ждём пока не появится сообщение об успешной установке (подчёркнуто красным)
Переходим во вкладку Installed
Жмём Apply and restart UI и ждём перезапуска сервера
Сравнение расширений
Из пяти редакторов в подборке четыре самостоятельные и один вспомогательный (Depth Library). В идеальном мире стоило бы выбрать один основной редактор и пользоваться только им, но это будет непросто.
Если вы создаёте позы по референсам, то sd-webui-openpose-editor будет лучшим выбором, а связка Openpose Editor + Depth Library отстанет с небольшим отрывом. Остальные редакторы менее удобны в этой задаче.
Но если вы создаёте позу с нуля, без референсов, или нужно задать сложный угол камеры – редакторы 3D OpenPose и PoseMy.art окажутся наилучшим выбором.
Четыре редактора из пяти умеют рисовать пальцы. Но если объект съёмки находится на удалении от камеры кисти будут закручены в причудливые загогулины, несмотря на настройки редактора.
Для себя приоритет при выборе редакторов вижу так:
sd-webui-openpose-editor когда персонаж находится близко к камере и кисти рук не перекрывают скелет
Openpose Editor когда персонаж отдалён от камеры или кисти рук перекрывают скелет. Обязательно попробую нарисовать с Depth Library и без неё.
PoseMy.art или 3D OpenPose когда потребуется что-то этакое или захочу задать необычный угол камеры. Но таких задач пока не было, обычно все углы и ракурсы задаю токенами.
В комментариях с удовольствием отвечу на вопросы, связанные с использованием этих редакторов поз.
______________________________
Буду рад видеть вас в телеграм-канале, где в таком же формате рассказываю о полезных малоизвестных расширениях и инструментах, показываю примеры использования интересных токенов и делюсь красивыми моделями, на которых рисую сам.