Создаем дизайн в любом стиле без промта с помощью IP-Adapter
Всем привет! Меня зовут Кирилл Песков, я руковожу дизайном в студии компьютерной графики ITSALIVE и постоянно ищу новые практические применения для нейросетей. Сегодня расскажу о новой функции Stable Diffusion, которая позволяет генерировать изображения в любом стиле без прописывая промта. Речь пойдет про IP-адаптер.
Это новая модель ControlNet, которая преобразует референсное изображение в материал для генерации. В отличие от похожих функций в Midjourney и Stable Diffusion, этот алгоритм работает невероятно точно. Он снимает стиль с заданной картинки и смешивает его с другим изображением, промтом или картой глубины. С его помощью можно создавать стилизованные портреты, пейзажи и композиции, подбирая их внешний вид простым переключением картинки-референса.
У IP-адаптера нет аналогов — сейчас это лучший способ контролировать стиль вашей генерации, что я и докажу в этой статье.
Установка
Для начала посмотрите видео про то, как установить Stable Diffusion.
После установки нужно перейти в Extensions. Нажмите Load from во вкладке Available — у вас загрузится весь список тех настроек Stable Diffusion, который вы можете установить.
В Extensions пишем СontrolNet и получаем sd-webui-controlnet. Дальше нужно нажать Install и нажать Apply and restore UI.
С этого момента у вас в Stable Diffusion появляется ControlNet, который можно развернуть и посмотреть настройки.
Вот так выглядят настройки ControlNet в Stable Diffusion
Теперь переходим по ссылке на Hugging Face и скачиваем четыре модели IP-Adaptor.
После этого перенесите их в папку вашего Stable Diffusion/Models/ControlNet и вставляйте в него скачанные файлы. Важный нюанс — файлы сохранятся в формате bin и нужно будет каждый из них переименовать в pth.
После переименования перезагрузите StableDiffusion. В окне ControlNet появится IP-адаптер. При первой генерации Stable сам докачает препроцессор clip-view, который нужен для работы модели. Дождитесь загрузки в консоли, и начинайте творить.
После установки можно начинать тестировать работу IP-адаптера с разными задачами:
Генерация по картинке-референсу
Замена деталей на портретах
Логотип в любом стиле и объемные фигуры
В статье я показываю основные настройки. Разбор всех параметров — negative prompt, control weight — можно посмотреть в моем YouTube-видео.
Генерация по картинке-референсу
Если запустить генерацию Stable Diffusion с пустым окном промта он просто сгенерирует портрет девушки, либо какой-нибудь пейзаж. Давайте оставим промт пустым, перейдем в ControlNet и загрузим любую абстрактную картинку в качестве референса IP-Adapter.
Вот наш референс (Estilo3D, Behance)
Выбираем IP-адаптер в режиме Plus и нажимаем Generate.
Произошла магия: IP-адаптер повторил стиль, тени и цвет с референса без прописанного промта
Фишка: если в окно txt2img начать прописывать промт, то адаптер будет вмешивать запрос в уже стилизованное изображение. Например, пропишем промт «car». И вот, что получилось сгенерить:
IP-адаптер создал машину из тех же материалов, которые были в исходной картинке
То же самое можно сделать и с другими стилями. Объединим нашу машину с вот такими картинками:
Gabriel Silveira (Behance) / Freepik Stock
Получились машины с соответствующей стилизацией и фоном:
Stable даже подбирает эстетически подходящую модель машины. Сложно представить сколько времени ушло бы на сочинение соответствующего промта. IP-Adapter упрощает жизнь дизайнерам: начиная работу, мыдержим в голове визуальные образы, поэтому гораздо проще подобрать референс, чем текстовое описание.
Мы поговорили про базовое применение IP-адаптера. Но его возможности гораздо шире — давайте посмотрим, как он работает с портретами.
Замена деталей на портретах
Поиграем со сменой причесок. Переходим в img2img, Берем картинку с парнем, рисуем ему маску для inpaint.
После этого подгружаем в IP-адаптер изображение другого человека с прической, которую хотим увидеть в результате. Например, персонажа из нашего синематика «Истокъ»:
Включаем IP-Адаптер, жмем Generate и смотрим, что получается:
У парня с первой картинки изменилась прическа — стала такой же, как у Кости
По английски эта прическа называется «bob cut», но введя подобный промт, я бы вряд ли получил точную длину и оттенок. Вот так IP-адаптер облегчает мне работу.
С длинными волосами адаптер тоже срабатывает хорошо. Поменяем парню прическу еще раз. Добавляем в ControlNet изображение с длинноволосой девушкой:
Чтобы усилить точность генерации, поставьте ту же самую картинку с парнем в ControlNet пре-процессор Depth. Тогда он будет рисовать новые волосы в прежних «границах» головы.
Есть несостыковки в цвете кожи, но это легко исправляется в Photoshop. Зато мы получаем точно такую же форму пробора и линию роста волос. Эти вещи гораздо сложнее повторить методами классической ретуши.
Этому же парню мы можем нарисовать татуировки. Для этого надо вставить в ControlNet фото человека с ними.
Рисуем маску на руках исходного парня. Нажимаем Generate и смотрим, что выдаст IP-адаптер:
Мы сходу получаем хороший результат — татуировки, схожие с референсом
Алгоритм повторил азиатские мотивы, черно-белую стилистику и даже ширину просветов между паттернами татуировки.
Но главное преимущество IP-Adapter раскрывается, когда мы начинаем комбинировать его с другими препроцессорами: например, depth или cany. Это позволяет делать арты с текстом и логотипом. Давайте посмотрим, как это работает.
Логотип в любом стиле и объемные фигуры
Для примера возьмем логотип нашей студии, ставим препроцессор Cany в ControlNet. Stable Diffusion будет использовать полученный контур для генерации.
Добавляем референс в IP-Adapter. Вот, что у нас получается после того, как нажали на Generate — IP-адаптер точно повторил графику с референса, который был на фоне, и точно вписал туда логотип:
Вы можете получить логотип, собранный из любого материала и «окрашенный» в любой стиль. Этого бы не получилось сделать никакими другими инструментами. Самое интересное, что это работает даже со сложными образами, допустим я хочу получить лого, вырезанное на мыле как в «Бойцовском клубе».
IP-Adapter повторил форму, детали и даже блики. Мы получаем изображение отличного качества, которое сложно сгенерировать стандартным методом с промтами.
Так же круто IP-адаптер работает и с объемными фигурами. Для примера создал такую depth-карту:
Ее можно создать в любой 3D-программе
В Control Type нужно поставить depth и убрать препроцессор, потому что depth-карта у нас уже есть. Добавляем стиль — для этого использую этот арт:
Генерим и получаем такой результат:
Комментарии излишни, это шикарно
Чтобы форма объемов не терялась, нужно увеличить Control Weigh в depth нашего изначального инпута.
Перегенерили с новыми настройками, и вот результат:
Вы можете кастомизировать настройки и играть с препроцессорами, чтобы влиять на результат. Но практически всегда сгенеренная картика получается качественной с первого раза и без особых усилий.
IP-адаптер позволяет работать не только с формами логотипов или текста — можно также стилизовать фотографии, лица знаменитостей и вообще все, что может прийти в голову. Только представьте какие это дает возможности.
Обычно, выполняя дизайн-задачу, мы идем от старта к финальной точке и выстраиваем шаги на пути. Но с нейросетями так не работает, результаты генераций настолько непредсказуемы, что «шаги» могут увести нас слишком далеко от цели. В результате, большинство text-to-image сеток до сих пор подходят только для творческого поиска и создания артов.
При помощи нововведений подобных IP-Adapter процесс становится более контролируемым, мы открываем новую главу использования нейросетей в коммерческой работе и прикладных задачах.
Посмотрите мой видео-обзор IP-адаптера: там превращаем фото в картину стиля Ар-Нуво, делаем карандашный постер из Mortal Kombat и кое-что еще.
А как думаете вы, нейросети заменят дизайнеров или помогут в нашей работе?