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

Обучение Stable Diffusion под стиль южнокорейского иллюстратора Oyow

Идея проекта

На просторах интернета я наткнулась на работы южнокорейского иллюстратора Oyow (Ойю́).

Они меня очень вдохновили, и я захотела обучить генеративную нейросеть Stable Diffusion для создания изображений в их стиле.

Об Ойю́ и его работах

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

big
Исходный размер 1851x566

Примеры работ Ойю

Из работ Ойю был подготовлен датасет из 45-ти иллюстраций. Все изображения так же были изменены под необходимый для обучения формат (1800 х 1800)

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

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

Результат генерации с первым датасетом из 70 разных по массе картинок (не очень удачно)

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

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

Генерации Stable Diffusion

Процесс обучения модели

Прежде чем приступать к обучению, нужно было включить GPU в среде программирования и загрузить все необходимые библиотеки (bitsandbytes, transformers, accelerate, peft). С Github так же нужно было установить библиотеку diffusers и специальный скрипт train_dreambooth_lora_sdxl, выполняющий всю основную работу.

Далее необходимо было загрузить уже подготовленный датасет в Google Colab. С помощью кода была создана директория oyow, куда далее я вручную загрузила все картинки.

Чтобы убедиться, что все изображения были загружены корректно, была использована функция grid.

Исходный размер 1817x886

Код из Google Colab

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

Исходный размер 1820x180

Код из Google Colab

Так как я обучаю модель на определенный стиль, мне нужно было создать префикс, который отсылал бы на него. В данном случае он выглядит так: a picture in oyow style,

После этого, все подписи к изображениям начинаются с этой фразы.

Исходный размер 1829x495

Код из Google Colab

Следующим этапом подготовки нужно было загрузить скрипт accelerate, который поможет сохранить обученную модель сразу на Hugging face.

Для этого, помимо загрузки самого скрипта, нужно зарегистрироваться на сайте Hugging face и получить специальных токен, который имеет права записи.

Исходный размер 1821x466

Код из Google Colab

Готово! Можно начинать обучение модели. Перед этим нужно установить библиотеку datasates, которая будет использовать так называемое кодовое слово, созданное чуть ранее. А именно: «a picture in oyow style, …»

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

Например, уменьшено разрешение картинок (с 1024 до 512 пикселей) и максимальное количество шагов обучения (с 1000 до 500). Таким образом, на процесс обучения ушло чуть меньше часа.

Исходный размер 1815x546

Код из Google Colab

После завершения обучения остается только сохранить модель на Hugging face и проверить сами генерации.

Для генерации изображений нужно загрузить исходную модель Stable Diffusion XL и присоединить к ней веса LORA, то есть до обученную модель под стиль Ойю.

Исходный размер 1837x507

Код из Google Colab

Осталось только написать промт и посмотреть, что же получилось. А получилось много замечательных изображений!

Генерации Stable Diffusion

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

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

Иллюстрация Ойю (слева) и генерация Stable Diffusion (справа)

Обучение Stable Diffusion под стиль южнокорейского иллюстратора Oyow
Проект создан 12.03.2025
Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше