Original size 1140x1600

Обучение Stable Diffusion на основе авторских иллюстраций

PROTECT STATUS: not protected

Идея проекта

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

Одной из моих концепций был календарь со злыми духами из мифологий разных культур — от всем известного славянского Чёрта, до далекого Токолоша из африканских легенд. Мне удалось нащупать специфический стиль рисования, на основе которого я захотела обучить нейросеть Stable Diffusion.

0

иллюстрации на носителях

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

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

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

0

иллюстрации для датасета

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

Сперва подготовила всё необходимое:

1. Проверила параметры и состояние GPU, предоставленной Colab, чтобы убедиться, что GPU действительно активна и готова к работе.

2. Загрузила библиотеки bitsandbytes, transformers, accelerate, peft, чтобы обеспечить работу с большими моделями и их оптимизацию. А также установила последнюю версию библиотеки diffusers напрямую из GitHub.

3. Скачала готовый тренировочный скрипт DreamBooth для Stable Diffusion XL с поддержкой LoRA.

Original size 2480x1003

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

Далее начала подгружать датасет с картинками

4. Загрузила изображения с компьютера в Colab через окно выбора файлов.

5. Создала папку chert и скопировала туда все загруженные изображения.

6. Через image_grid, вывела все изображения для предпросмотра.

Original size 2480x1131

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

7. Загрузила все изображения из папки chert и сохранила их в виде списка с путями и объектами изображений. Далее создала файл metadata.jsonl с подписями для каждого изображения для модели DreamBooth. Проверила, что подписи к изображениям записались корректно.

8. Удалила ненужные объекты, чтобы облегчить работу Google Colab и сэкономить память. А также настроила корректное кодирование UTF-8 и выполнила базовую конфигурацию утилиты accelerate.

9. Авторизовалась в Hugging Face напрямую из Google Colab

Original size 2480x641

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

10. Установила библиотеку datasets, для работы с датасетами в формате Hugging Face и наконец-то запустила обучение DreamBooth LoRA на основе Stable Diffusion XL

Original size 2480x832

фрагмент кода

11. Получила имя пользователя Hugging Face и адрес, куда будет загружена модель.

12. Загрузила веса на Hugging Face Hub и создала карточку модели.

Original size 2480x428

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

13. Загрузила обученную LoRA-модель и получила пайплайн для генерации изображений.

14. Начала генерировать изображения в обученном стиле по разным промптам.

Original size 2480x1171

фрагмент кода

Результаты SDXL

Original size 2480x1560

prompt: digital drawing with charcoal texture of a horned forest creature crouching under the moonlight among tall trees

Original size 2480x1560

prompt: digital drawing with charcoal texture of a genie-like figure with pointed ears holding a curved sword in a desert vi

Original size 2480x1560

prompt: digital drawing with charcoal texture of a bat-like humanoid with wings spread wide in front of an ancient pyramid

Original size 2480x1560

prompt: digital drawing with charcoal texture of a horned satyr carrying a sack and broom through a snowy village under the moon

Original size 2480x1560

prompt: digital drawing with charcoal texture of a mysterious creature peeking from a frozen pond surrounded by pine trees and ice

Original size 2480x1560

prompt: digital drawing with charcoal texture of a mischievous forest imp grinning while sitting on a tree stump in a moonlit grove

Original size 2480x1560

prompt: digital drawing with charcoal texture of a tiger-headed warrior holding a spear on a tropical island with palm trees and huts

Original size 2480x1560

prompt: digital drawing with charcoal texture of a cheerful satyr playing a lyre under the sun near ancient ruins and cypress trees

Original size 2480x1560

prompt: digital drawing with charcoal texture of a humanoid creature with a horse’s head standing in a windy desert landscape, holding a long weapon

Original size 2480x1560

prompt: digital drawing with charcoal texture of a small goblin-like figure with long ears sitting alone in a dry savanna under the sun

Original size 2480x1560

prompt: digital drawing with charcoal texture of a winged human with a sword standing triumphantly on mountain peaks under a bright sun

Original size 2480x1560

prompt: digital drawing with charcoal texture of a mischievous goat-headed creature running through a sunny village carrying a bundle of straw

Original size 2480x1560

prompt: digital drawing with charcoal texture of a shadowy horned guardian emerging from fog between ancient trees at twilight

Original size 2480x1560

prompt: digital drawing with charcoal texture of a sand spirit with glowing eyes rising above deserted ruins under a moon

Original size 2480x1560

prompt: digital drawing with charcoal texture of a winged beast perched on a mountain peak, staring at distant lightning in the clouds

Original size 2480x1560

prompt: digital drawing with charcoal texture of a frost-covered creature standing silently on a frozen lake beneath dark skies

Original size 2480x1560

prompt: digital drawing with charcoal texture of a frost-covered creature standing silently on a frozen lake beneath dark skies

Original size 2480x1560

prompt: digital drawing with charcoal texture of a tiger-headed shaman performing a ritual under palm trees at dusk

Original size 2480x1560

prompt: digital drawing with charcoal texture of a cheerful imp juggling mushrooms near a forest stream under the morning sun

Original size 2480x1560

prompt: digital drawing with charcoal texture of a satyr teaching birds to sing while playing his lyre on a warm meadow

Original size 2480x1560

prompt: digital drawing with charcoal texture of a clumsy goat demon slipping on ice in front of laughing villagers

Original size 2480x1560

prompt: digital drawing with charcoal texture of a tiny goblin sitting on a mushroom writing spells with a feather pen

Original size 2480x1560

prompt: digital drawing with charcoal texture of a smiling winged trickster flying above clouds and scattering flower petals

Original size 2480x1560

prompt: digital drawing with charcoal texture of a playful creature with long ears peeking from behind a tree, grinning mischievously

Результаты Stable Diffusion 1.5

Изначально, помимо обучения Stable Diffusion XL, я также пробовала работать c Stable Diffusion 1.5, так как столкнулась с проблемами из-за недостаточного объема памяти. Эту проблему я в последствии решила удалением ненужных объектов.

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

Original size 2123x1596

генерации на базе stable diffusion 1.5

Заключение

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

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

Описание применения генеративной модели

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

По сути, я просто отправляла запрос в формате Код / Ошибка и нейросеть подсказывала мне с чем связана та или иная проблема.

Original size 2123x1022

пример общения с chatgpt

Ссылки на материалы

Обучение Stable Diffusion на основе авторских иллюстраций
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