Хочу показать способ, как из некрасивых 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 . Спасибо тебе что разрешил вставить её в эту статью)