
Концепция
Я родом из Архангельской области, и у нас есть город Мезень со своим народным творчеством — Мезенской росписью. Мне показалось интересной идеей научить нейросеть этому стилю.
Генерировать я решила иллюстрации к моему основному проекту по геймдизайну — Xenorancho. В этой игре ковбойский сеттинг с разными инопланетными животными.
Референсы


Для датасета, на котором будет обучаться нейросеть, я собрала 50 изображений мезенской росписи. Все изображения я привела к единому формату — 512*512. К тому же я дополнительно обрабатывала изображения, чтобы все были в примерно одной и той же цветовой гамме и модель не брала за референс картины, сфотографированные при плохом освещении.


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

Далее с помощью модели BLIP я сгенерировала промпты для каждого изображения в датасете.

После того как все изображения оказались загружены и описаны, я приступила к обучению Stable Diffusion.
Ключевыми словами для этой модели стали «art in MEZEN style». Размер тренировочного батча я увеличила до двух, количество тренировочных шагов увеличила до 1000.
Итоговая серия изображений
В первую итерацию я использовала 500 шагов из-за чего качество изображений было не самым лучшим.
Ниже предоставлены результаты генерации по промптам: «art in MEZEN style, cowboy on rancho» и «art in MEZEN style, wind generator on rancho, mountains on the background».


Ветряк
Модель взяла правильные цвета из датасета — красный, белый, чёрный, но пропорция этих цветов оказалась неправильной. На всех картинках фоновый цвет — красный, хотя должен быть белый. К тому же, модель не выучила, как должны выглядеть узоры, и просто генерировала хаотичные линии. Меня это не устраивало, поэтому я решила увеличить количество шагов для тренировки до 1000.
Ниже предоставлены картинки по промпту «art in MEZEN style, a large capybara is swimming in a lake, mountains on the background».
Слева картинка с первой итерации модели, справа картинка со второй итерации.
Сгенерирована именно капибара, потому что прототипом для одного из врагов (дикобар) в Xenorancho было это животное.


Я нагенерировала на новой итерации модели картинки по тем же самым промптам и сгенерировала револьвер по новому промпту: «art in MEZEN style, revolver aiming at sun».
Интересно, что лучше всего у данной модели получается генерировать пейзажи с животными. Скорей всего, потому что в датасете больше всего было именно таких примеров (хотя лошади и птицы там были довольно абстрактны).
Дикобары, револьвер, ветряки


В итоге нейросеть научилась делать белый фон картинкам, использовать ограниченную палитру, повторять узоры, вписывать в картинку абстрактные изображения птиц и коней. Узоры выглядят гармонично и не смешиваются с основным изображением. Силуэты чёткие, не сливаются с фоном и не состоят из волнистых линий, как это было в первой итерации.
Попробовать модель на хаггинг фейс
В заключение хочу сказать, что для обучения модели очень важно собрать хороший и большой датасет и не пренебрегать количеством тренировочных шагов. Чем больше изображений для обучения и чем больше итераций, тем качественнее будет результат.
Блокнот с кодом
Описание применения генеративных моделей:
— Stable Diffusion XL — обучение генеративной нейросети под свой стиль; — BLIP — нейросеть, генерирующая промпты по изображениям;