Обучение Stable Diffusion XL методом DreamBooth + LoRA на авторском стиле художника и генерация серии изображений
МЕТОД: DreamBooth LoRA
МОДЕЛЬ: SDXL 1.0
ШАГОВ: 500
ДАТАСЕТ: ~20 изобр.
01. Идея проекта
Проект посвящён исследованию возможности обучить генеративную нейросеть передавать художественный почерк конкретного автора — российского художника-фотоколлажиста Валерия Черкашина. Его работы узнаваемы мгновенно: слои чёрно-белой фотографии, яркие цветовые акценты, ностальгические советские и имперские образы, орнаменты и текстуры, которые превращают коллаж в живописное полотно.
— Может ли нейросеть научиться «видеть» так, как видит художник, — собирая мир из слоёв времени и памяти?
Для ответа на этот вопрос был собран датасет из фотоколлажей Черкашина, после чего методом DreamBooth LoRA была дообучена базовая модель Stable Diffusion XL 1.0. Результат — адаптер весом ~50 МБ, который «знает» стиль художника и может применять его к любому текстовому запросу.
Концепция серии изображений строится вокруг темы «Мегаполис сквозь память»: известные городские пространства — Нью-Йорк, Токио, Москва, Париж — рендерятся в эстетике черкашинского коллажа, где современная архитектура накладывается на архивные слои и орнаментальные паттерны.
02. Датасет для обучения
Датасет составлен из ~20 квадратных изображений (1:1, JPEG, разрешение ≥ 512×512) — репродукций фотоколлажей Валерия Черкашина. Все изображения приведены к единому соотношению сторон и проверены на чёткость и читаемость деталей.
Для каждого изображения с помощью модели BLIP (Bootstrapped Language-Image Pretraining) был автоматически сгенерирован описательный кэпшн, к которому добавлялся постоянный префикс:
CAPTION PREFIX photo collage in CHERKASHIN style, ‹blip-generated description›
Несколько примеров записей из metadata.jsonl:
METADATA.JSONL (ФРАГМЕНТ)
{"file_name": "img_01.jpg", "prompt": "photo collage in CHERKASHIN style, a woman in a vintage dress surrounded by ornamental patterns and black-and-white photographs"} {"file_name": "img_02.jpg", "prompt": "photo collage in CHERKASHIN style, portrait layered with soviet-era imagery and floral textures"} {"file_name": "img_03.jpg", "prompt": "photo collage in CHERKASHIN style, city silhouette overlaid with archival photographs and decorative borders"} {"file_name": "img_04.jpg", "prompt": "photo collage in CHERKASHIN style, close-up female portrait with bright color accents and vintage newspaper fragments"}
Примеры обучающих изображений (фотоколлажи В. Черкашина):
Сетка обучающих изображений — фотоколлажи В. Черкашина из датасета
Визуальные константы стиля, которые прослеживаются в датасете:
03. Серия сгенерированных изображений «Мегаполис сквозь память»
После обучения LoRA-адаптера была сгенерирована серия из 2 изображений, объединённых темой «городские пространства мира в эстетике черкашинского коллажа». Каждый промпт включает триггер-токен CHERKASHIN style и конкретную локацию.
04. Разбор результатов
4.1 Концепция серии
Серия «Мегаполис сквозь память» исследует, как нейросеть интерпретирует художественный метод Черкашина применительно к городскому пространству. Черкашин работает с временны́ми слоями: его коллажи одновременно существуют в нескольких эпохах — архивная фотография 1900-х соседствует с орнаментом XVIII века и современным цветовым акцентом. В серии эта идея переносится на топографию: каждый город несёт в себе «архив» собственной визуальной истории.
4.2 Что удалось передать нейросети
МНОГОСЛОЙНОСТЬ
Модель научилась «накладывать» несколько визуальных планов: архитектурный фон, архивный слой и цветовой акцент существуют одновременно, не сливаясь в однородную текстуру. ЧЁРНО-БЕЛЫЕ ПОРТРЕТЫ
Триггер-фраза photo collage in CHERKASHIN style устойчиво вызывает монохромные лица — один из главных визуальных маркеров автора. ОРНАМЕНТАЛЬНОСТЬ
Декоративные паттерны появляются на границах композиции и в фоновых слоях — нейросеть ассоциирует стиль с орнаментальным оформлением краёв кадра. ЦВЕТОВОЙ АКЦЕНТ
Преобладающая гамма — золотисто-красная и янтарная, что точно соответствует теплой колористике оригинальных работ Черкашина.
4.3 Вариативность внутри серии
Два изображения демонстрируют ключевые вариации:
Влияние чекпоинта: checkpoint-500 (изобр. 1) даёт более выраженный коллажный эффект с явным наложением слоёв; checkpoint-250 (изобр. 2) — более реалистичную текстуру. Плотность слоёв: при lora_scale=0.5 архитектура читается чётче, коллажные текстуры проступают мягче. Цветовая палитра: изображение 1 тяготеет к розово-серебристому, изображение 2 — к тёплым охристо-жёлтым тонам с элементами городского реализма.
4.4 Детали генерации
Итоговые изображения генерировались с параметром num_inference_steps=25 и lora_scale=0.5 (половинная «доза» стиля). Это сознательное решение: полная шкала (1.0) давала чрезмерное «растворение» архитектуры в текстурах; 0.5 обеспечивает баланс между узнаваемостью локации и стилевым наложением.
Для изображения 1 использовался финальный чекпоинт (checkpoint-500, полный LoRA); для изображения 2 — промежуточный checkpoint-250 с pipe.fuse_lora(lora_scale=0.5), что даёт заметно иную текстуру — более мягкую, с меньшим количеством резких переходов между слоями и лучшей читаемостью архитектуры.
4.5 Ограничения и артефакты
При небольшом датасете (~20 изображений) неизбежны несколько типичных артефактов:
Overfitting-маркеры: нейросеть порой «цитирует» конкретные лица или элементы из тренировочных изображений — в изображении 1 видно появление Статуи Свободы как «призрачного» слоя. Типографика: текстовые элементы (газетные фрагменты) генерируются как псевдобуквы — SDXL не воспроизводит реальный текст. Геометрия архитектуры: прямые линии зданий иногда «плавятся» под весом коллажных текстур, что является характерным ограничением диффузионных моделей.
05. Код обучения и процесс
Обучение проводилось в Google Colab (GPU: T4 / A100, ~40 минут на 500 шагов) с использованием библиотеки diffusers (HuggingFace) и скрипта train_dreambooth_lora_sdxl.py.
Подготовка окружения Установка зависимостей: bitsandbytes, transformers, accelerate, peft, diffusers@main, datasets. Инициализация accelerate config default для однопроцессорного запуска на GPU.
Сборка датасета Загрузка изображений в папку ./cher/. Автоматическое создание кэпшнов через модель Salesforce/blip-image-captioning-base с добавлением префикса "photo collage in CHERKASHIN style, ". Результат — файл cher/metadata.jsonl.
Авторизация в HuggingFace Hub Для сохранения обученных весов на Hub используется write-токен через notebook_login(). Модель сохраняется в репозиторий cherakshin_style_LoRA.
Запуск обучения Выполнение скрипта accelerate launch train_dreambooth_lora_sdxl.py с гиперпараметрами, указанными ниже.
Инференс Загрузка базовой модели SDXL + VAE madebyollin/sdxl-vae-fp16-fix, подключение LoRA через pipe.load_lora_weights(). Генерация с 25 шагами.
Ключевые блоки кода
