Проект: Обучение Stable Diffusion для стиля «CHERKASHIN style»
- Описание идеи проекта
Цель проекта: обучить модель Stable Diffusion с использованием метода LoRA (Low-Rank Adaptation) для генерации изображений в специфическом художественном стиле — "photo collage in CHERKASHIN style".
Концепция стиля:
- Смешанная техника: коллаж из фотографий с элементами живописи
- Характерные мотивы: часы, башни, статуи, городские пейзажи, фигуры людей и птиц
- Сюрреалистичная композиция с наложением слоёв
- Винтажная эстетика с художественной обработкой
Технический подход:
- Метод: Dreambooth + LoRA для SDXL
- Уникальный токен:
CHERKASHIN style - Размер изображений: 512×512 (оптимизировано для Colab T4/P100)
- Precision: fp16 для экономии памяти
- Исходные изображения для обучения
Датасет: 20 изображений в формате JPG, квадратное соотношение 1:1
Датасет: 20 изображений в формате JPG, квадратное соотношение 1:1
исходные изображения были сгенерированы при помощи https://giga.chat/oidc-result?state=019d1f0e-7f9c-733a-8d96-a6da6b4356aa&code=046C54D1-7816-40E2-BAFB-A3C3435E6EEB
Процесс подготовки капций:
caption_prefix = "photo collage in CHERKASHIN style, "
BLIP генерирует описание: "a painting of a building with a clock on top"
Итоговая капция: "photo collage in CHERKASHIN style, a painting of a building with a clock on top"
- Результирующая серия изображений
Промпт для генерации:
«photo collage in CHERKASHIN style, times square, new york»
Параметры генерации: python pipe.load_lora_weights("cherakshin_style_LoRA") image = pipe( prompt="photo collage in CHERKASHIN style, times square, new york", num_inference_steps=25, guidance_scale=7.5 # по умолчанию ).images[0]
- Развёрнутый комментарий к результатам
Что удалось передать:
Стилевые маркеры:
- Префикс
CHERKASHIN styleуспешно активирует ассоциативный ряд модели - Сохраняется композиционная сложность, характерная для коллажей
- Присутствуют элементы наложения и смешения техник
- Префикс
Визуальные паттерны:
- Архитектурные элементы (башни, часы, статуи)
- Фигуративные мотивы (люди, птицы, ангелы)
- Текстуры, имитирующие живописные мазки
Адаптивность к новым промптам:
- Модель применяет стиль к новым объектам ("times square, new york")
- Сохраняется баланс между содержанием запроса и стилизацией
Технические детали генерации:
# Использование LoRA с масштабируемым влиянием
pipe.fuse_lora(lora_scale=0.5) # 0.0–1.0: контроль силы применения стиля
# Оптимизация памяти для Colab
vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16)
pipe.to("cuda") # Загрузка на GPU
Сравнение с исходным датасетом:
- Сохраняется общая эстетика коллажа
- Присутствуют характерные мотивы (часы, статуи)
- Некоторые генерации могут требовать доработки промпта для точности
5. Ноутбук с кодом: процесс обучения
Этап 1: Подготовка окружения
!pip install bitsandbytes transformers accelerate peft
!pip install git+https://github.com/huggingface/diffusers.git
!wget https://raw.githubusercontent.com/huggingface/diffusers/main/examples/dreambooth/train_dreambooth_lora_sdxl.py
Этап 2: Загрузка и подготовка датасета
Загрузка изображений в папку ./cher/
Генерация капций через BLIP
blip_model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base")
Создание metadata.jsonl
entry = {"file_name": "img.jpg", "prompt": "photo collage in CHERKASHIN style, "}
Этап 3: Конфигурация обучения
accelerate launch train_dreambooth_lora_sdxl.py \
--pretrained_model_name_or_path="stabilityai/stable-diffusion-xl-base-1.0" \
--dataset_name="cher" \
--output_dir="cherakshin_style_LoRA" \
--caption_column="prompt" \
--instance_prompt="photo collage in CHERKASHIN style" \
--resolution=512 \
--train_batch_size=2 \
--gradient_accumulation_steps=3 \
--learning_rate=1e-4 \
--max_train_steps=500 \
--mixed_precision="fp16" \
--use_8bit_adam \
--gradient_checkpointing
Этап 4: Сохранение и деплой
Сохранение LoRA-весов
Загрузка на Hugging Face Hub
upload_folder(repo_id=repo_id, folder_path=output_dir)




