Бывалые пользователи Stable Diffusion знают, как сложно создать именно ту композицию, которую вы хотите. Изображения получаются какими-то… рандомными. Лучший способ — нагенерить кучу картинок, а потом выбрать из всего числа наиболее подходящую.
Благодаря ControlNet наконец-то есть возможность точно контролировать, где находятся объекты и как они выглядят! Сегодня расскажем об этой фиче.
Пару слов о…
ControlNet — расширение для Stable Diffusion (почитать о ней можно здесь), которое дает дополнительный уровень контроля при обработке изображений img2img. Основная идея заключается в использовании дополнительных входных условий, которые указывают модели, что именно нужно делать.
Теперь можно управлять итоговыми данными для дальнейшего соответствия исходному изображению, что делает нейросеть более универсальной и применимой для различных случаев использования.
Кстати, сделать нейросети более универсальными поможет онлайн-практикум «Нейросети для жизни». Расскажем, как ИИ может облегчить жизнь и стать неотъемлемым инструментом в быту!

- Прямо в эфире решим типичные задачи программиста только с помощью ChatGPT
- Возможности Python — расскажем что можно делать и сколько на этом зарабатывать?
- Что ждет рынок программирования и почему мы решили сюда пойти
Что умеет
ControlNet умеет генерировать картинки благодаря:
1. Обнаружению краев
Здесь на первый план выходит детектор Canny, который использует дополнительное входное изображение и распознает его черты. Рисунок, содержащий обнаруженные края, превращается в «control map» (контрольная карта). Он загружается в модель ControlNet в качестве дополнительного условия к текстовой подсказке.
Процесс извлечения конкретной информации (в данном случае краев) из входного изображения называется «preprocessing» (предварительная обработка).
2. Определению позы человека
Да, обнаружение краев — не единственный способ предварительной обработки изображения. Слышали что-нибудь об OpenPose?
Это первая многопользовательская система, работающая в онлайн-режиме, которая совместно обнаруживает ключевые точки человеческого тела, рук, лица и ног (всего 135 таких ключевых точек) на разных картинках.
Ключевые точки экспортируются из начального рисунка благодаря OpenPose и сейвятся (сохраняются) в виде все той же контрольной карты, содержащей положения ключевых точек. Затем она вместе с текстовой подсказкой загружается в Stable Diffusion в качестве дополнительного условия. Картинка формируется на основе этих двух параметров.
В чем разница между Canny и OpenPose
Canny выделяет края как объекта, так и фона. Это позволяет более точно передать обстановку. Видно, что танцующий мужчина превратился в женщину, но контур, прическа и цвет кожи сохранились.
OpenPose же определяет только ключевые точки человека, такие как положение головы, рук и т.д. Генерация изображений происходит более свободно, но с соблюдением исходной позы.
OpenPose сгенерировал изображение прыгающей женщины с левой ногой, направленной вбок, что отличается от исходного изображения и от изображения в примере Canny. Причина в том, что обнаружение ключевых точек OpenPose не определяет ориентацию ног.
Напоследок
В целом, расширение дает гораздо лучшие результаты, чем исходный img2img, и его также можно использовать через раздел text2img.
На самом деле, в зависимости от того, где использовать ControlNet — в text2img или в img2img, — результаты могут значительно отличаться.
Использование img2img в ControlNet вместе с исходным методом позволит копировать или совмещать оригинальное изображение с большей точностью, а реализация новых идей и проектов будет легче с моделью text2img.
- Освой Python и нейросети и узнай, как гарантированно получить первые 10 заказов
- УЧАСТВОВАТЬ ЗА 0 РУБ.
- Создай и прокачай собственного чат-бота
- Подарим подборку бесплатных инструментов для написания кода