ControlNet у ComfyUI: поза, глибина і контури
Промптом позу не поясниш - покажи моделі скелет
ControlNet у ComfyUI простими словами: pose, depth, canny і scribble, навіщо потрібен препроцесор та нода Apply ControlNet і як тримати позу та композицію під контролем.
Що таке ControlNet простими словами
Уяви, що замовляєш портрет по телефону. Кажеш художнику: «намалюй дівчину в червоному пальті на тлі міста». Художник тямущий, але малює по-своєму. Поза не та. Рука не там. Голова повернута кудись убік. І ти нічого не можеш вдіяти - словами позу не передаси. Слів просто не вистачає.
А тепер ти на додачу до слів надсилаєш схему: ось тут стоїть людина, ось так підняті руки, ось лінія горизонту. Це і є ControlNet. Текст відповідає на питання «що намалювати». ControlNet - на питання «де це поставити і в якій позі».
Навіщо ControlNet вайбкодеру
Ти збираєш генерацію з нод. І рано чи пізно впрешся в стіну. Картинка гарна, але поза не та. Або персонаж стоїть не там. Або ти хочеш перетворити свій начерк на чистий арт. Промптом це не лікується - скільки не пиши «руки вгору», модель усе одно вирішує за тебе.
Ось що ControlNet дає, а промпт - ні:
- повторити позу з референсу - свого фото, скриншота, чужої картинки;
- зберегти композицію та обʼєм сцени, змінивши лише стиль;
- перетворити кривий начерк на чистий арт;
- зробити серію картинок в одному й тому самому компонуванні.
Без ControlNet ти умовляєш модель словами. З ControlNet - показуєш. Це різниця між «спробуй вгадати» і «роби ось так».
Як працює ControlNet: препроцесор і Apply ControlNet
Під капотом усе у два кроки. Спочатку референс треба перекласти мовою схем. Потім цю схему підмішати в генерацію. Розберемо обидва.
Препроцесор: перекладач фото на схему
Препроцесор Препроцесор (preprocessor) - нода, яка бере звичайну картинку і витягує з неї лише потрібний шар: скелет пози, карту глибини або контури. Усе інше викидає. - це фільтр. Даєш йому фото людини - він повертає не фото, а скелет із паличок (режим pose). Або чорно-білу карту глибини, де ближнє світле, а дальнє темне (depth). Або самі контури, як у розмальовці (canny). Усе зайве він відрізає. Лишається чиста схема і нічого більше.
Apply ControlNet: де схема зустрічається з промптом
Нода Apply ControlNet - те саме місце, де схема стикується з твоїм текстом. Подаєш у неї три речі: завантажену модель ControlNet (окремий файл під потрібний тип), картинку-схему від препроцесора і свій кондишенінг (той самий промпт після енкодера). На виході - той самий промпт, але тепер «привʼязаний» до схеми.
Чотири режими ControlNet: pose, depth, canny, scribble
Режимів багато, але новачку вистачить чотирьох. Думай про них як про чотири способи «обвести» референс - кожен під свою задачу.
Pose (OpenPose): повторюємо позу людини
Препроцесор - його часто звуть OpenPose - знаходить на фото людину і малює її скелет із точок і паличок: плечі, лікті, коліна. Далі модель ставить твого персонажа точно в цю позу. Колір волосся, одяг, фон задаєш промптом - скелет тримає лише позу, і все. Бувають розширені версії: ловлять ще пальці й міміку обличчя.
Depth: зберігаємо обʼєм і плани сцени
Карта глибини Карта глибини (depth map) - чорно-біла картинка, де яскравість показує відстань: що ближче до камери - світліше, що далі - темніше. підказує моделі, де у сцени передній план, а де задній. Зручно, коли хочеш зберегти розташування й обʼєм кімнати чи пейзажу, а стиль змінити повністю. Геометрія на місці, наповнення - нове.
Canny: тримаємо чіткі контури
Canny лишає від картинки лише різкі лінії-контури - як у розмальовці. Це найсуворіший режим: модель майже точнісінько повторює обриси обʼєктів. Те що треба, коли потрібно перефарбувати чи перемалювати в іншому стилі, але форму чіпати не можна.
Scribble: оживляємо начерк від руки
Scribble розуміє грубі кривульки. Намалював кружечок-голову, палички-руки, будиночок на тлі - модель добудує з цього нормальну картинку. Найвільніший режим: ти задаєш загальну ідею, решту бере на себе модель.
Коли ControlNet потрібен, а коли тільки заважає
- Потрібна конкретна поза - повторити з фото чи референсу.
- Хочеш зберегти композицію сцени, змінивши лише стиль.
- Є начерк, який треба довести до чистого арту.
- Робиш серію картинок в одному компонуванні.
- Тобі байдуже, де і як - вистачить звичайного промпта.
- Потрібна повна свобода моделі - схема лише звʼяже руки.
- Просто хочеш випадкових варіантів для натхнення.
- Немає відповідного референсу - схему банально немає з чого зробити.
Приклад: задаємо позу через ControlNet по кроках
Тобі потрібен персонаж в епічній позі: рука витягнута вперед, ніби кастує закляття. Пишеш промпт удвадцяте - модель уперто малює руки по швах. Знайомо? Ось тут ControlNet і виручає.
Як це зібрати, крок за кроком:
- Знайди або зроби фото-референс із потрібною позою - згодиться і власне селфі в цій позі.
- Постав через ComfyUI Manager набір препроцесорів ControlNet, якщо його ще немає.
- Завантаж модель ControlNet під тип pose і поклади в папку моделей ControlNet.
- Завантаж референс нодою завантаження картинки.
- Прожени його через препроцесор пози - на виході буде скелет із точок.
- Додай ноду Apply ControlNet і подай у неї три входи: модель ControlNet, скелет і свій промпт.
- Далі як завжди: семплер, декод, збереження.
- Поза тримається занадто жорстко чи, навпаки, ледь-ледь? Крути параметр сили.
Часті помилки новачка в ControlNet
- Згодував препроцесор не тій моделі. Контури в depth-модель - і на виході каша. Тип до типу, завжди.
- Забув про сам препроцесор. Подав в Apply ControlNet сире фото замість схеми - модель не розуміє, чого від неї хочуть.
- Не поставив набір препроцесорів. Ноди просто не зʼявляться в пошуку. Це не баг - це «не встановив».
- Вічно задираєш силу на максимум. Занадто жорстка схема душить модель і псує картинку. Спробуй послабити.
- Чекаєш дива від мутного скелета. Поза на референсі нечитабельна - препроцесор видасть кривий скелет, і поза вийде крива.
- Думаєш, що ControlNet малює за тебе. Він тримає геометрію. Зміст і стиль - як і раніше на промпті.
TL;DR - если коротко
- ControlNet - повідець для генерації: словами ти кажеш «що», а картинкою-схемою - «де і в якій позі».
- Препроцесор витягує з фото схему - скелет, глибину або контури. Apply ControlNet підмішує її в генерацію.
- Чотири робочі режими: pose (поза), depth (обʼєм і плани), canny (чіткі контури), scribble (начерк від руки).
- Залізне правило: препроцесор і модель ControlNet мають бути одного типу - canny до canny, depth до depth.
- Сила (strength) - натяг повідця: вище - схема тримає жорсткіше, нижче - моделі більше волі.
- ControlNet не малює за тебе. Він тримає геометрію, а зміст і стиль - це все ще робота промпта.