Улучшаем 3D людей на рендере с помощью нейросети

Хочу показать способ, как из некрасивых 3д людей на рендере сделать фотореалистичных, буквально в несколько кликов. Речь пойдёт о нейросети Stable Diffusion (SD).

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

Первым делом необходимо установить SD на свой ПК. Процесс установки описывать не буду т.к. в интернете достаточно много информации на эту тему (если всё таки необходимо создать инструкцию по установке - пишите, если многим будет полезно то постараюсь сделать). Для генерации будем использовать модель Reliberate 2.0 . Её нужно сохранить в папке ":\Stable Diffusion\stable-diffusion-webui\models\Stable-diffusion". Далее запускаем SD (открывается в браузере) и видим интерфейс:

1. В верхнем левом углу из выпадающего списка выбираем скачанную модель Reliberate_v2.0.
2. Переходим на вкладку img2img.
3. На вкладке Generation выбираем режим Inpaint. Так мы сможем выбрать конкретно ту область, которую будем генерировать.

4. Загружаем изображение.
5. Пишем подсказку для нейронки (prompt). В верхнем окне то что хотим видеть, в нижнем то что необходимо исключить. Я, как видите, с описанием сильно не заморачивался.

6. С небольшим запасом выделяем пером область, которую хотим скорректировать.

Спускаемся в настройки ниже.

7. Выбираем область генерации Only masked (только выделенное)
8. Sampling metod - DPM++ 2M Karras. Вроде как работает лучше всего, у меня стоял по умолчанию.
9. Устанавливаем размер генерируемого результата 768 на 768 точек. Это максимальный размер изображения создаваемого данной нейронкой, всё что больше она склеивает из кусочков. Желательно чтобы выделенная область на нашем изображении сильно не превышала этого размера. Если она будет больше то сгенерированное изображение 768*768 просто будет растянуто, что может повлиять на качество.
10. CFG Scale - это величина соответствия текстовому запросу. Чем выше, тем ближе запрошенный результат, но вместе с тем и более шумный. Я оставил это значение по умолчанию.
11. Denoising strenght - степень отличия нового изображения от исходного, где 0 - отсутствие изменений, а 1 - полностью новая картинка. У меня средний диапазон для подобной задачи обычно составляет 0,2-0,45. Если оставить 0,7 то может получиться такой результат:

Нам же необходимо остаться чуть ближе к исходнику, поэтому возьмем 0,4.
12. Seed - точка старта генерации изображения. -1 - всегда рандомный результат. Если подставить любое положительное число, то результаты будут похожими. Я оставил -1 и генерировал пока не нашёл подходящий.
13. Жмем кнопку Generate.

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

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

Для примера использовал работу fox2_87 . Спасибо тебе что разрешил вставить её в эту статью)

aiиинейросетиstable difffusion3д людикомпозинг

Комментарии (49)

+27
Alvion
Ну вот, совсем другое дело! За такой урок прям твёрдая 5!!!
Получается автором изображения на 99% остается художник, а не нейронка... улучшения и так всегда происходят на постпродакшн в фотошоп..., так почему же не использовать и нейронку. Отличный пример, подробное объяснение, классный результат.
+3
Ivanov_CG
Спасибо)
+3
vladimir.drobzhev90
Наконец-то стоящий урок!
+1
Shumer
Спасибо, годно!
+2
niga2323
Спасибо за отличный урок!
+2
grdesigner
За урок спасибо. Очень полезно.

Пока проверить возможности нет, поэтому вопрос что делать с большим количеством ракурсов. Я так понимаю каждый раз генерируются разные лица или можно чтобы это был один и тот же "человек"?
0
Ivanov_CG
В основном в архвизе это массовка, поэтому не было пока задачи чтобы из кадра в кадр переходил конкретный персонаж. Но вроде как можно даже сгенерировать нужное лицо с другой фотографии.
0
grdesigner
Понял, спасибо интересно.
+4
2garyn
так там можно запомнить сид и в теории более менее на всех ракурсах будет выглядеть одинаково. ун может два варианта подобрать - с лица и со спины
0
grdesigner
Тогда афигенно.
+6
Leha Fokin
Можно попробовать так, я как то делал, в большинстве случаев лицо повторялось и было очень похожим.
https://www.youtube.com/watch?v=3SVqZRmoWo8&ab_channel=StableDiff 

