~9 мин

ControlNet в ComfyUI: поза, глубина и контуры

Промптом позу не объяснишь - покажи модели скелет

ControlNet в ComfyUI простыми словами: pose, depth, canny и scribble, зачем нужен препроцессор и нода Apply ControlNet и как держать позу и композицию под контролем.

Что такое ControlNet простыми словами

Представь, что заказываешь портрет по телефону. Говоришь художнику: «нарисуй девушку в красном пальто на фоне города». Художник толковый, но рисует по-своему. Поза не та. Рука не там. Голова повёрнута куда-то вбок. И ты ничего не можешь сделать - словами позу не передашь. Слов просто не хватает.

А теперь ты вдобавок к словам присылаешь схему: вот тут стоит человек, вот так подняты руки, вот линия горизонта. Это и есть ControlNet. Текст отвечает на вопрос «что нарисовать». ControlNet - на вопрос «где это поставить и в какой позе».

Слева текстовый промпт даёт хаотичную позу, справа тот же промпт плюс скелет-схема даёт точную позу
Слева - только слова. Справа - слова плюс схема ControlNet. Поза под контролем.

Зачем ControlNet вайбкодеру

Ты собираешь генерацию из нод. И рано или поздно упрёшься в стену. Картинка красивая, но поза не та. Или персонаж стоит не там. Или ты хочешь превратить свой набросок в чистый арт. Промптом это не лечится - сколько ни пиши «руки вверх», модель всё равно решает за тебя.

Вот что ControlNet даёт, а промпт - нет:

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

Без ControlNet ты уговариваешь модель словами. С ControlNet - показываешь. Это разница между «попробуй угадать» и «делай вот так».

Как работает ControlNet: препроцессор и Apply ControlNet

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

Препроцессор: переводчик фото в схему

Препроцессор - это фильтр. Даёшь ему фото человека - он возвращает не фото, а скелет из палочек (режим pose). Или чёрно-белую карту глубины, где ближнее светлое, а дальнее тёмное (depth). Или одни контуры, как в раскраске (canny). Всё лишнее он отрезает. Остаётся чистая схема и ничего больше.

Apply ControlNet: где схема встречается с промптом

Нода Apply ControlNet - то самое место, где схема стыкуется с твоим текстом. Подаёшь в неё три вещи: загруженную модель ControlNet (отдельный файл под нужный тип), картинку-схему от препроцессора и свой кондишенинг (тот самый промпт после энкодера). На выходе - тот же промпт, но теперь «привязанный» к схеме.

Четыре режима ControlNet: pose, depth, canny, scribble

Режимов много, но новичку хватит четырёх. Думай о них как о четырёх способах «обвести» референс - каждый под свою задачу.

Pose (OpenPose): повторяем позу человека

Препроцессор - его часто зовут OpenPose - находит на фото человека и рисует его скелет из точек и палочек: плечи, локти, колени. Дальше модель ставит твоего персонажа ровно в эту позу. Цвет волос, одежду, фон задаёшь промптом - скелет держит только позу, и всё. Бывают расширенные версии: ловят ещё пальцы и мимику лица.

Depth: сохраняем объём и планы сцены

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

Canny: держим чёткие контуры

Canny оставляет от картинки только резкие линии-контуры - как в раскраске. Это самый строгий режим: модель почти точь-в-точь повторяет очертания объектов. То, что надо, когда нужно перекрасить или перерисовать в другом стиле, но форму трогать нельзя.

Scribble: оживляем набросок от руки

Scribble понимает грубые каракули. Нарисовал кружок-голову, палочки-руки, домик на фоне - модель достроит из этого нормальную картинку. Самый свободный режим: ты задаёшь общую идею, остальное берёт на себя модель.

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

Когда ControlNet нужен, а когда только мешает

ControlNet тут в тему
  • Нужна конкретная поза - повторить с фото или референса.
  • Хочешь сохранить композицию сцены, поменяв только стиль.
  • Есть набросок, который надо довести до чистого арта.
  • Делаешь серию картинок в одной компоновке.
ControlNet тут лишний
  • Тебе всё равно, где и как - хватит обычного промпта.
  • Нужна полная свобода модели - схема будет только связывать руки.
  • Просто хочешь случайных вариантов для вдохновения.
  • Нет подходящего референса - схему банально не из чего сделать.

Пример: задаём позу через ControlNet по шагам

Тебе нужен персонаж в эпичной позе: рука вытянута вперёд, будто кастует заклинание. Пишешь промпт в двадцатый раз - модель упрямо рисует руки по швам. Знакомо? Вот тут ControlNet и выручает.

Как это собрать, шаг за шагом:

Как добавить ControlNet по позе - по шагам
  1. Найди или сделай фото-референс с нужной позой - сгодится и своё селфи в этой позе.
  2. Поставь через ComfyUI Manager набор препроцессоров ControlNet, если его ещё нет.
  3. Скачай модель ControlNet под тип pose и положи в папку моделей ControlNet.
  4. Загрузи референс нодой загрузки картинки.
  5. Прогони его через препроцессор позы - на выходе будет скелет из точек.
  6. Добавь ноду Apply ControlNet и подай в неё три входа: модель ControlNet, скелет и свой промпт.
  7. Дальше как обычно: сэмплер, декод, сохранение.
  8. Поза держится слишком жёстко или, наоборот, еле-еле? Крути параметр силы.

Частые ошибки новичка в ControlNet

  • Скормил схему не той модели. Контуры в depth-модель - и на выходе каша. Тип к типу, всегда.
  • Забыл про сам препроцессор. Подал в Apply ControlNet сырое фото вместо схемы - модель не понимает, чего от неё хотят.
  • Не поставил набор препроцессоров. Ноды просто не появятся в поиске. Это не баг - это «не установил».
  • Вечно задираешь силу на максимум. Слишком жёсткая схема душит модель и портит картинку. Попробуй ослабить.
  • Ждёшь чуда от мутного скелета. Поза на референсе нечитаемая - препроцессор выдаст кривой скелет, и поза выйдет кривая.
  • Думаешь, что ControlNet рисует за тебя. Он держит геометрию. Содержание и стиль - по-прежнему на промпте.

TL;DR - если коротко

  • ControlNet - поводок для генерации: словами ты говоришь «что», а картинкой-схемой - «где и в какой позе».
  • Препроцессор вытягивает из фото схему - скелет, глубину или контуры. Apply ControlNet подмешивает её в генерацию.
  • Четыре рабочих режима: pose (поза), depth (объём и планы), canny (чёткие контуры), scribble (набросок от руки).
  • Железное правило: препроцессор и модель ControlNet должны быть одного типа - canny к canny, depth к depth.
  • Сила (strength) - натяжение поводка: выше - схема держит жёстче, ниже - модели больше воли.
  • ControlNet не рисует за тебя. Он держит геометрию, а содержание и стиль - всё ещё работа промпта.

Поиск по вики

Нажмите Esc для закрытия

Введите запрос для мгновенного поиска по всем страницам курсов и уроков.