ControlNet и IP-Adapter — две технологии управления диффузионной генерацией: первая фиксирует структуру кадра — позу, глубину, контуры, раскладку, вторая переносит стиль и персонажа с референсного изображения без обучения. Практическая роль: они превращают генератор картинок из «игры в промпты» в инструмент с воспроизводимым результатом.
ControlNet: контроль структурой при сохранении промпта
Механика — обучаемая надстройка над замороженной базой. ControlNet — это копия части сети генерации, которая читает карту условия (карту глубины, скелет позы, контуры) и подмешивает поправки в работу основной модели. База не меняется, поэтому промпт и стиль продолжают работать: структуру кадра задаёт карта, а фактуру, свет и настроение — текст. Сама механика генерации — итеративное расшумление — разобрана в статье про диффузионные модели.
Каждый тип условия — отдельная обученная модель. Глубина держит ракурс и объём сцены; скелетные позы — положение тела без привязки к одежде и фону; контурные карты (canny, lineart) — точную геометрию объектов, включая скетчи; сегментационные карты — раскладку областей «здесь лицо, здесь фон» без фиксации деталей. Карту условия готовит препроцессор: детектор позы или оценка глубины извлекают её из обычного фото.
Вес контроля — главный регулятор. Типичный диапазон 0,4–0,8: единица даёт жёсткое следование карте, меньшие значения оставляют модели свободу дорисовки. Многие интерфейсы позволяют задавать вес на диапазоне шагов — например, сильный контроль в начале генерации и мягкий в конце, когда прорисовываются детали.
Стек из нескольких условий работает, но конфликтует. Поза плюс глубина — частая пара; когда карты противоречат друг другу, модель выбирает что-то одно или выдаёт артефакты. Стек имеет смысл, когда условия отвечают за разные аспекты кадра.
IP-Adapter: перенос стиля и персонажа без обучения
Механика — картинка как часть промпта. IP-Adapter пропускает референсное изображение через визуальный энкодер и подмешивает полученные векторы в тот же механизм внимания, через который модель читает текст. Результат: референс влияет на генерацию как очень весомая часть промпта, без дообучения базовой модели и без обучения под каждого нового персонажа.
Устойчиво переносится стиль, а не идентичность. Палитра, освещение, манера, фактура материала переносятся стабильно. Точное сохранение лица и персонажа — нет: без дополнительных механизмов распознавания лиц IP-Adapter даёт «похоже», а не «тот же человек»; для строгой идентичности есть специализированные расширения, у которых свои ограничения и своя цена.
Референс тянет и композицию. Вместе со стилем модель часто копирует раскладку референса: позу, положение объектов, кадрирование. Это полезно, когда нужна серия в одной композиции, и мешает, когда композицию задаёте отдельно, — в этом случае вес снижают или отключают часть слоёв референса в расширенных реализациях.
Рабочий вес — 0,3–0,8. Ниже — референс становится намёком, выше — генерация превращается в вариацию референса. Подбор аналогичен guidance: фиксируете всё остальное и двигаете один параметр.
Где уместно: типовые пайплайны
Фото товара → единый стиль каталога. Съёмка с телефона → контурная карта или карта глубины → генерация с промптом каталога: фон, свет и стиль приводятся к единому виду, а геометрия товара остаётся от исходного кадра. Самый рабочий сценарий для электронной коммерции: не «сгенерировать товар» (базовая модель его не знает), а «переодеть реальный кадр в фирменный стиль».
Скетч → рендер. Линии дизайнера → lineart-карта → фотореалистичный или стилизованный рендер с сохранением геометрии. Работает в обе стороны: ControlNet честно воспроизводит и кривизну скетча, поэтому качество исходника ограничивает качество результата.
Персонаж в сериях. IP-Adapter с референсом маскота плюс контроль позы: персонаж в разных сценах и положениях. Для строгого соответствия бренду персонажа всё же дообучают отдельной методикой, а IP-Adapter используют для быстрых итераций.
Серия в одном стиле. Один референс стиля на десятки генераций — быстрее и стабильнее, чем описывать стиль словами в каждом промпте и ловить дрейф формулировок.
Чем платим и когда проще обычный промпт
Цена — время шага и память. Каждый ControlNet добавляет вычисления на каждом шаге: генерация дорожает обычно на десятки процентов, стек из двух условий — кратно. Файл весов каждой модели условия занимает от сотен мегабайт до полутора гигабайт. IP-Adapter дешевле по времени, но добавляет свой визуальный энкодер.
Пере-контроль. При большом весе условие побеждает промпт: деталь, которой нет в карте, но которая упомянута в тексте, модель дорисовать не может. Отдельный класс проблем — грязные карты: неточный скелет, шумные контуры и ошибки оценки глубины копируются в результат.
Иногда дешевле промпт. Если поза и раскладка не критичны, а нужен просто хороший кадр — проще сгенерировать десяток вариантов и выбрать. Готовить карту условия ради единичной картинки дороже, чем перегенерировать. Обе технологии окупаются серийностью: настроенный пайплайн гонится на потоке.
Типичные ошибки
- Вес 1,0 по умолчанию. Жёсткое следование убивает адаптацию: складки, свет и мелкие объекты конфликтуют с картой; начинают с 0,5–0,7 и двигают по результату.
- Конфликт промпта и карты. «Человек сидит» в промпте при стоячей позе на карте — модель выдаёт смесь; текст должен не противоречить условию, а дополнять его.
- Карта из пересжатого исходника. Контурная карта с маленького фото теряет линии, оценка глубины с размытого путает планы; качество пайплайна упирается в качество препроцессора.
- Ожидание точной копии лица от IP-Adapter. Без механизмов распознавания лиц получается стилизованная похожесть; юридически значимую идентичность так не получают.
- Попытка исправить кривой скетч. ControlNet не улучшает геометрию — он её копирует; сначала правят исходник, потом генерируют.
Частые вопросы
Чем IP-Adapter отличается от LoRA?
LoRA — дообучение весов на датасете: дольше готовить, но персонаж держится стабильнее. IP-Adapter — условие на инференсе: ничего не обучаем, референс подключается за минуты, но идентичность слабее. На потоке их комбинируют.
Можно ли использовать несколько ControlNet одновременно?
Да, обычно до двух-трёх. Условия должны отвечать за разные аспекты: поза плюс глубина работают, два условия на одну и ту же геометрию — конфликт.
Почему генерация «прилипла» к скетчу и ничего не добавляет?
Высокий вес плюс жёсткий тип условия: модель просто закрашивает вашу карту. Снизьте вес, смените lineart на глубину или ослабьте контроль на поздних шагах.
Как получить карту условия из обычного фото?
Препроцессорами в интерфейсе генерации: детекторы позы, оценки глубины и выделения контуров работают автоматически. Проверяйте карту глазами до генерации — это дешевле, чем разбирать брак после.
Сколько видеопамяти нужно на пайплайн с ControlNet?
К базе добавьте от половины до полутора гигабайт на каждую активную модель условия плюс память под сами карты; стек из двух условий на крупной базе упирается в 10–12 ГБ.
Когда точно достаточно обычного промпта?
Когда структура кадра не является требованием: подборки, фоны, стоковые иллюстрации. Как только появляется «объект должен стоять так и смотреть туда» — это задача контроля структурой.
Что почитать по теме
- Диффузионные модели — механика генерации, которой управляют эти инструменты;
- LoRA — альтернатива для стабильных персонажей и стилей;
- Апскейл и реставрация — контроль структуры при увеличении разрешения;
- Генерация видео — перенос контроля на кадры;
- Маркировка синтетического контента — при коммерческом использовании результатов.