Original size 1159x1649

Обучение генеративной нейросети — DrowRanger

PROTECT STATUS: not protected
19

Идея проекта

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

Я уже как пару лет работаю в русском киберспорте, где одной из ведущих дисциплин является Dota2. На протяжении этого времени я и команда по ведению социальных сетей часто сталкиваемся с такой проблемой, что делать 3D рендеры для SMM макетов в социальные сети чаще всего не хватает времени, а добавить красивого героя из игры на картинку для поста необходимо.

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

big
Original size 1600x976

Герой DrowRanger аркана из игры.

big
Original size 1600x859

3D модель DrowRanger из игры Dota2

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

Обучение нейросети

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

Original size 1280x457

Создание директории и отображение загруженных изображений

После этого происходило создание краткого описания для каждой из картинок-референсов. Этот шаг также предполагал создание уникального тега, по которому нейросеть будет понимать, какой конкретный стиль ожидается для использования. Я создала такой параметр:

«a picture of DRAWRANGER woman»

Original size 1280x652

Процесс опознавания элементов на референсах

Далее шел финальный этап — обучение. Однако перед этим было важно задать верные директории, размер и параметр.

Всего я вязал 1000 шагов обучения, где промежуточный результат сохранялся на 500-м шаге. Я не стала уменьшать размер изображения, чтобы получить результат, который далее было бы можно улучить до наиболее рабочего состояния.

Original size 1280x481

Параметры модели

Сам процесс обучения нейросети занял около пяти часов.

Результат обучения

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

Также я улучшила размер для изображений через AI Upscaler, чтобы получить более широкоформатные изображения. Это позволило избежать более длительного процесса обучения модели и получить хороший результат.

Original size 711x134

Промт для первой серии

Обычный результат промта по персонажу

Original size 1520x1536

Улучшенная версия героя

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

Для меня была важна вариативность в итоговых изображениях, так как я хотела научить нейросеть генерировать не один определенный скин, а общее представление о герое, что и получилось в результате смешения картинок из разных 3D моделей DrowRanger.

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

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

Также для повышения привлекательности и детализации я улучшила качество через AI Upscaler.

Original size 1280x314
Original size 922x125

Промт для второго изображения

Original size 1528x1528

Более реалистичный результат с дальнейшим улучшением

Как видно на изображении, нейросеть отлично запомнила детали капюшона, ремней и общие формы брони, которые стали смесью между скином-арканой и простым улучшением героя.

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

Но несмотря на это, результат подтолкнул меня на идею о промте с «очеловечиванием героя». Мне стало интересно, как нейросеть сможет перенести черты героя на более человеческий облик девушки.

Для этого я вдвое уменьшила влияние модели и написала следующий промт:

Original size 996x132

Промт для третьей серии изображений

Человеческая версия героя

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

Однако, это все равно довольно интересный результат и возможность по-другому посмотреть на дизайн героя.

Original size 758x758

Человеческая версия героя

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

Original size 981x126

Промт для милой версии героини

Более милая версия героя

Данная версия генерации сохранила в себе шрамы на лице героини, а также общую форму прически и амулеты. Также данные изображения были сгенерированы с фиолетовым цветом глаз (наиболее частым среди референсов), а черты лица напоминают черты с 3D модели.

Итог

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

Ссылка на Kaggle с исходным кодом: https://www.kaggle.com/code/evgexa/drowranger

Ссылка на код в GoogleCollab: https://drive.google.com/file/d/1EN5HXW79ICdWJKkypoZYlLE9BXueh1Uc/view?usp=sharing

Ссылка на диск с блокнотом: https://drive.google.com/drive/folders/19mP2tWi4ic1DKYbGmRQkc3tDgJsiVdq9?usp=sharing

Ссылка на ИИ по улучшению качества: https://imgupscaler.com/

Обучение генеративной нейросети — DrowRanger
19
We use cookies to improve the operation of the HSE website and to enhance its usability. More detailed information on the use of cookies can be fou...
Show more