OpenPose

openpose — управление позой человека через скелетную карту

Раздел
Адаптеры
Обновлено
05.09.26

OpenPose оценивает положение ключевых точек тела, лица и кистей на изображении. В генерации такую карту можно передать совместимому ControlNet, чтобы задать позу нового персонажа. Детектор строит карту, модуль контроля использует её — это разные компоненты. Лицо, одежду и стиль карта сама по себе не сохраняет.

Коротко

Коротко. OpenPose — система оценки позы человека. Она находит ключевые точки тела, лица и кистей. В генерации изображений эти точки рисуют как условный скелет и передают совместимому модулю контроля позы. Так можно задать положение фигуры, не копируя всю фотографию.

OpenPose и ControlNet — не одно и то же

У названия есть два связанных употребления.

OpenPose как проект — инструмент компьютерного зрения, созданный исследователями Carnegie Mellon University. Он определяет расположение ключевых точек на изображениях и видео.

OpenPose в генераторе картинок — часто название режима, карты позы или ControlNet-модели, обученной работать с такими картами. Сам детектор не создаёт нового персонажа: для этого нужна отдельная генеративная система.

Короткая схема:

фотография → детектор позы → карта ключевых точек
                                     ↓
                   совместимый ControlNet + генератор → новая картинка

Если карта уже готова, детектор можно пропустить. Её также можно сделать в редакторе поз.

Что хранит карта

Карта показывает расположение точек и связи между ними. Это условные обозначения, а не рентгеновский снимок и не точная анатомическая модель.

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

Цвета, порядок точек и способ соединения имеют значение. ControlNet учится читать определённый формат карты, поэтому произвольная палочная фигура не обязательно подойдёт. Удобнее использовать совместимый редактор, который сам рисует нужные обозначения.

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

Как использовать в ComfyUI

Для обычного графа нужны:

  1. Исходное изображение или готовая карта.
  2. Препроцессор позы, если карту ещё нужно получить.
  3. Веса ControlNet, совместимые с базовой моделью и форматом карты.
  4. Узел применения ControlNet к текстовым условиям.
  5. Основная модель и сэмплер для генерации, затем VAE для получения изображения.

Названия препроцессоров зависят от установленного пакета узлов. Выход карты поступает на вход изображения в узле применения ControlNet. Сам ControlNet загружается отдельно, а обработанные условия передаются в сэмплер вместе с основной моделью.

Модуль для SD 1.x нельзя автоматически подключить к SDXL или FLUX. Даже внутри одного семейства полезно сверить карточку весов и пример графа.

Пример: серия обложек

Допустим, для серии книг нужна одна героиня в разных позах. Можно подготовить фотографии или нарисовать позы в редакторе, а затем сделать по карте для каждой обложки.

Перед генерацией удобно посмотреть:

  • правильно ли стоят локти и колени;
  • не перепутаны ли левая и правая стороны;
  • не соединены ли точки разных людей;
  • хватает ли места над головой и по краям;
  • совпадает ли соотношение сторон карты с будущей обложкой.

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

Как подобрать силу контроля

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

Слишком слабое влияние позволяет модели отойти от карты. Слишком сильное может добавить искажения или помешать остальным условиям. Увеличение силы не исправляет ошибочно нарисованную руку.

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

Где возникают ошибки

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

Мелкие кисти и лица. Если деталей мало, дополнительные точки могут скорее запутать генерацию. Иногда лучше отключить их или поправить карту вручную.

Необычный ракурс. Плоская карта не полностью описывает глубину и поворот тела. При необходимости её дополняют совместимым контролем глубины или другим референсом.

Несколько людей. Детектор может извлечь несколько фигур, но генератор не обязан безошибочно сохранить их число и связи. Особенно сложны объятия, пересечения рук и тесная группа.

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

OpenPose и DWPose

DWPose — отдельный подход к оценке позы, а не новая версия самого OpenPose. Его используют, в частности, для получения карт тела, лица и кистей в задачах генерации.

Сравнивать детекторы полезно на собственных изображениях: ракурс, размер человека, перекрытия и реализация влияют на результат. Важен и формат выходной карты — её должен понимать выбранный модуль контроля.

С чем ещё путают

Карта глубины описывает взаимное расположение поверхностей по глубине, но не обязательно даёт точную трёхмерную модель.

Canny выделяет контуры изображения. Он может удерживать края одежды и предметов, которых нет на карте позы.

Сегментация делит изображение на области, например человека и фон.

IP-Adapter и LoRA могут помогать с внешностью или стилем. Это другие способы управления; они не заменяют карту позы во всех задачах.

Частые вопросы

Можно ли получить то же лицо?

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

Можно ли нарисовать позу вручную?

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

Что делать с пропущенной рукой?

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

Подходит ли OpenPose для животных?

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

Можно ли использовать в коммерческом проекте?

У детектора, весов ControlNet и основной модели могут быть разные лицензии. Их проверяют отдельно; название OpenPose не служит общим разрешением для всей сборки.

Главное

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

Источники