Тонкая настройка: LoRA, ControlNet, textual inversion

Обзорный урок: как «дообучить» или направить модель, не переобучая её целиком.

Тонкая настройка — приёмы, добавляющие модели новые знания или контроль (стиль, персонажа, композицию) без переобучения всей сети с нуля.

Зачем не переобучать всё

Полное обучение Stable Diffusion требует огромных данных и вычислений. К счастью, чтобы научить модель новому стилю или строго задать позу, переучивать её целиком не нужно. Есть лёгкие надстройки — разберём три самые популярные.

LoRA: маленький «плагин» стиля

LoRA добавляет к U-Net небольшие обучаемые «поправки» вместо изменения всех весов. Файл LoRA весит десятки мегабайт (а не гигабайты), но способен научить модель конкретному художественному стилю, персонажу или объекту. Несколько LoRA можно комбинировать и регулировать их силу.

ControlNet: контроль композиции

ControlNet решает другую задачу — не «что», а «как расположено». Вы подаёте модели управляющий вход: контур (карту краёв), скелет позы, карту глубины, набросок — и генерация повторяет эту геометрию, рисуя содержимое по промпту. Так можно жёстко задать позу персонажа или композицию сцены.

ControlNet — управление по карте:
  поза (скелет)   -> та же поза, новый персонаж
  карта краёв     -> та же форма, новый стиль
  карта глубины   -> та же геометрия сцены
  набросок        -> чистовая иллюстрация по эскизу

Textual inversion: новое слово

Textual inversion учит модель новому «понятию» в виде нового токена-эмбеддинга. Показав модели 5–10 картинок объекта, можно получить компактный файл-эмбеддинг и затем вызывать этот объект в промпте по придуманному слову. Сами веса модели при этом не меняются — меняется только «словарь».

Как работает под капотом

Общая идея всех трёх — менять как можно меньше. LoRA добавляет низкоранговые поправки к слоям внимания U-Net. ControlNet — это отдельная копия части U-Net, которая принимает управляющую карту и «вливает» её влияние в основную сеть. Textual inversion вообще не трогает сеть: он оптимизирует лишь новый вектор в пространстве эмбеддингов CLIP. Поэтому такие надстройки быстро обучаются и легко распространяются файлами.

Частые ошибки

  • Путать LoRA и ControlNet. LoRA — про стиль/содержание, ControlNet — про геометрию и позу.
  • Слишком сильная LoRA. На максимуме силы она «съедает» промпт и портит картинку; уменьшайте вес.
  • Ждать, что textual inversion поменяет стиль модели. Он добавляет понятие, а не общий стиль.

Как их комбинируют

На практике эти приёмы не исключают друг друга, а складываются. Типичный продвинутый пайплайн: базовая модель плюс LoRA на нужный стиль плюс ControlNet, задающий позу по референсу, плюс аккуратный промпт. Каждый компонент отвечает за свой аспект: LoRA — за «как выглядит», ControlNet — за «как расположено», промпт — за «что именно». Понимая роль каждого, легко собирать такие связки осознанно, а не наугад.

Главный риск комбинаций — конфликты силы. Слишком мощная LoRA подавит промпт, слишком жёсткий ControlNet не оставит модели свободы и даст неестественную картинку. Поэтому силу каждого компонента регулируют по отдельности, начиная с умеренных значений. Это та же дисциплина «меняй по одному параметру», что и в промптах: она превращает хаотичный подбор в управляемый процесс.

Итог

  • LoRA — лёгкий «плагин» для стиля, персонажа или объекта; маленький файл, регулируемая сила.
  • ControlNet задаёт композицию по управляющей карте (поза, края, глубина).
  • Textual inversion добавляет новое понятие как токен, не меняя веса сети.
Проверьте себя
1. Для чего обычно используют ControlNet?
AЧтобы задать художественный стиль
BЧтобы строго задать композицию или позу по управляющей карте (краям, скелету, глубине)
CЧтобы ускорить VAE
DЧтобы выбрать seed
2. Чем LoRA удобна по сравнению с полным переобучением модели?
AОна требует тех же ресурсов
BЭто маленький файл с поправками, который учит стилю/объекту без переобучения всей сети
CОна удаляет U-Net
DОна работает только с textual inversion