Есть еще способ натренировать модель на определенное лицо с помощью LORA
+5
akkoxe
LoRA, ADdetailer, реактор, рууп, и всякое такое. В общем это реализуемо. Можно посмотреть мою статью в блоге, которую сайт теперь не показывает на главной, если это не урок, и потому ее никто не видит. Там я наглядно показал одного и того же персонажа на нескольких кадрах, в разных условиях. https://3ddd.ru/blog/post/parovozik_kotoryi_smog_generativnye_neiroseti_i_ikh_tekushchie_vozmozhnosti 
+1
eegnee
страница не найдена :(
0
akkoxe
Попробуйте еще раз сейчас. Изменил ссылку.
+2
nikdruid
Спасибо, полезно)!
+2
ma-x777
Спасибо!
0
c3dm
Афигеть! Аж жутко...
0
Хороший пример интеграции ии в рабочий процесс. И результат отличный.
0
zs_design
Вылитый Дэвид Бекхэм получился)
0
Leha Fokin
А мне Райан Гиггз, и тоже из МЮ)
0
hitchez08
ну что ж, придется пробывать:)
0
Action-sen
Интересно как это работает с точки зрения галереи? Насколько я помню сгенеренные нейронками картинки трут. А если частично? А если доработка? А если генератив экспанд в фш? где эта грань?))
0
akkoxe
Пока что трут. После просто галерея умрет или будет состоять на 99% процентов из "унитазов". Так как все те, кто делает что то интересное, так или иначе начинают использовать стаблу. Я уже не представляю, как можно без нее, и вспоминаю в кошмарах, как я руками пытался сделать концепт арт когда то.
0
Action-sen
Ну вот с другой стороны многие на фон ставят фото и ли hdri, вроде никто не против.. и если фон нарисован например в ИИ или текстурка какая-то, тут уже не особо понятно)))
+3
akkoxe
В уроке есть некоторые ошибки, которые стоит поправить. Для инпента человечков на рендере они не критичны, но вообще это опасные ошибки, которые потом могут принести много проблем, если человек решит погрузиться в тему нейронок. Например о разрешении. Разрешение модели 512, допустимое 640, если квадрат. Если прямоугольник то 512 по меньшей стороне. В статье указано что 768х768 это максимальное разрешение нейросети. Это, во первых, не максимальное (максимальное гораздо больше), не допустимое и не рекомендуемое. А во вторых, это не разрешение нейросети, а разрешение модели (так как модель релиберейт на 1.5 сделана). Есть еще модели 2.1 на 768 номинального, и ХЛ модели и т.д. Понимание, как работает разрешение, и почему оно такое, а не другое, это основа основ в стабле. Для инпеинта это не критично, так как там разрешение маски обычно как раз в районе допустимого, но при попытке перегенерировать что либо с высоким денойзом это может сыграть, например, ноги будут кривыми, лица поломанными (если разрешение меньше, чем надо) или начнутся приколы с артефактами, появляющимися лицами на лицах, двойными глазами и т.д, и человек не будет понимать, что не так.

Но в целом урок в контексте инпента человечков на рендере - хороший и полезный.

