Меняем одежду людей в Stable Diffusion на другую, либо на ее отсутствие... Без смс и регистрации

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

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

Меняем одежду людей в Stable Diffusion на другую, либо на ее отсутствие...  Без смс и регистрации Нейронные сети, Раздевание, Переодевание, Инструкция, Длиннопост

Я думаю Саша не обидится, если кто-то в интернете начнет ее раздевать переодевать. Тем боле, что пост я постараюсь сделать SWF, и закрою все квадратиками. 1. Первое фото оригинал. 2. Второе уже в другой одежде. 3.. сами все понимаете.



В данном методе нет ничего особенного. Любой человек кто хоть раз пользовался нейросетью Stable Diffusion, и знает про метод inpaint, может сделать это без моих советов. Тут я хочу рассказать по простому, кто ни разу не пользовался ничем подобным и им нужно тыкать пальцем. Не считаю себя профессионалом в этой области, но рассказать рабочее решение смогу.

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


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

2. Компьютер с видеокартой от NVIDIA. Как минимум на 4 гб. Я начинал с 1050 TI.. но я очень сильно страдал. Лучше побольше. Сейчас у меня 3060 12 гб. Ее хватает не только довольно быстро генерировать, но уже и обучать модели. Чем больше памяти, тем лучше для нейросети! Видеокарты на AMD.. Тут уж вам не повезло. Данная сеть заточена под работу с картами нвидиа, и возможно есть какие-то драйвера которые решают эту проблему, но я не в курсе. То же касается встроенных видеокарт. Дополнительных проблем не будет, только у тех у кого есть Нвидиа.

3. Нейросеть Stable Diffusion от Automatic. Как ставить и пользоваться нейросетью я рассказывать не буду. По этому есть куча видеоинструкций на ютубе и где только можно. Там даже человек с хлебушком вместо мозга, поймет как все установить и запустить. Не думаю, что стоит тратить на это время. Представим, что вы все это поставили и открыли окно браузера с интерфейсом Stable Diffusion.


Допустим что вы все установили и запустили правильно, и видите перед собой такое окно.

  1. Жмем вкладку img2img

  2. Жмем внизу на вкладку inpaint

Меняем одежду людей в Stable Diffusion на другую, либо на ее отсутствие...  Без смс и регистрации Нейронные сети, Раздевание, Переодевание, Инструкция, Длиннопост

Вот так выглядит окно Stable Diffusion открытое на нужных нам вкладках. Сначала жмем на img2img потом внизу на inpaint

Выбираем фотографию

Далее нам нужно выбрать изображение жены, подруги, просто женщины из интернета — главное, чтобы она не была против. Возьмем Александру. Она, думаю не против.

Меняем одежду людей в Stable Diffusion на другую, либо на ее отсутствие...  Без смс и регистрации Нейронные сети, Раздевание, Переодевание, Инструкция, Длиннопост

Не стоит выбирать сильно большое изображение по разрешению. Дело в том, что модели Stable Diffusion обучаются на изображениях 512x512 пикселей. В версии XL 1024x1024. Но XL моделей не так много, плюс они жутко медленные. И получается, что если вы загружаете изображение разрешением к примеру 1920х3080, то модель может воспринять ее не корректно. Плюс ваша видеокарта может просто не потянуть. Старайтесь не превышать разрешение изображения где-то больше 1500 px.. Но опять же можете пробовать все, что угодно.

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


Выбор модели

Если вы внимательно смотрели видео по установке Stable Diffusion то вам там говорили, загрузить модель в папку models. Вот именно об этом и пойдет речь.

Меняем одежду людей в Stable Diffusion на другую, либо на ее отсутствие...  Без смс и регистрации Нейронные сети, Раздевание, Переодевание, Инструкция, Длиннопост

Модель выбирается здесь.

