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

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

3D модель DrowRanger из игры Dota2
Герой имеет свой оригинальный скин, который невозможно корректно описать для нейросети в простом промте. И тогда я решила попробовать обучить нейросеть генерировать этого героя, а также посмотреть, как будут выглядеть различные стилизации.
Обучение нейросети
Для начала я отобрала архив из изображений DrowRanger, куда входили различные виды скинов. Для меня было важно посмотреть, как нейросеть передает общий вид героя, какие элементы она запоминает и отображает лучше всего, а также на что стоит обратить внимание при дальнейшем обучении уже на других героях.
Создание директории и отображение загруженных изображений
После этого происходило создание краткого описания для каждой из картинок-референсов. Этот шаг также предполагал создание уникального тега, по которому нейросеть будет понимать, какой конкретный стиль ожидается для использования. Я создала такой параметр:
«a picture of DRAWRANGER woman»
Процесс опознавания элементов на референсах
Далее шел финальный этап — обучение. Однако перед этим было важно задать верные директории, размер и параметр.
Всего я вязал 1000 шагов обучения, где промежуточный результат сохранялся на 500-м шаге. Я не стала уменьшать размер изображения, чтобы получить результат, который далее было бы можно улучить до наиболее рабочего состояния.
Параметры модели
Сам процесс обучения нейросети занял около пяти часов.
Результат обучения
Для начала я решила посмотреть, как нейросеть будет справляться с генерацией персонажа по простому промту. Я не меняла влияние модели и не добавляла уточняющих подсказок.
Также я улучшила размер для изображений через AI Upscaler, чтобы получить более широкоформатные изображения. Это позволило избежать более длительного процесса обучения модели и получить хороший результат.
Промт для первой серии


Обычный результат промта по персонажу
Улучшенная версия героя
Как видно на получившихся изображениях, нейросеть хорошо уловила особенности героя — цвет кожи, цвет глаз и прически, а также общие тона и материал брони.
Для меня была важна вариативность в итоговых изображениях, так как я хотела научить нейросеть генерировать не один определенный скин, а общее представление о герое, что и получилось в результате смешения картинок из разных 3D моделей DrowRanger.
Также видно, что модель запомнила более тонкие отличительные особенности героя: рисунки на коже, прическа, окантовка на броне и черты лица. На первом изображении сохранилась форма повязки с прически, что невозможно было бы передать без обучения.
Далее я решила улучшить исходную генерацию. Я добавочный промт к указанному тегу, чтобы нейросеть лучше поняла, какой именно формат мне требуется. Также я уменьшила влияние модели до 70 процентов, чтобы нейросеть могла выдать более реалистичный результат.
Также для повышения привлекательности и детализации я улучшила качество через AI Upscaler.
Промт для второго изображения
Более реалистичный результат с дальнейшим улучшением
Как видно на изображении, нейросеть отлично запомнила детали капюшона, ремней и общие формы брони, которые стали смесью между скином-арканой и простым улучшением героя.
Однако из-за уменьшения влияния модели герой потерял внешние особенности — пропал цвет волос и необходимый оттенок кожи.
Но несмотря на это, результат подтолкнул меня на идею о промте с «очеловечиванием героя». Мне стало интересно, как нейросеть сможет перенести черты героя на более человеческий облик девушки.
Для этого я вдвое уменьшила влияние модели и написала следующий промт:
Промт для третьей серии изображений


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


Более милая версия героя
Данная версия генерации сохранила в себе шрамы на лице героини, а также общую форму прически и амулеты. Также данные изображения были сгенерированы с фиолетовым цветом глаз (наиболее частым среди референсов), а черты лица напоминают черты с 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/