Как быстро заменить фон на изображении с помощью Stable Diffusion и заставить Габена учиться на одни пятерки

Как быстро заменить фон на изображении с помощью Stable Diffusion и заставить Габена учиться на одни пятерки

Что нам понадобится?

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

Немаловажным также является наличие Deliberate inpaint, либо другой Inpaint модели. Именно благодаря ей мы не будем получать лишних голов и рук.

Также нужно поставить расширение depthmap2mask — устанавливается оно через раздел Extensions.

Устанавливаем расширение depthmap2mask
Устанавливаем расширение depthmap2mask

Собственно, это все, нам нужно лишь расширение и автоматик. Не забудьте нажать кнопку Apply and restart UI перед началом работы.

Перейдем к практике

Изначально я нашел Габена на каком-то выступлении в фиолетовых тонах и с микрофоном в руке — не для того ли он у него, чтобы представить Half-life 3? Эх...

Исходник
Исходник

Загрузил короля Game-дева через img2img в Automatic1111 и сразу же выставил Denoising strength на 0, чтобы при работе расширения исходник не менялся. Затем подогнал разрешение генерации под пропорции оригинала и открыл само расширение в разделе Scripts. Модель создания карты глубины нужно скачать самую первую — dpt_beit_large_512.

Также поставьте галочку Invert DepthMap, чтобы главный объект закрасился черным и не менялся в последствии.

Настройки для создания маски
Настройки для создания маски

Жмем Generate и ожидаем загрузки модели генерации маски. У меня получилась вот такая:

Полученная маска
Полученная маска

Далее переносимся во вкладку Inpaint upload, где в верхнюю часть загружаем наш исходник, а в нижнюю — маску.

В поле для промпта уже можем вводить описание для желаемого фона, а также менять Denoising strength на 0.75. Но не забывайте, что у вас должна быть Inpaint модель.

Скрипт можно отключить, он нам больше не понадобится.

Расположение исходника и маски
Расположение исходника и маски

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

Лайфхаки и волшебные таблетки

Если в процессе генерации вы видите, что маска ложится не идеально, то кликаете по ней ПКМ, копируете и вставляете в раздел Sketch. Там закрашиваете нужную область кистью с черным или белым цветом, а затем с Denoising strength = 0 генерируете и переносите обратно в Inpaint upload.

Я решил закрасить руку, посмотрим, что это даст.

Закрашенная рука
Закрашенная рука

Настройки в разделе Inpaint upload у меня следующие:

Настройки во вкладке Inpaint upload
Настройки во вкладке Inpaint upload

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

Посмотрите, как Inpaint версия меняет руку — изменения минимальны. И это при Denoising strength равном 0.75!

Результат с Inpaint моделью
Результат с Inpaint моделью

А вот что сделал стандартный Deliberate_v2 при тех же настройках. Все превратилось в дачный суп, собранный из всех подручных компонентов. Хоть я и люблю дачный суп, но он часто получается непредсказуемым!

Результат с обычной моделью
Результат с обычной моделью

Заменив фон, я дорабатывал его с помощью вкладки Inpaint, чередуя параметр Masked content с Original на Letent noise. Последний может создавать объект на любом цвете или поверхности, режим Original же учитывает изображение под маской, а поэтому не способен создать что-то кардинально новое.

Например, я добавил на стену часы: режим Original бы их никак не сделал, а вот Latent noise справился с этой задачей, однако у него проблемы с добавлением объекта в общую композицию, свет, цвет, поэтому полученные часы я уже доработал с помощью Original и получил идеально вписанный объект.

Где находятся настройки выбора режима генерации
Где находятся настройки выбора режима генерации

Вот как книги сгенерились с включенным Latent noise.

Генерация в режиме Latent noise
Генерация в режиме Latent noise

А вот они же после доработки режимом Original.

Генерация в режиме Original
Генерация в режиме Original

В конце пришлось повозиться в фотошопе, но тут уж никуда не денешься, ибо ради хорошего результата нужно попотеть :3

Да, Габен получился слегка приуменьшенным, но ведь он же еще школьник!)

Congratulations, вы справились!

Теперь кто-то умеет заменять фон с помощью лучшего фреймворка для Stable Diffusion на сегодняшний день. Буду рад обратной связи и вашим комментариям, а также приглашаю в свой телеграм чат, где отвечу на все вопросы касаемо SD.

Буду рад видеть вас в телеграм-канале, где я пишу отличные гайды по Stable Diffusion!

2020
14 комментариев

Ну чот прям дрочево. Проще уж сразу в фотошопе, либо в онлайн-приколах для вырезания фона

8
Ответить

На самом деле я просто дополнительные приколы расписал, чтобы была наглядная демострация того, например, почему нужна именно inpaint модель.

Вся операция проходит минут за 5-10)

С помощью фотошопа практически нереально подобрать нужный фон под композицию, а тут он автоматом генерится и подстраивается) Ну и сразу же доработать можно отдельные детали в inpaint

2
Ответить

Алло. Привет. Охуел?

2
Ответить

А на тройки можно?

1
Ответить

Нет, ЕГЭ скоро, золотая медаль нужна для доп. баллов!

3
Ответить

так чел скачивает, собирайся лайк мы уходим

1
Ответить

Не обратил внимания на ник сначала)))

1
Ответить