Модели бывают разные. Скачать их можно на сайтах huggingface.co , civitai.com и любых других. Их множество. Какие-то качественные, какие-то не очень.
Довольно качественные модели делает Хачатур, он же ХрисТ. Так же у него куча видео о Stable Diffusion на ютубе, посмотрев которые, вам эта моя статья и не понадобится.

Это модели Deliberate и Reliberate. У них есть две версии. Обычная. и inpainting

Чем отличаются эти версии. Обычная версия модели, например Deliberate — это модель художник. Она "пишет картину" и нужна для генерации изображений. В данном примере мы ее не рассматриваем, однако мы можем ее использовать. Только в данном случае, результат будет гораздо хуже.

Версия Inpainting — это как-бы ученик художника, который смотрит на изображение, понимает какие краски он используют, какую форму имеют объекты на изображении и перерисовывает картину так как ему нравится, при этом сохраняя ее черты. Вот именно такая модель нам и потребуется!

Меняем одежду людей в Stable Diffusion на другую, либо на ее отсутствие...  Без смс и регистрации Нейронные сети, Раздевание, Переодевание, Инструкция, Длиннопост

Я попросил нейросеть, нарисовать Сашу в синей одежде, использовав разные модели Reliberate. Область перерисовки видна красным цветом на первом изображении. В первом случае я использовал Inpaint модель. А во втором случае обычную. Разница очевидна!

Приступим!

Допустим у нас есть:

  1. одна из вышеперечисленных inpaint моделей.

  2. Подходящее изображение для изменения.

    Можно приступать.

    Выбираем модель и перетаскиваем картинку в данную область

Далее необходимо установить параметры разрешения картинки, установив значение Width и Height. Чтобы не делать это руками, можно нажать на "угольник" и параметры установятся автоматически.

Меняем одежду людей в Stable Diffusion на другую, либо на ее отсутствие...  Без смс и регистрации Нейронные сети, Раздевание, Переодевание, Инструкция, Длиннопост

Все параметры кроме разрешения картинки, можно установить как на скриншоте.

Далее пишем позитив Промт. Промт это описание того, что вы хотите видеть на изображении. Пишется промт Токенами - токен это слово которое помогает нейросети, узнать что вы от нее хотите. Например мы написали здесь Blue Dress. То есть мы хотим видеть Сашу в синей одежде. Если хотим видеть Сашу без одежды, то пишем там просто слово "Naked" Если нужны какие нибудь дополнительные свойства, то их можно написать через запятую. И только на английском языке!

Так же есть раздел негативного промта. Его можно пока не трогать. Но если допустим при смене платья Саши, проглядывается что-то неприличное, то можно написать там слова nude, naked итд итп, чтобы платье Саши было закрыто и прилично.

Меняем одежду людей в Stable Diffusion на другую, либо на ее отсутствие...  Без смс и регистрации Нейронные сети, Раздевание, Переодевание, Инструкция, Длиннопост

Пишем промт и берем карандашик...

Карандашик — самая важная часть данного интерфейса. Именно им мы будем обрисовывать ту зону, которую нам предстоит заменить. Закрашиваем платье, так как его мы хотим поменять.. ну либо убрать. Не стоит сильно заморачиваться насчет границ платья, волос и прочего такого. Если платье не просвечивается через волосы, то этот участок не закрашиваем, если просвечивается, то закрашиваем. Можно вылезать за пределы. Волосы нейросеть потом сама дорисует и уложит как надо. Можно закрасить и всю Сашу, но тогда при генерации это уже будет не она, и по этому оставляем больше оригинальных деталей на изображении.

Меняем одежду людей в Stable Diffusion на другую, либо на ее отсутствие...  Без смс и регистрации Нейронные сети, Раздевание, Переодевание, Инструкция, Длиннопост

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


Переходим к настройкам

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

