Что нам понадобится?
Во-первых, установленный либо локально, либо в облако Automatic1111. Прикреплю ссылки на лучшие по моему мнению гайды, можете смело пользоваться. В случае проблем готов помочь в чате.
Немаловажным также является наличие Deliberate inpaint, либо другой Inpaint модели. Именно благодаря ей мы не будем получать лишних голов и рук.
Также нужно поставить расширение depthmap2mask — устанавливается оно через раздел Extensions.
Собственно, это все, нам нужно лишь расширение и автоматик. Не забудьте нажать кнопку Apply and restart UI перед началом работы.
Перейдем к практике
Изначально я нашел Габена на каком-то выступлении в фиолетовых тонах и с микрофоном в руке — не для того ли он у него, чтобы представить Half-life 3? Эх…
Загрузил короля Game-дева через img2img в Automatic1111 и сразу же выставил Denoising strength на 0, чтобы при работе расширения исходник не менялся. Затем подогнал разрешение генерации под пропорции оригинала и открыл само расширение в разделе Scripts. Модель создания карты глубины нужно скачать самую первую — dpt_beit_large_512.
Также поставьте галочку Invert DepthMap, чтобы главный объект закрасился черным и не менялся в последствии.
Жмем Generate и ожидаем загрузки модели генерации маски.
Далее переносимся во вкладку Inpain upload, где в верхнюю часть загружаем наш исходник, а в нижнюю — маску. В поле для промпта уже можем вводить описание для желаемого фона, а также менять Denoising strength на 0.75. Но не забывайте, что у вас должна быть Inpaint модель.
Скрипт можно отключить, он нам больше не понадобится.
Если в процессе генерации вы видите, что маска ложится не идеально, то кликаете по ней ПКМ, копируете и вставляете в раздел Sketch. Там закрашиваете нужную область кистью с черным или белым цветом, а затем с Denoising strength = 0 генерируете и переносите обратно в Inpaint upload.
Я решил закрасить руку, посмотрим, что это даст.
Настройки в разделе Inpaint upload у меня следующие:
Особенность модели Inpaint состоит в том, что она не трогает детали, которые вы не описывали в промпте, поэтому мы и не получаем лишних голов и конечностей. Но такой способ лишает нас вариативности и стилизации, поэтому важно комбинировать версии моделей для достижения лучшего результата.
Помните, я закрашивал руку Габену белым цветом? На стандартной модели она бы превратилась в кашу, а Inpaint версия лишь слегка меняет ее, смотрите сами. И это при Denoising strength равном 0.75!
А вот что сделал стандартный Deliberate_v2 при тех же настройках. Все превратилось в дачный суп, собранный из всех подручных компонентов. Хоть я и люблю дачный суп, но он часто получается непредсказуемым!
Заменив фон, я дорабатывал его с помощью вкладки Inpaint, чередуя параметр Masked content с Original на Letent noise. Последний может создавать объект на любом цвете или поверхности, режим Original же учитывает изображение под маской, а поэтому не способен создать что-то кардинально новое.
Например, я добавил на стену часы: режим Original бы их никак не сделал, а вот Latent noise справился с этой задачей, однако у него проблемы с добавлением объекта в общую композицию, свет, цвет, поэтому полученные часы я уже доработал с помощью Original и получил идеально вписанный объект.
Вот как книги сгенерились с включенным Latent noise.
А вот они же после доработки режимом Original.
В конце пришлось повозиться в фотошопе, но тут уж никуда не денешься, ибо ради хорошего результата нужно попотеть :3
Да, Габен получился слегка приуменьшенным, но ведь он же еще школьник!)
Congratulations, вы справились!
Теперь кто-то умеет заменять фон с помощью лучшего фреймворка для Stable Diffusion на сегодняшний день. Буду рад обратной связи и вашим комментариям, а также приглашаю в свой телеграм чат, где отвечу на все вопросы касаемо SD.
Буду рад видеть вас в телеграм-канале, где я пишу отличные гайды по Stable Diffusion!
#stablediffusion #нейросети #искусственныйинтеллект #digitalart #gaben #арт #automatic1111.