Дообучення Stable Diffusion методом DreamBooth

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Дообучення Stable Diffusion методом DreamBooth
Середній
~3-5 днів
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Дотримання Stable Diffusion через DreamBooth

DreamBooth дозволяє навчити SD на конкретному предметі (людина, продукт, стиль, персонаж) з 5–20 фотографій. Після навчання модель генерує предмет у довільних сценаріях, зберігаючи впізнаваність.

Застосування

  • Брендований продукт: кросівки в різних сценах — на природі, в місті, у студії
  • Аватари: обличчя людини в різних стилях — аніме, олійний живопис, мультфільм
  • Персонаж: ігровий персонаж у нових ситуаціях
  • Стиль художника: перенесення художнього стилю на нові сцени

Навчання Diffusers DreamBooth

pip install accelerate diffusers transformers bitsandbytes

# Сценарій навчання для SDXL DreamBooth
accelerate launch train_dreambooth_lora_sdxl.py --pretrained_model_name_or_path="stabilityai/stable-diffusion-xl-base-1.0" --instance_data_dir="./training_images" --output_dir="./dreambooth_output" --instance_prompt="a photo of sks person" --resolution=1024 --train_batch_size=1 --gradient_accumulation_steps=4 --learning_rate=1e-4 --lr_scheduler="constant" --lr_warmup_steps=0 --max_train_steps=500 --seed=42 --mixed_precision="fp16"

Підготовка набору даних

from PIL import Image
import os

def prepare_dreambooth_dataset(source_images, output_dir, target_size=1024):
    os.makedirs(output_dir, exist_ok=True)
    for i, img_path in enumerate(source_images):
        img = Image.open(img_path).convert("RGB")
        width, height = img.size
        min_dim = min(width, height)
        left = (width - min_dim) // 2
        top = (height - min_dim) // 2
        img_cropped = img.crop((left, top, left + min_dim, top + min_dim))
        img_resized = img_cropped.resize((target_size, target_size), Image.LANCZOS)
        img_resized.save(f"{output_dir}/{i:03d}.jpg", quality=95)
    print(f"Підготовлено {len(source_images)} зображень у {output_dir}")

Гіперпараметри та поради

Параметр Рекомендація Ефект
Кроки навчання 200–1000 > 1000 — переобучення
Learning rate 1e-4 до 1e-5 Нижче = стабільніше
Зображення 5–20 Різні кути/освітлення
Збереження попередніх знань Так Запобігає мовному дрейфу
Размер пакета 1–2 Обмежено VRAM

Тривалість: навчання DreamBooth LoRA (~500 кроків на RTX 3090) — 15–30 хвилин. Сервіс із завантаженням зображень користувачами та генерацією аватарів — 2–4 тижні.