Исходный размер 1140x1600

Билибин «в прайме». Обучение генеративной нейросети

Идея проекта

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

Мой выбор пал на работы И. Я. Билибина — яркие, узнаваемые, являющиеся общественным достоянием. Они обладают уникальным, легко воспроизводимым стилем и являются отличной основой моего датасета.

Мне было интересно поместить художника в современную среду, знаменитого благодаря изображению былинной, древнерусской и сказочной действительности. В процессе работы я поняла, что хочу не просто повторять сюжеты «городских/уличных сказок» и генерировать стилизованные изображения знакомых всем героев (большого) города, но сделать их «новыми сказками», поместить «прошлое в настоящее».

Так родились несколько архетипов, внешний вид которых изменялся вместе с промптами: скейтер-трикстер, курьер-купец, летописец-граффитист, страж-полицейский уличный (музыкант-) гусляр и знакомый каждому студенту изготовитель «сказочного эликсира» — бариста.

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

Исходный размер 3974x2250

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

В проекте применялись: Stable Diffusion (обучение генеративной модели), Google Colab (среда выполнения), Hugging Face (токен и размещение модели), ChatGPT (создание и проверка кода), Adobe Illustrator (постобработка элементов кода).

Исходный размер 3974x2250

Создание датасета с (фрагментами) иллюстраций И. Я. Билибина происходило «вручную». Таким же методом был изменен и формат всех изображений — изначальный датасет, составленный не из фрагментов, а из целых иллюстраций, не был достаточно подробным и точным для обучения нейросети, примеры чего я предоставила ниже.

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

Исходный размер 1280x256

Изначальный неотредактированный датасет, фрагменты.

Исходный размер 1280x256

Отредактированный датасет, фрагменты.

0

Следующим действием является подключение модели BLIP, создает текстовые описания к каждому изображению автоматически. После к каждому из них добавляется общий стиль. Все результаты сохраняются в файл metadata.jsonl — так каждая картинка получает свой индивидуальный промпт-описание для дальнейшего обучения.

0

Непосредственная генерация изображений (код и результатирующая серия изображений)

0

После генерации подписей BLIP выгружался из GPU-памяти для освобождения VRAM под последующее обучение LoRA. Команда accelerate config default создавала стандартную конфигурацию библиотеки Accelerate, управляющей процессом обучения. Hugging Face использовался для авторизации и обеспечения свободного доступа третьих лиц к модели, а также для её загрузки и публикации в собственном репозитории.

По завершении обучения я проверила сохранность всех LoRA-весов и создала репозиторий на Hugging Face с тем же именем, что и каталог проекта; автоматически добавилась model card с описанием обучения. Все файлы модели (кроме временных чекпоинтов) были загружены, после чего я подключила VAE для корректного декодирования изображений и интегрировала обученную LoRA в пайплайн Stable Diffusion XL, подготовив модель к тестовой генерации.

0

(1) Скейтер-трикстер

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

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

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

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

Промпты для генераций скейтбордистов (реальные промпты, представленные в блокноте с кодом, упрощены для большей наглядности запроса):

(1) «MODERN BILIBIN style painting, urban skater,»

(2) «painting in MODERN BILIBIN style, urban skater as a modern folk hero,»

(3) «MODERN BILIBIN style illustration, full-body young male skater, standing sideways on skateboard, feet on board, wearing ancient Russian clothing: long tunic, belt, trousers, boots,»

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

Исходный размер 1024x1024

Финальная генерация скейтера, финальный стиль проекта найден.

(2) Курьер-купец

Промпты для генераций курьера. Я не считаю эти генерации удачными, скорее всего, это связано с тем, что курьер с характерным рюкзаком (который каждый раз был прописан в промпте) — особенность российской действительности, «не знакомая нейросети».

(1) «MODERN BILIBIN style illustration, night urban courier on bicycle,»

(2) «MODERN BILIBIN style illustration, urban courier riding a horse,»

(3) Летописец-граффитист

Генерации граффитиста на основе промпта «современный человек в былинных условиях». Много неточностей и ошибок.

Промпты для генераций граффитиста:

(1) «MODERN BILIBIN style illustration, urban graffiti artist,»

(2) «MODERN BILIBIN style illustration, urban graffiti artist in action, spraying paint on wall,»

(3) «MODERN BILIBIN style illustration, full-body young male graffiti artist, standing side view, right arm extended, holding cylindrical spray paint can with nozzle, wearing ancient Russian clothing: long linen tunic, belt, trousers, boots,»

Исходный размер 1024x1024

Финальная генерация граффитиста. «Человек в былинном костюме в новых условиях».

(4) Страж-полицейский

Промпты для генераций полицейского.

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

(1) «MODERN BILIBIN style illustration, full-body police officer,»

(2) «MODERN BILIBIN style illustration, full-body modern police officer, wearing dark navy tactical uniform, reflective stripes on jacket and pants,»

(5) Уличный гусляр-музыкант

Более ранние генерации, аналогичны с граффитистом по логике развития.

Промпты для генераций уличного музыканта:

(1 и 2) «MODERN BILIBIN style, full-body street musician, sitting on crate,»

(3) «MODERN BILIBIN style illustration, full-body musician, seated frontal pose,»

Исходный размер 1024x1024

Финальная генерация. К моему сожалению, объяснить нейросети, что такое гусли, я так и не смогла.

(6) Сказочный эликсир: бариста

Промпты для генераций бариста.

Я считаю, что этот персонаж стал наиболее узнаваемым и при этом «историческим, былинным». Отчасти потому, что я поняла технику написания промптов — отчасти потому, что генеративная нейросеть обучилась.

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

(1) «MODERN BILIBIN style illustration, full-body young male barista,»

(2) «MODERN BILIBIN style illustration, full-body young male barista, standing behind coffee cart, holding cup in hand,»

(3) «MODERN BILIBIN style illustration, full-body young male barista, standing behind modern espresso machine and coffee grinder, holding cup,»

Исходный размер 1024x1024

(7) Таксист-перевозчик

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

Промпты для таксиста:

(1) «MODERN BILIBIN style illustration, full-body young male taxi driver, sitting inside modern taxi, hands on steering wheel,»

(2) «MODERN BILIBIN style illustration, full-body young male taxi driver,»

Билибин «в прайме». Обучение генеративной нейросети
Проект создан 11.02.2026
Мы используем файлы cookies для улучшения работы сайта и большего удобства его использования. Более подробную информац...
Показать больше