Использование нейросетей в создании hand-paint текстур

Использование нейросетей в создании hand-paint текстур

Метод проецирования текстуры

Основной метод создания текстуры с помощью ИИ — проецирование сгенерированного изображения на модель с нескольких ракурсов

Использование нейросетей в создании hand-paint текстур

Для модели задаются основные цвета, свето-тенью обозначаются основные объемы и очертание деталей модели. А использование градиентов улучшит качество текстуры.

Важно

Данная методика не исключает человека из работы над текстурами. ИИ это инструмент ускоряющий процесс, а не выполняющий его полностью автоматизированно. Так же, при работе над текстурами действуйте поэтапно. Если вы работаете над текстурами для персонажа или крупного объекта, то не надо пытаться сгенерировать все за один раз. Качество текстуры зависит от параметров, которые вы даете ИИ. К ним относятся чекпоинт, вае, используемые Lora, Textual Inversion, промт, Sampling steps, Denoising strength, проработка начальной текстуры и так далее.

Рекомендуемый денойз: от 0.35 до 0.5.Во избежание артефактов, рекомендуемое разрешение при генерации в пределах 640 до 960. При выставлении разрешения 1024 и больше, возможны артефакты.

Использование нейросетей в создании hand-paint текстур

Данная методика имеет множество нюансов. Если вам необходимо покрасить что-то сложнее камня или деревянного ящика, то одними и теми же параметрами не обойтись.

При создании текстур не ленитесь уточнять детали и пользуйтесь дополнительными градиентами для получения наилучшего результата.

Использование нейросетей в создании hand-paint текстур

Покраска модели

Теперь рассмотрим покраску модели при помощи ИИ более подробно на примере персонажа Ms. Fortune из 2Д файтинга Skullgirls.

Использование нейросетей в создании hand-paint текстур

Красить будем поэтапно, сначала кожу, затем шрамы, одежду, аксессуары и так далее. Таким образом у нас будет больше контроля над каждым элементом модели.

Для работы я использую: 3D Coat, Photoshop и нейросеть Stable Diffusion.

Этап первый: Подготовка модели

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

Для облегчения работы можно запечь Ambient Occlusion, Normal Object и ID Map.

ID Map нам понадобится для более удобной работы с масками. Благодаря Ambient Occlusion и Normal Object, можно облегчить рисование текстур.

Использование нейросетей в создании hand-paint текстур

Я беру зеленый канал из Normal (Object) и смешиваю его с Ambient Occlusion из Marmoset Toolbag и 3D Coat.

Использование нейросетей в создании hand-paint текстур

Теперь можно перейти к покраске отдельных элементов. У покраски кожи, одежды и прочих элементов есть свои особенности при покраске.

Каждый из элементов мы рассмотрим отдельно.

Использование нейросетей в создании hand-paint текстур

Кожа

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

Использование нейросетей в создании hand-paint текстур

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

Есть 3 варианта как исправить это:

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

Однако при работе с большим разрешением возможны артефакты.

  • Создание кожи в черно белых тонах. Рисуйте кожу используя только серый цвет. После добавьте в промт b&w. Вы получите черно белую кожу, которую потом сможете покрасить в любой цвет используя Blend mode.
  • Красить как есть, а плохие места редактировать инструментами программ Photoshop и 3D Coat.

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

В 3D Coat включаю Flat Shade (hotkey-2). Затем Edit > Edit Projections in Ext. Editor.

Использование нейросетей в создании hand-paint текстур

После, используя fill and adjustment layers задаю коже основной цвет.

Использование нейросетей в создании hand-paint текстур

Теперь я переношу слои в Photoshop и затем объединяю. Такой результат уже можно переносить в Stable Diffusion, но то что выйдет в результате генерации меня не устроит, поэтому я уделю чуть больше времени изначальной текстуре. Очищу лишнее и добавлю дополнительных пигментов на щеках, локтях, и так далее.

Использование нейросетей в создании hand-paint текстур

После некоторых доработок, я переношу проекцию модели в Photoshop.

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

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

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

Так же для комфортной работы с Stable Diffusion создаем черно-белую маску.

Далее переходим в Stable Diffusion. Выбираем свой Stable Diffusion checkpoint и SD Vae. Во вкладке img2img вводим promt и negative promt. Переключаем режим на Inpaint upload и вставляем наше изображение и маску.

Далее, обязательно выставляем Only masked в параметре Inpaint area. Чтобы просчет был только в зоне маски и размер изображения не менялся. Only masked padding можно выставить небольшим 4-16 пикселей нормально.

Sampling method DPM++ 2M Karras или DPM++ SDE Karras. Для получения более артового результата.

Sempling steps в районе 20-35 будет достаточно. Resize to лучше ставить в районе до 960x960 (Если ваша видеокарта позволяет быстро генерировать изображеня больших размеров, то вы можете указать их. Из-за небольшого значения денойза, шанс получить поломанное изображение не велик, но не равен 0. К тому же более большое разрешение на генерации не добавит вашей текстуре четкости). CFG Scale от 6 до 11 (7-8 рекомендуемо). Denoising strenght от 0,35 до 0,5.

Denoising strenght отвечает за то, на сколько конечный результат будет отличаться от оригинала. Сделайте несколько тестовых генераций и подберите для себя нужное значение. Затем в Batch count можно выставить число генераций и затем из всех картинок выберите наилучшие. Далее переносим изображения в Photoshop. При необходимости редактируем новый слой. Сохраняем и текстура будет перенесена в 3D Coat.

Затем я делаю симметричный перенос текстуры в 3D Coat при помощи инструмента Topo Symm. Всю ассиметрию я буду добавлять позднее. Первостипенная задача для меня, это получить симпатичную текстуру кожи.

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

Использование нейросетей в создании hand-paint текстур

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

Использование нейросетей в создании hand-paint текстур

Одежда и аксессуары

После отрисовки кожи, можно начинать работу над следующими деталями. При помощи ID map создаем маски и используя функцию Clip Mask прикрепляем слои, окрашенные через gradient map в Photoshop, к ним.

Использование нейросетей в создании hand-paint текстур

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

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

В случае с элементами с более сложными элементами или материалами имеющими отражение (например металл, кристаллы и тому подобное) работы будет чуть больше.

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

Использование нейросетей в создании hand-paint текстур

По необходимости дорисовываю недостающее.

Использование нейросетей в создании hand-paint текстур

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

Использование нейросетей в создании hand-paint текстур

Финальная отрисовка деталей

После того как основная работа Stable Diffusion окончена, наступает время поработать руками. Из-за наличия плашек, шерсть и волосы я буду отрисовывать вручную.

Использование нейросетей в создании hand-paint текстур

Затем, я подкрашиваю недочеты, уточняю некоторые детали, корректирую цвет и добавляю дополнительные градиенты.

Использование нейросетей в создании hand-paint текстур

Посмотреть на модель вы можете на:

Статья на английском:

Там же можно найти чекпоинты, лоры и вае, которые я использую.

9090
9 комментариев

Спасибо за лонг, отличный гайд!

1
Ответить

у тебя была постоянная лицензия на коат или ты как то умудряешься продлевать подписку?

Ответить

Коат можно купить 1 раз, 12 месяцев получать обновления, а затем программа будет работать дальше, но без обновлений.

Ответить

Обложка хорошая, молодец.

Ответить

Интересненько!

Ответить