ControlNet
Семейство сетей условного контроля для диффузионных моделей. Позволяет управлять структурой генерации Stable Diffusion с помощью дополнительного входа: контуров, карты глубины, скелета позы, сегментации. Опубликован Лвмином Чжаном (Stanford) в феврале 2023 года.
Определение ControlNet
ControlNet — архитектурное расширение для диффузионных моделей, paper «Adding Conditional Control to Text-to-Image Diffusion Models» (Zhang, Rao, Agrawala — Stanford, февраль 2023, arXiv:2302.05543). До ControlNet единственным способом управлять Stable Diffusion был текстовый промпт — повторяемой композиции добиться было невозможно. ControlNet решил проблему: рядом с базовой моделью обучается «двойник» энкодера, который принимает дополнительный кондишн (контуры, карту глубины) и инжектит его в U-Net через zero-convolution слои.
Трюк архитектуры: копия энкодера SD дублируется, исходные веса замораживаются, обучаются только новые блоки и zero-conv. Это гарантирует, что до начала обучения ControlNet никак не влияет на базовую модель — можно адаптировать SD под десятки условий, не ломая её способностей.
Препроцессоры и режимы применения
ControlNet — это всегда пара: препроцессор + модель. Препроцессор превращает фото в карту условия, модель использует её при генерации. Основные варианты:
- Canny — детектор контуров OpenCV. Жёстко сохраняет композицию, идеально для «перекраски» в другой стиль.
- Depth — карта глубины через MiDaS / Marigold. Передаёт объём без жёстких контуров — для интерьеров и архитектуры.
- OpenPose — скелет человека (18–25 точек). Сохраняет позу, оставляет свободу телосложению и фону.
- MLSD — детектор прямых линий, для архитектуры.
- Lineart — линейная графика, тоньше Canny, хорошо для аниме.
- Tile — доуточнение деталей при апскейле.
Параметр control weight регулирует силу (0.5–1.5 типично). Можно подключать несколько ControlNet одновременно: OpenPose + Depth + Canny для жёсткого копирования сцены при смене стиля.
Связанные концепции
ControlNet работает поверх Stable Diffusion 1.5 и SDXL — для Flux.1 свои аналоги (X-Labs, InstantX). Часто комбинируется с LoRA (структура + стиль) и IP-Adapter (структура + reference). Препроцессоры внутри — классические алгоритмы детекции границ и семантической сегментации. Альтернатива самостоятельной сборке pipeline — prompt-edit с маской в Panda AI на базе nano-banana.
Частые вопросы
Чем ControlNet отличается от img2img?
В img2img модель видит исходник как зашумлённый старт — итог «вдохновлённый» оригиналом, композиция плывёт. ControlNet передаёт явную карту условия, которую модель обязана соблюдать на каждом шаге — поза и геометрия сохраняются точно, меняется стиль и фактура.
Какой препроцессор выбрать для копирования позы?
OpenPose — если важна только поза. Canny + Depth — чтобы сохранить ещё и силуэт одежды, причёску. Lineart для аниме. Для интерьера/экстерьера — Depth + MLSD.
Можно ли использовать ControlNet в Midjourney?
Нет — это опенсорс-расширение для моделей с открытыми весами. У Midjourney есть --cref и --sref, но это эмбеддинги без жёсткого следования структуре.
Сколько ControlNet можно подключить?
Технически — до 5–10, но каждая удваивает время инференса. На практике используют 1–3: OpenPose + Canny для портретов, Depth + MLSD для интерьеров, Tile + Lineart для апскейла иллюстраций.