Еще я бы добавил, что у автора модели релиберейт есть две версии моделей. модель для генерации и для инпеинта. И соответственно для инпента есть смысл брать модель для инпента, но пробовать делать на ней генерации смысла мало. Модель "релиберейт инпенит" можно найти по ссылке в описании модели релиберейт на цивитай.
0
Ivanov_CG
Спасибо, только начал разбираться в стабле. Можешь поделиться что где по этой теме полезного почитать, чтобы вникнуть в мелочи?
+2
akkoxe
Я пока дальше ютуба, хагинфейса, цивитай и гитхаба не ходил, ну и вот тут лучше всего начинать: stable-diffusion-art.com
Обычно сразу смотрю краткий гайд на ютубе, потом начинаю вникать на сд-арт-ком, на цивитай гайды есть всякие, ну а на гитхабе и хагине мануалы по плагинам. Например в том же регионале без гитхаба (и бутылки) не разобраться никак. Да и с гитхабом не просто =). Все гайды и уроки либо неправильные, либо поверхностные очень, и приходиться мануал читать и вчитываться.
Еще довольно подробно рассказывает Христ, ну тот, что автор релиберейта, у него канал на ютубе, Но у него такой ЧСВ сквозняк идет через все видео, что он на любителя. Я долго его слушать не могу, поэтому в основном читаю на сд-арт-ком и пытаюсь вникать в мануалы на гитхабе и пробовать на практике.
Еще в дискорде у того же Христа есть сервер, и там довольно много людей, и можно поспрашивать всякое. В основном технические ошибки, вылеты и прочие баги.
+1
ck_petya
Автор модели, которую вы используете, очень подробно рассказывает о Стабле на своём канале в Ютубе.
0
Ivanov_CG
Уже успел посмотреть пару роликов, спасибо
0
Urichi
разрешения касаются генерации с нуля, на больших он будет рисовать всякую фигню, но никто не запрещает и тогда генерировать другие размеры, особенно на абстрактных запросах.
при инпеинте, как разновидности img2img вообще пофиг какой размер задавать, если видюха тащит
а чтобы ноги были не кривыми и прочее - подключай контролнет
0
akkoxe
Дело не в контролнете. Попробуйте сгенерировать персонажа на треть от размера кадра, при том. что разрешение "стандартное" (модель не ХЛ), увидите какой он будет кривой весь, хоть с контролнет, хоть без.
На счет абстрактной фигни - нет, дело не в абстрактности, а в том, что будет с этой абстрактностью на несоответствующих разрешениях. Абстрактность тоже должна быть адекватной, а не "лицо в лице" или "звезда в звезде".
0
Urichi
стандартное разрешение по вашему - 512, предлагаете сгенерировать персонажа в треть от разрешения, то есть высотой в 170 пикселей и на нем не будет деталей, а откуда они возьмутся в 170 точках детали? Зачем такое делать вообще?
0
akkoxe
Где вы увидели слово "детали" в моем сообщении?
0
Predator84
Когда нажимаю "генерате" - RuntimeError: "slow_conv2d_cpu" not implemented for 'Half' что бы это значило?
0
ck_petya
У вас сборка или чистая версия? Стоит эта, вроде норм
https://github.com/AUTOMATIC1111/stable-diffusion-webui?ysclid=lnkt0kaej4779720684 
0
Uraken
Тонко )
+1
Julia19
Очень круто, статья сейчас как раз актуальна, а то постоянно приходится менять головы 3д моделям на 2д вручную)
0
skynetkz@mail.ru
Что насчет архвиза? Можно улучшить свои рендеры с помощью AI к примеру?)
+2
Ivanov_CG
Так вот один из способов) То же самое можно делать с деревьями, элементами улиц. Есть варианты полностью менять время дня, сезон, настроение, окружение и другие глобальные вещи. Но они сложнее и часто выдают не идеальный результат (пока что). Я в процессе изучения этого вопроса. Возможно в будущем сделаю что-то на эту тему.
0
MikhailMekhanik
для этого нужно выкачать модели? чтобы например хорошие кусты генерировало или цветы
+2
Ivanov_CG
С растениями тот же релибирейт справляется. Но можно поэкспериментировать с другими моделями. На civitai.com можно выбрать по категориям, там же посмотреть примеры.
+1
Nik3D_design18
четкий челик получился!
0
marg0blin
Спасибо, пригодилось)
0
V.Dolgalev
Модель уплыла... где её скачать теперь?)
+1
Ivanov_CG
https://huggingface.co/XpucT/Reliberate/tree/main
0
V.Dolgalev
Несколько их... какой посоветовали бы? :

Reliberate_v2-inpainting.safetensors
2.13 GB
LFS
Rename Reliberate-inpainting.safetensors to Reliberate_v2-inpainting.safetensors
about 1 month ago
Reliberate_v2.safetensors
2.13 GB
LFS
Rename Reliberate.safetensors to Reliberate_v2.safetensors
about 1 month ago
Reliberate_v3-inpainting.safetensors
2.13 GB
LFS
Upload 2 files
about 1 month ago
Reliberate_v3.safetensors
+1
Ivanov_CG
v3 скачивайте, это обновленная v2 соответственно. Можете инпейнт модель попробовать, она вроде как контекст должна лучше воспринимать. Но лично я стандартную использую всегда.
0
amadeo1987
Ссылка которую дал автор не работает, дайте пожалуста ссылку где скачать. Пожалуйста))))
0
Ivanov_CG
https://huggingface.co/XpucT/Reliberate/tree/main