Обучение Stable Diffusion под стиль южнокорейского иллюстратора Oyow on HSE Design
Original size 768x1024

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

PROTECT STATUS: not protected
20

Идея проекта

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

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

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

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

big
Original size 1851x566

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

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

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

big
Original size 3333x1024

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

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

Original size 2085x1024

Генерации Stable Diffusion

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

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

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

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

Original size 1817x886

Код из Google Colab

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

Original size 1820x180

Код из Google Colab

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

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

Original size 1829x495

Код из Google Colab

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

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

Original size 1821x466

Код из Google Colab

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

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

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

Original size 1815x546

Код из Google Colab

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

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

Original size 1837x507

Код из Google Colab

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

Генерации Stable Diffusion

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

Original size 2085x1024

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

Тем не менее, некоторые из них получились довольно-таки интересные.

Промты:

✿ a picture in oyow style, a lot of ferns, under them there is one small person that is resting (слева) ✿ a picture in oyow style, people in blue clothes hug each other, holding white flowers in their hands. blue background (посередине) ✿ a picture in oyow style, portrait of a girl with a beautiful white flower in her hair (справа)

Original size 3131x1024

Генерации Stable Diffusion

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

Промты:

✿ a picture in oyow style, beautiful white tulips on a pink background (слева) ✿ a picture in oyow style, a white daisies with a yellow center (справа)

Original size 2077x1024

Генерации Stable Diffusion

Промты:

✿ a picture in oyow style, winter landscape, everything is white, blue sky (слева) ✿ a picture in oyow style, the sea, dawn and white seagulls (посередине) ✿ a picture in oyow style, blue mountains, lots of beautiful white flowers below (справа)

Original size 3131x1024

Генерации Stable Diffusion

Промты:

✿ a picture in oyow style, a beautiful sunset, yellow sun and a field of flowers (слева) ✿ a picture in oyow style, a lot of beatiful koi carps (справа)

Original size 2085x1024

Генерации Stable Diffusion

Эксперимент!

Завершив основную работу с обучением модели и генерации картинок, пришла идея выяснить:

А знала ли исходная модель стиль Ойю? Получилось ли бы создать такие изображения без дообучения?

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

0

Генерация исходной модели Stable Diffusion VS Генерация дообученной модели Stable Diffusion

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

Вывод

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

✿ «рваный» контур ✿ «шум» на картинках, текстура ✿ цветовая палитра (хотя в сравнении с исходными изображениями местами выглядит немного тускловатой, возможно, из-за того же шума)

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

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

✿ Stable Diffusion ✿ Hugging Face ✿ Google Colab ✿ Pixelcut (восстановление окружения в некоторых изображениях, например, для обложки) ✿ Adobe Photoshop (для создания коллажей)

Обучение Stable Diffusion под стиль южнокорейского иллюстратора Oyow
20
We use cookies to improve the operation of the HSE website and to enhance its usability. More detailed information on the use of cookies can be fou...
Show more