Stable Diffusion
Ein Open-Source Bildgenerierungsmodell, das aus Textbeschreibungen fotorealistische Bilder erzeugt – basierend auf der Diffusions-Architektur.
Eine Fine-Tuning-Technik für Diffusionsmodelle, die mit wenigen Bildern neue Konzepte lernt – für personalisierte Bildgenerierung von Personen, Objekten oder Stilen.
DreamBooth ist eine Technik, um Bildgenerierungs-Modellen neue Konzepte beizubringen – mit nur wenigen Beispielbildern. Du kannst dein Gesicht, dein Haustier oder ein Produkt “einlernen” und dann in beliebigen Szenen generieren.
Der Prozess:
Input: 5 Fotos von dir
↓
DreamBooth Training (30-60 Min)
↓
Output: Modell kennt "sks person" = du
Prompt: "sks person as astronaut on mars"
→ Bild von DIR als Astronaut auf dem Mars
Warum “sks”?
Beispiel-Prompts nach Training:
"sks person in a suit, professional photo"
"sks person as anime character"
"sks person in renaissance painting style"
"sks person at the beach, sunset"
from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler
from diffusers.training_utils import EMAModel
import torch
# Basis-Modell laden
model_id = "stabilityai/stable-diffusion-xl-base-1.0"
pipe = DiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
# Training-Konfiguration
training_args = {
"instance_prompt": "a photo of sks person",
"class_prompt": "a photo of a person", # Prior Preservation
"instance_data_dir": "./my_photos",
"class_data_dir": "./class_photos",
"num_class_images": 200,
"learning_rate": 1e-6,
"max_train_steps": 800,
"train_batch_size": 1,
}
Problem: Modell "vergisst" allgemeines Wissen über "person"
→ Alle Personen sehen aus wie du
Lösung: Prior Preservation
→ Trainiere auch auf generische "person"-Bilder
→ Modell behält allgemeines Wissen
# Loss-Funktion
loss = mse_loss(noise_pred, noise) # Instance Loss
if use_prior_preservation:
prior_loss = mse_loss(prior_noise_pred, prior_noise)
loss = loss + prior_preservation_weight * prior_loss
| Methode | Trainiert | Größe | Qualität | Speed |
|---|---|---|---|---|
| DreamBooth | Ganzes Modell | ~4 GB | ⭐⭐⭐⭐⭐ | Langsam |
| DreamBooth-LoRA | LoRA-Adapter | ~50-200 MB | ⭐⭐⭐⭐ | Mittel |
| Textual Inversion | Nur Embedding | ~10 KB | ⭐⭐⭐ | Schnell |
# Beliebtes Tool für DreamBooth/LoRA Training
accelerate launch train_network.py \
--pretrained_model_name_or_path="stabilityai/stable-diffusion-xl-base-1.0" \
--train_data_dir="./training_images" \
--output_dir="./output" \
--resolution=1024 \
--train_batch_size=1 \
--learning_rate=1e-4 \
--max_train_steps=1000 \
--network_module=networks.lora \
--network_dim=32
| Aspekt | Empfehlung |
|---|---|
| Anzahl | 10-20 Bilder optimal |
| Qualität | Scharf, gut belichtet |
| Vielfalt | Verschiedene Winkel, Beleuchtung |
| Hintergrund | Variiert, nicht immer gleich |
| Auflösung | Mindestens 512×512, besser 1024×1024 |
| Konsistenz | Gleiches Subjekt, keine Verwechslung |
from diffusers import DiffusionPipeline
# Trainiertes Modell laden
pipe = DiffusionPipeline.from_pretrained(
"./dreambooth_output",
torch_dtype=torch.float16
).to("cuda")
# Generieren mit Trigger-Wort
image = pipe(
"sks person as a superhero, comic book style",
num_inference_steps=30,
guidance_scale=7.5,
).images[0] DreamBooth ist wie ein Künstler, der nach ein paar Fotos von dir lernt, dich in jedem Stil und jeder Situation zu malen – ob als Astronaut, im Renaissance-Gemälde oder als Anime-Charakter.
Lernt neue Konzepte aus 3-5 Bildern
Bindet Konzept an ein einzigartiges Token (z.B. 'sks person')
Ermöglicht personalisierte Bildgenerierung in beliebigen Kontexten
Personalisierte Avatare
Eigenes Gesicht in verschiedenen Stilen und Szenen
Produkt-Visualisierung
Produkte in verschiedenen Kontexten darstellen
Haustier-Portraits
Haustiere in kreativen Szenarien
Marken-Assets
Konsistente Charaktere für Marketing
Minimum 3-5, optimal 10-20. Verschiedene Winkel, Beleuchtungen und Hintergründe helfen. Qualität wichtiger als Quantität.
DreamBooth trainiert das ganze Modell (oder große Teile). LoRA trainiert nur kleine Adapter-Gewichte. LoRA ist schneller und kleiner, DreamBooth oft qualitativ besser.
Ja! DreamBooth-LoRA ist sehr beliebt: DreamBooth-Methodik, aber nur LoRA-Gewichte trainieren. Beste aus beiden Welten.
Auf einer RTX 3090: 30-60 Minuten für Full DreamBooth, 10-20 Minuten für DreamBooth-LoRA. Cloud-Services sind schneller.