July 18, 2023

Обзор на ControlNet — контролируемая генерация картинок

Теперь можно детально задать нейросети референс и влиять на процесс генерации. Разберёмся как это работает 👇

Что может ControlNet и из чего она состоит

Для генерации всегда нужна картинка — она выступает как трафарет. Из-за наличия такой «базы» решаются проблемы нейросетей с генерацией групп людей, рук, глаз и других мелких деталей.

Перед генерацией нужно подобрать ту модель, которая лучше всего подходит для задачи, а затем загрузить в нее изображение. Вот какие есть варианты:

Canny

После загрузки изображения нейросеть рисует ее набросок, выделяет очертания объекта и сохраняет мелкие детали. После этого, ControlNet превращает набросок в новую картинку, для которой можно задать параметры с помощью промта.

Например, можно оставить композицию и стилистику оригинальной картинки, но менять детали — лица, цвета или объекты

Пример генерации Canny — модель меняет породу пёсика

MLSD

Удобен для генерации картинок на основе изображений с прямыми линиями: дизайна интерьеров, зданий, улиц.

Пример генерации MLSD — тут меняются цвета интерьера

OpenPose

Отлично работает с людьми на изображениях. При загрузке картинки определяет положение головы, плеч, рук, ног, а потом создаёт «скелет». Его можно редактировать, меняя позу. При этом OpenPose работает не везде. Если на исходной картинке люди перекрывают друг друга, то части тела в скелете исчезают.

Пример генерации OpenPose — модель ориентируется только на позу, можно поменять стиль и любые детали одежды

Depth Map

Подходит для работы с глубиной — задним и передним планом, объёмом объекта

Пример генерации Depth Map

Normal Map

Модель определяет положение объекта в трехмерном пространстве. Подходит для генерации 3D-персонажей или реалистичных картинок.

Привер генерации Normal Map — модель сохраняет объём, выглядит ествественно

Генерация картинки по скетчу

Модель Scribble генерирует картинку по наброску и текстовому описанию. Мы нарисовали лошадь от руки и задали стиль в описании промта:

Пример генерации в разных стилях: аниме, живопись, киберпанк и виде детской игрушки

Как попробовать ControlNet?

Установить ControlNet самостоятельно. Полная версия со всеми моделями скачивается и устанавливается как расширение к основной нейросети Stable Diffusion — всё есть на GitHub. Подходит для тех, у кого есть мощный ПК и минимальные навыки программирования.

Воспользоваться онлайн-инструментами. Урезанные версии ControlNet доступны прямо в браузере — Hugging Face. Отдельно есть модель ScribbleScribble Diffusion. Она генерирует картинки по наброску. Делаете скетч прямо в браузере, прописываете текстовый запрос и нажимаете кнопку «сгенерировать»:

Пример генерации Scribble в бразуере — кот вышел милым и детальным
Лошадь получилась странной, но всё же узнаваемой

Оценка

Нейросеть действительно полезная, качественная и с возможностью сделать результат лучше, если разобраться и научиться. Для каждой модели есть свои настройки, плагины и фишки использования — у сервиса есть активное коммьюнити, которое делится опытом.

Браузерная версия слабее — картинки генерируются по 3-4 минуты, плашки об ошибке выскакивают очень часто, да и сам результат не такой интересный, но как простая альтернатива без скачивания всех расширений — подойдёт.

Мем вместо итога

Еще больше обзоров и новостей в сфере Ai у нас в телеграмм-канале — https://t.me/minchuk_igor