Original size 2480x3500

Обучение генеративной нейросети для имитации стиля Квинта Бухгольца

PROTECT STATUS: not protected
5

Идея проекта

Квинт Бухгольц — немецкий художник и иллюстратор, чьи работы выделяются благодаря использованию техники пуантилизма и мотивов магического реализма. Этот стиль живописи зародился в конце XIX века и характеризуется нанесением крошечных цветных точек, которые, сливаясь в глазах зрителя, создают сложные и детализированные изображения. Термин «пуантилизм» происходит от французского слова «pointillisme», что означает «точка».

Моя цель заключалась в создании уникальной нейросетевой модели на основе Stable Diffusion, способной создавать иллюстрации в стиле известного художника. Для этого я собрал 95 художественных произведений Бухгольца и использовал метод Dreambooth LoRA, чтобы обучить модель на основе этого визуального материала.

В процессе реализации данного проекта я оперировал следующим руководством.

Сбор данных и формирование датасета

Чтобы обучить нейросеть, необходимо тщательно подготовить набор изображений. Я собрал 95 произведений автора, чтобы модель смогла уловить его стиль.

big
Original size 1280x256

Перед началом обучения изображения были подготовлены в несколько этапов:

— Все изображения были обрезаны с помощью программы на Python до соотношения сторон 1:1, чтобы соответствовать требованиям модели.

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

big
Original size 989x989
Original size 505x457

Подготовка среды и загрузка изображений

Для обучения я применял метод Dreambooth с адаптацией LoRA. Этот метод позволяет эффективно обучать модель с меньшим объёмом видеопамяти.

Первым шагом я загрузил необходимые инструменты в Google Colab. Затем программа автоматически загрузила изображения из указанной папки и подготовила их для обучения.

Original size 506x591

Hugging Face

Чтобы иметь возможность работать с моделями и наборами данных на платформе Hugging Face, я воспользовался функцией notebook_login (). Эта функция позволила мне войти в систему Hugging Face Hub с помощью сгенерированного API-ключа. Благодаря этому я получил доступ ко всем необходимым ресурсам для обучения.

Original size 875x488

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

Использование Dreambooth LoRA для обучения на кастомном стиле:

Здесь модель обучается на изображениях из папки /content/Photos, с использованием базовой модели Stable Diffusion XL.

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

Original size 626x437

Работа с моделью

Original size 528x125

Этот код служит для публикации обученной модели на платформе Hugging Face. Сначала он определяет имя пользователя, используя токен, а затем создает уникальное название для репозитория, в котором будут храниться результаты обучения.

Original size 464x439

Результаты генерации

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

Original size 1024x1024

Prompt = «A small man in a coat stands on top of a giant stack of books in the middle of a deserted beach, with a single balloon floating above him — in Quint Buchholz style»

Original size 1024x1024

Prompt = «A cat sits on a rooftop staring at the night sky, where instead of stars there are small glowing lamps like in a room — in Quint Buchholz style»

Original size 1024x1024

Prompt = «A chair stands in the middle of a lake, with a seagull perched on its backrest; in the distance, a silhouette of a city veiled in fog — in Quint Buchholz style»

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

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

Original size 1024x1024

Prompt = «Across an endless snowy plain, a person walks holding an umbrella, above them floats a giant open sail shaped like an umbrella — in Quint Buchholz style»

Original size 1024x1024

Prompt = «A tree with clocks instead of leaves stands by a road that leads to nowhere, with a huge moon in the background like a stage prop — in Quint Buchholz style»

Original size 1024x1024

Prompt = «A giant cup of tea sits on the seashore, with a tiny boat sailing inside it; on the shore, a person holding a book watches quietly — in Quint Buchholz style»

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

Возникшие трудности

При работе с Google Colab возникали некоторые трудности. Пути к папкам в этой среде задаются и учитываются иначе, чем в Jupyter или PyCharm. Также важно, находятся ли файлы в корневой или во вложенной папке.

Обучение модели прерывалось из-за нехватки видеопамяти. Чтобы решить эту проблему, было предпринято несколько шагов:

1. Снижение разрешения изображений.

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

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

Для обучения требовалась большая коллекция изображений с одинаковым разрешением и квадратным соотношением сторон. Однако найти такие коллекции в интернете не удалось. Тогда было решено обучить нейросеть обрезать фотографии самостоятельно.

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

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

Подведение итогов

Я считаю, что обучение модели прошло успешно, несмотря на некоторые трудности, такие как нехватка видеопамяти и уменьшение количества и качества фотографий.

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

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

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

Обучение генеративной нейросети для имитации стиля Квинта Бухгольца
5