Original size 2480x3500

Обучение генеративной нейросети Stable Diffusion под игру THE CODFISH

PROTECT STATUS: not protected

Идея проекта

post

Мне захотелось обучить генеративную нейросеть Stable Diffusion для генерации персонажей в стиле игры, которую мы разрабатываем в соавторстве с Игнатом Капленко, Натальей Абаджиди и Кириллом Кузовковым. Эта игра называется THE CODFISH, криминальная нарративная 2,5D адвенчура о юной треске-убийце, пытающейся искупить вину, вспомнить прошлое, подчинить своей воле настоящее и взять в плавники будущее.

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

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

Список использованных в проекте инструментов:

— Stable Diffusion — обучение генеративной нейросети под свой стиль; — Google Colab — выполнение кода и генераций; — Hugging Face — получение токена для обучения нейросети, загрузка полученной модели на сайт; — Adobe Photoshop — для коллажирования готовых работ.

Исходные изображения персонажей

big
Original size 1529x765

Несколько женских персонажек THE CODFISH

Для игры мне пришлось разрабатывать свой визуальный стиль, в том числе и для персонажей. Было решено использовать ограниченную цветовую палитру, а также: - Зеленоватую обводку; - Минималистичный покрас с плоскими тенями; - Гуманоидные тела рыб; - Чёрный плавный лайн; - Единообразные позы персонажей.

Original size 2000x1024

Несколько мужских персонажей THE CODFISH

Описание процесса обучения

Сначала потребовалось загрузить все необходимые для работы библиотеки: Diffusers, DreamBooth и так далее.

Далее нужно было загрузить изображения с компьютера в Google Colab. Это сделано это через встроенную в Colab функцию. Затем нужно было посмотреть, что изображения действительно загрузились.

Original size 3500x1911

Фрагменты кода

Затем было необходимо создать подписи к каждому изображению. Это всё ещё был процесс подготовки моего датасета к тренировке нейросети.

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

Original size 3500x2480

Фрагменты кода

Далее был произведён логин с системой Hugging Face.

Наконец, приступаем к тренировке. Выбрано разрешение 512, выставлен максимальный шаг тренинга на 500, а чекпоинт установлен на 250. Так было сокращено время, затраченное на тренировку нейросети, и мне пришлось ждать всего полчаса.

Original size 3500x2085

Фрагмент кода: обучение

Наконец можно было сохранить полученную модель на Hugging Face и приступить к генерации изображений.

Original size 3500x1809

Фрагменты кода

Первым промптом, который был попробован, стал промпт: photo collage in THE CODFISH style, cod fish, wearing dress

Поскольку была допущена ошибку и оставлено слово «коллаж», которое использовал преподаватель в лекции, результат вышел близким к моим рисункам по стилю, но абсолютно неудовлетворительным в плане внешнего вида.

Original size 2480x1170

Первая генерация vs мой рисунок

Цветовая палитра, анатомия рыбы, стиль, метод рисования одежды — всё это очень похоже на то, что я изображаю в своих рисунках с рыбами. Не обращая внимание на «поломанность» результата, я считаю, что у меня удалось обучить нейросеть моему стилю.

Следующие генерации с таким же промптом оставляли желать лучшего в плане адекватности готовой картинки.

Original size 2480x1164

Вторая генерация vs мой рисунок

Было решено убрать из промпта слово collage и поменять его на art, а также добавить конкретики: art in THE CODFISH style, antro cod fish, wearing dress, standing alone, holding a flower in her hand.

Original size 2480x1350

Результаты генераций

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

Промпт: art in THE CODFISH style, antro cod fish, wearing a suit and a tie, standing alone, holding a bottle

Original size 2480x1182

Генерация vs мой рисунок

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

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

Промпты:

  1. art in THE CODFISH style, antro cod fish, old man wearing a soldier suit, standing alone, holding a stick;
  2. art in THE CODFISH style, antro cod fish, old woman wearing a white dress, standing alone, holding a bag;

Появилась идея сгенерировать рыб старика и старуху.

Original size 2480x1215

Результаты генераций старика и старухи

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

Original size 3500x1710

Промпт: a fish wearing a dress, holding flowers, solid background

Original size 3500x1679

Промпт: a fish wearing a dress, holding a book, solid background

Original size 3389x1797

Промпт: a fish wearing a tuxedo and a hat, holding a book, solid background

Чему удалось обучить нейросеть?

- Цветовая палитра; - Обводка; - Стиль рисования рыб; - Однотонный фон; - Плавный лайн средней толщины;

Original size 3500x2480

Сравнение костюма на генерации и костюмов у персонажей моих работ

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

Original size 3500x2480

Сравнение платья рыбы на генерации и на моих работах

Резюмируя весь проект, хотелось бы отметить, как и прежде, что нейросеть не может заменить художника, но может работать, как подручный для концепт-художника, быстро изображая придуманный в голове образ и помогая создать рисунок не за художника, а просто работая «черновиком». К примеру, я точно не буду использовать ни одну из генераций в игре, но могу опираться на них при продумывании новых персонажей.

Обучение генеративной нейросети Stable Diffusion под игру THE CODFISH