Original size 1140x1600

KMPLZ. Обучение генеративной нейросети

PROTECT STATUS: not protected
9

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

В качестве материала для обучения был собран архив из 64 цифровых и традиционных рисунков kimplz.

big
Original size 2706x1280

Примеры для обучения: традиционное рисование

big
Original size 2706x1280

Примеры для обучения: цифровое рисование

Итоговая серия

0
0
0
0
0

Анализ

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

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

Далее для сравнения изображения будут представлены так: слева — работа нейросети, справа — работы kimplz из архива для обучения.

Original size 1649x896

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

Original size 1649x896

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

Original size 1649x896

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

Original size 1649x712

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

Original size 1649x712

Так же хорошо модель справляется и с маскулинными лицами. Длинный нос, толстые брови, квадратный подбородок.

Из двух примеров выше: примечательно, что в зависимости от типа лица (маскулинное или феминное), превалируют соответствующие эмоции. Так, феминные персонажи у нейросети чаще выглядят невинно или слегка удивлённо, а маскулинные хмурятся.

Код и процесс создания

Кроме исходного кода из курса, никаких более ГенИИ не было использовано.

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

Original size 1011x566

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

Original size 1099x712

Далее необходимо было имплементировать и настроить нейросеть BLIP, которая способна делать выводы о происходящем на изображении. Здесь BLIP распознала объекты на изображениях из архива.

0

Затем происходило само дообучение модели Stable Diffusion XL с помощью собранных данных. В качестве триггер-слова для модели была задана фраза «KMPLZ»: так, увидев это слово в промпте, модель будет генерирвоать изображения в стиле нужной художницы.

Я поставила 1000 шагов для обучения, чекпойнты которого делались каждые 250 шагов. Так, у меня было бы 4 варианта уровня обучения, которые я могла бы сравнивать.

Всего дообучение заняло 1,5 ч.

Original size 811x474

Полученную модель я загрузила на HuggingFace.

Original size 847x632

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

Original size 834x376

Мой стандартный промпт выглядел так:

Original size 841x226

Однако иногда я меняла его значения, чтобы сравнить результаты. Width и height, чтобы регулировать размер изображения; guidance_scale, чтобы управлять тем, насколько свободно модель будет следовать промпту; num_inference_steps, чтобы создавать разный уровень проработки.

Вот, например, один и тот же промпт «KMPLZ, a drawing of a sad girl in a hoodie and jeans» в разных значениях num_inference_steps (20, 50, 70)

0
KMPLZ. Обучение генеративной нейросети
9
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