Написано
Дата публикации
24 февраля 2023 г.
Использование методов стабильной диффузии для создания двухмерных игровых сред.
- Стабильная диффузия v1.5
- Автоматический1111 веб-интерфейс
- Плагин Альпака для Фотошопа
- Увеличение монокулярной глубины
- Дизайнер субстанций
- Юнити УРП
- Расширение редактора шейдеров
Изучая способы создания изометрических фонов, я наткнулся на сообщение Иван Гарсия Филью показ игровых активов, созданных с помощью платформы на основе Stable Diffusion с использованием подробных подсказок и большого количества шагов.
Сложный модульный изометрический концепт-арт сверху вниз с PBR-материалами викторианской готической богато украшенной лампы в стиле стимпанк, в зловещем адском индустриальном настроении и аккуратной и чистой композиции с четкими, точно стабилизированными прямыми линиями, красочным тональным отображением кинематографического объемного освещения и глобального освещения, создающего сияющий край отражения и детализированная окружающая окклюзия с плавными холодными тенями и горячими бликами, увеличивающими глубину и перспективу
Я начал тестировать некоторые подсказки, используя ту же структуру, но изменив содержимое и модификаторы стиля, чтобы увидеть, какие футуристические/киберпанковые элементы они могут генерировать, и понять, как работает подсказка.
Первые результаты были не очень хорошими, но это было связано с использованием меньшего количества шагов, что, как я думал, не было бы необходимым, но здесь имеет огромное значение. Натыкаясь на шаги в 100 с и выше КФГ 15-30 щелкнул его в более интересные результаты.
Мне очень понравился стиль секции строительства в открытом стиле, поэтому я продолжил повторять диапазоны шагов и CFG с График X/Y в Автоматический1111 веб-интерфейс используя ту же подсказку.
Сложный модульный изометрический концепт-арт сверху вниз с материалами PBR здания киберпанка, в зловещем адском индустриальном настроении и аккуратной и чистой композиции с четкими, точно стабилизированными прямыми линиями, красочным тональным отображением кинематографического объемного освещения и глобального освещения, создающего сияющие краевые отражения и детализированные окружающее затенение с плавными холодными тенями и горячими бликами, увеличивающими глубину и перспективу
Почти бесконечный характер генерации стабильной диффузии может затруднить выбор конкретного результата. Раньше я часто сталкивался с FOMO, чувствуя, что упустил идеальное семя или сеттинг, но построение графиков X/Y и жесткое отношение к кураторству помогли мне быстрее достичь желаемого результата с течением времени. Я выбрал Конфигурация 16 и повторил шаги и добился отличного результата в 100.
я в основном работаю в Фотошоп для редактирования и очистки сгенерированных изображений и проходят бета-тестирование Альпака Плагин Stable Diffusion, который позволяет мне продолжать работать в знакомой среде, получая доступ к таким функциям, как закрашивание и img2img.
Я поместил изображение здания на холст большего размера и использовал закрашивание, чтобы расширить остальную часть здания и еще немного дорожки, используя ту же подсказку.
Я очистил фон и прогнал финальное изображение через img2img с двойным разрешением, чтобы получить больше деталей.
Одна из моих идей по использованию фона в игровом движке Unity заключалась в том, чтобы удалить освещение с изображения, а затем добавить его обратно с помощью пользовательских шейдеров. Я добился этого, закрасив яркие цвета в Photoshop, используя новый слой, установленный на режим смешения цветов и нейтральные серые цвета, взятые из исходного изображения.
Чтобы получить собственное освещение, мне нужно было создать карту нормалей для 2D-сцены. Вместо того, чтобы рисовать вручную (что является вариантом), я попытался автоматизировать процесс, используя МиДаС и Истинный в Увеличение монокулярной глубины для создания карт глубины изображения.
Я перенес карту глубины MiDaS и (инвертированные) изображения карты глубины LeRes в Substance Designer, чтобы использовать Высота в нормальных мировых единицах узел для создания карт нормалей, а затем объединил их с помощью Нормальная смесь узел, так как по отдельности они примерно представляют большую и маленькую подробную информацию.
Полученная карта нормалей далека от совершенства, но ее достаточно для моего тестирования. Я замаскировал фон в Photoshop и заполнил его базовым значением вектора нормали. RGB(128, 128, 255) или #8080FF
Вот как выглядит сцена в Unity с использованием выделенного изображения в качестве основного цвета и карты нормалей для фонового материала в 3D-плоскости, а также двух цветных точечных источников света в 3D-пространстве. Освещение обволакивает поверхности в некоторых местах почти убедительно и создает грубую иллюзию освещения сцены.
Я попробовал несколько разных методов, используя карты глубины и нормалей в пользовательском шейдере Unity URP, который я создал в Расширение редактора шейдеров. Я использовал карту глубины, чтобы попробовать Отображение окклюзии параллакса чтобы добавить немного тонкой поддельной 3D-перспективы к движению камеры, но это выглядело довольно плохо, поскольку глубина неверна для изометрического вида.
Я создал реализацию Отображение нормалей теней что позволило мне получить тени, отбрасываемые 2D-сценой от направленного на солнце света. Хотя этот эффект добавил сцене некоторые интересные визуальные качества, он не очень хорош для представления фактического освещения, но потенциально может использоваться в качестве пользовательского прохода освещения для затенения 3D-персонажей.
Для основной среды переулка, показанной в видео в верхней части страницы, я следовал тем же методам итерации через графики XY подсказки переулка, пока не получил начальную точку, которой я был доволен.
Я отразил изображение и поместил его в 2048×2048 холст в Photoshop, затем использовал Альпака плагин, чтобы перекрасить остальную часть среды, используя ту же подсказку, но слегка изменив формулировку с переулка на здание или улицу и т. д., чтобы направлять создаваемый контент. Для каждого нового раздела я выбрал свой любимый вариант из 5 возможных поколений.
Апскейлинг часто является сложным процессом, который мне нравится выполнять поэтапно. Для этого 2K-изображения я разделил его на четверти и прогнал их через img2img в двойном разрешении с тем же начальным запросом. Затем из-за несоответствия между кварталыя повторил тот же процесс для перекрывающиеся области швов и центр и скомпоновали их вместе в Photoshop, используя маски, чтобы смешать каждую область и создать бесшовное финальное изображение 4K.
Я вполне доволен внешним видом фона, хотя мне определенно хотелось бы иметь больше контроля над содержимым сцены, которое можно было бы включить с помощью будущих технологий. Некоторые из тестов не привели к полезному контенту, и есть области для улучшения:
- Исследуйте новые методы управления содержимым сцены
- Найдите способы повысить согласованность стилей разных типов локаций.
- Разработайте лучшие методы шейдеров для создания псевдо-3D-эффектов из 2D-фонов.
- Обучите пользовательскую модель для создания карт нормалей из фона.