Original size 1240x1750

KOVËR: дообучение Stable Diffusion

PROTECT STATUS: not protected
34

Концепция проекта

Этот проект родился после моей январской поездки в Стамбул. Прогуливаясь по центральному Гранд-базару, я оказался впечатлён визуальным изобилием ковров: десятки узоров, цвета, симметрии, блеск золота и мягкость приглушённых тонов.

Меня вдохновила идея сохранить и интерпретировать эту эстетику через современный инструмент — генеративную нейросеть

Original size 2269x978

Фотографии с поездки в Стамбул

KOVËR — это исследовательский визуальный проект, в котором я обучил генеративную нейросеть Stable Diffusion XL на собственной коллекции ковров. Целью же этого проекта является создание уникального визуального стиля и исследование, как нейросеть может интерпретировать декоративные формы.

Обучение нейросети

Original size 2269x1505

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

Все ковры построены по симметричной схеме — центральный медальон, повторяющийся орнамент по полю и бордюры. Было собрано 43 изображения с ковровыми узорами для анализа и последующего обучения нейросети. Все изображения были вручную приведены к квадратному формату (1:1) и имели хорошее качество, что позволило создать стабильный и выразительный датасет с разнообразными примерами орнаментальных композиций и цветовых решений, характерных для классических ковров.

Original size 2716x986

Сначала я установил все нужные библиотеки, чтобы можно было дообучать нейросеть Stable Diffusion. Подключил Google Диск, где у меня лежат изображения ковров, и скачал готовый скрипт для обучения модели — train_dreambooth_lora_sdxl.py, чтобы с ним работать дальше. Проверил, что файл загрузился.

Original size 2710x1544

Здесь я сначала подключаю папку с изображениями ковров и считаю сколько файлов в ней, визуализирую первые шесть ковров в виде сетки, чтобы убедиться, что всё ок с датасетом. Далее я подключаю модель BLIP от Hugging Face, которая автоматически генерирует подписи к изображениям. Мне это нужно, чтобы потом использовать эти описания как подсказки при обучении модели.

Original size 2724x714

Здесь я создаю файл с описаниями к каждому изображению. Я беру каждую картинку ковра, прогоняю её через модель BLIP, которая генерирует подпись, добавляю к ней префикс «photo of kover pattern, “ и сохраняю результат в формате JSONL. Это нужно, чтобы потом использовать эти подписи как обучающие подсказки для нейросети.

Original size 2720x1392

Здесь я сначала создаю новую папку kover_images_only, куда копирую только изображения (без метаданных), чтобы не было ошибок при обучении. А дальше запускаю команду обучения нейросети через accelerate launch, указывая все параметры: путь к предобученной модели, VAE, датасету, куда сохранить результат, какие подсказки использовать, разрешение, размеры батча и прочее.

Original size 2700x812

Здесь я настраиваю пайплайн генерации изображений: подключаю предобученную модель и VAE, затем загружаю дообученные веса LoRA (kover_lora) и активирую их с масштабом 0.8. После этого переношу пайплайн на видеокарту (cuda), чтобы можно было генерировать новые ковры уже в моем стиле.

А теперь можно и генерировать наши ковры

Полученная генерация

Original size 2893x886

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

Original size 2893x886

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

Original size 2843x886

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

Original size 2837x855

Здесь нейросеть выдала особенно выразительные и смелые вариации ковров. Первый ковер синие с концентрическими кругами и сложной сеткой узора напоминает мандалу он выглядит почти гипнотически. Второй зелёный с лабиринтоподобным паттерном получился более графичным и современным. Третий насыщенно-оранжевый с тёмными акцентами отсылает к классическим восточным коврам, но с более смелой палитрой.

post

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

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

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

1. Stable Diffusion XL Base 1.0 Основная модель генерации изображений https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0 2. VAE-фикс для SDXL от madebyollin Использовал для улучшенного сжатия и декодирования латентного пространства https://huggingface.co/madebyollin/sdxl-vae-fp16-fix 3. BLIP image captioning base от Salesforce Применял для генерации текстовых описаний к изображениям ковров https://huggingface.co/Salesforce/blip-image-captioning-base 4. Diffusers (репозиторий) Библиотека для работы с генеративными моделями, в том числе SDXL и LoRA https://github.com/huggingface/diffusers

В процессе работы над проектом KÖVER активно использовалась языковая модель ChatGPT 4O (от OpenAI). Она применялась для составления текстовых описаний (промптов) к изображениям ковров, используемых на этапе генерации новых визуальных образов с помощью дообученной модели SDXL

Original size 988x70

Пример запроса к Chat GPT для генерации промта.

Работа проводилась в Google Colab с использованием кастомного пайплайна, построенного на базе официального примера Hugging Face, адаптированного под нужды проекта.

Дополнительные материалы

KOVËR: дообучение Stable Diffusion
34
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