Original size 2480x3500

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

PROTECT STATUS: not protected

Идея проекта

Квинт Бухгольц — немецкий художник и иллюстратор, чьи работы выделяются благодаря использованию техники пуантилизма и мотивов магического реализма. Этот стиль живописи зародился в конце 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.

Обучение генеративной нейросети для имитации стиля Квинта Бухгольца
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