Original size 1140x1600

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

PROTECT STATUS: not protected
2

Идея проекта

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

Одной из моих концепций был календарь со злыми духами из мифологий разных культур — от всем известного славянского Чёрта, до далекого Токолоша из африканских легенд. Мне удалось нащупать специфический стиль рисования, на основе которого я захотела обучить нейросеть 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 на основе авторских иллюстраций
2
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more