~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 для закриття

Введіть запит для миттєвого пошуку по всіх сторінках курсів та уроків.