Меняем одежду людей в Stable Diffusion на другую, либо на ее отсутствие...  Без смс и регистрации Нейронные сети, Раздевание, Переодевание, Инструкция, Длиннопост
  1. Sampling method оставляем как есть по умолчанию. DPM++2M Karras самый оптимальный семплер.

  2. Sampling steps - количество шагов семплига. Оптимальные параметры от 20-40. Надо смотреть и пробовать. Увеличение количества семплов не всегда означает качество, но увеличивает время генерации. Если при параметрах по умолчанию, получилось чуть "мыльновато" и хотелось бы чуть лучше, можно попробовать поднять семплинг.

  3. CFG Scale - сложный для понимания параметр, но в целом работает так. Его значения обычно по умолчанию от 4-7. Увеличение или уменьшение приведет к искажениям изображения. Лучше оставить по умолчанию. Можно еще обозвать его параметром соответствия с промтом. Например если вы написали "Blue t-shirt" в промте и поставили низкий cfg-scale то изображение получится бледным, а вместо футболки нейросеть может нарисовать любую другую синюю одежду. Если поставили высокий CFG Scale, то изображение получится очень контрастным но там точно будет синяя футболка.

Denoising strenght - самый важный параметр в разделе inpaint. Он отвечает за то, на сколько нейросеть будет вмешиваться в исходное изображение. Параметр 1 -означает, что нейросеть заменяет изображение полностью, по своему усмотрению. Параметр 0 - значит, что нейросеть не вносит никаких изменений.

Например мы хотим заменить платье на платье другого цвета. Параметр Denoising Strength мы можем выставить в районе 0.85. Это позволит нам, сохранить позу Александры, сохранить допустим изгибы ее тела, но при этом заменить на ней платье. Если же мы захотим раздеть Сашу, то у нейросети при таком значении Denoising Strength будет, начинаться когнитивный диссонанс. Она как бы видит, что человек в одежде, а мы просим ее убрать. По этому все равно будет пытаться натянуть на нее одежду, даже если мы захотим ее полностью снять. Это все можно пробовать регулировать писав в Negative Promt такие токены как Dress и так далее, но быстрого и качественного результата при этом не получится. По этому для замены чего-либо лучше использовать параметры близкие к 1. Тогда нейросеть может немного изменить положение тела и так далее, но в целом это будет похоже на реальность.

После настройки, можно жать большую кнопку Generate и ждать результата!

Меняем одежду людей в Stable Diffusion на другую, либо на ее отсутствие...  Без смс и регистрации Нейронные сети, Раздевание, Переодевание, Инструкция, Длиннопост

Denoising Strength = 1. Промт "Blue Dress" Видно как смело нарисовано платье, по сравнению с оригинальным изображением. Иногда вылазят артефакты, например на руке, но их можно легко убрать, перерисовкой именно этой области, с низким денойзингом.

Меняем одежду людей в Stable Diffusion на другую, либо на ее отсутствие...  Без смс и регистрации Нейронные сети, Раздевание, Переодевание, Инструкция, Длиннопост

Denoising Strength = 0.69. Промт "Blue Dress" Нейросеть попыталась нарисовать полостатую одежду, точно такую же как и была в оригинале, но сделала оттенок более синий и заменила полоски на синие.


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

Если кратко:
1. Выбираем inpaint модель.

2. Пишем в промте, что хотим. Если ничего не хотим пишем там "naked"

3. Загружаем фотку, выставляем ее разрешение, и рисуем карандашиком где хотим менять

4. Регулируем силу с помощью Denoising Strength.

5. Жмем Generate и радуемся результату.


Не ждите того, что все получится с первого раза. Полученный результат можно еще дорабатывать таким же методом, запустив его по второму кругу, но допустим с более низким Denoising Strength. О всех тонкостях можно говорить вечно, и лучше учить их отдельно. Информации достаточно. Иногда можно мучаться вечность с одним изображением на одной модели, и она будет очень корявая. Но вот поменяв модель сразу получается хорошо.

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

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