LoRA (Low-Rank Adaptation) ist eine parameter-effiziente Fine-Tuning-Methode, die es ermöglicht, Stable-Diffusion-Modelle auf eigene Stile, Charaktere oder Konzepte zu trainieren, ohne den vollständigen Checkpoint zu modifizieren.
Rubrik: GenAI & Content Creation · Unterrubrik: Stable Diffusion · Niveau: Fortgeschritten
Was ist LoRA Training?
LoRA wurde ursprünglich von Hu et al. (2022) für die Adaption großer Sprachmodelle entwickelt und schnell für Bildgenerierungsmodelle übernommen. Die zentrale Idee: Statt alle Milliarden von Modellgewichten anzupassen, werden nur kleine, niederrangige Matrizen trainiert, die die Differenz zum Originalmodell darstellen.
Das Ergebnis: Eine LoRA-Datei ist typischerweise 50–500 MB groß, während ein vollständiger SDXL-Checkpoint 6–8 GB belegt. LoRAs können auf beliebige Basismodelle angewendet, kombiniert und mit unterschiedlichen Gewichtungen gemischt werden — ohne den ursprünglichen Checkpoint zu verändern.
Erklärung
Technischer Hintergrund
In Transformer-Architekturen (wie dem U-Net von Stable Diffusion mit seinen Attention-Schichten) werden Gewichtsmatrizen W durch einen zusätzlichen Term ergänzt:
`` W_neu = W_original + ΔW ΔW = A × B (niedrigrangige Zerlegung) ``
Hierbei ist A eine Matrix der Dimension (d × r) und B eine Matrix (r × k), wobei r (der Rang) typischerweise 4–64 beträgt — viel kleiner als die Originaldimension d oder k (oft 1024 oder 2048). Nur A und B werden trainiert.
LoRA-Varianten
Standard LoRA: Trainiert Attention-Schichten (q, k, v, out). Basisversion, guter Kompromiss zwischen Dateigröße und Qualität.
LyCORIS / LoHa / LoKr: Erweiterte LoRA-Varianten, die mehr Schichten des Modells modifizieren. Bessere Qualität, etwas größere Dateien. LyCORIS ist de facto Standard geworden.
DoRA: Weight-Decomposed Low-Rank Adaptation — neuerer Ansatz mit besserer Parameterausnutzung.
LoRA-Stärke beim Anwenden: Beim Laden einer LoRA kann die Stärke (Weight) 0–2 eingestellt werden. 0.8–1.0 ist typisch; zu hohe Werte verzerren die Bildqualität.
Datensatz-Anforderungen
Mindestanzahl Bilder:
- Objekt/Charakter: 15–30 hochwertige Bilder
- Stil: 30–100 Bilder
- Konzept: 20–50 Bilder
Bildanforderungen:
- Einheitliche, hochauflösende Bilder (min. 512×512, für SDXL min. 1024×1024)
- Verschiedene Perspektiven, Beleuchtungen, Posen (für Charaktere)
- Konsistenter Stil ohne gemischte Elemente (für Stil-LoRAs)
- Sauber zugeschnitten, kein störender Hintergrund (für Objekttraining)
Caption-Strategien:
- WD14-Tagger (automatisch): Generiert Tags aus Bildern via CLIP-Klassifikation
- BLIP-Captioning: Erzeugt natürlichsprachige Beschreibungen
- Manuelles Captioning: Höchste Qualität, aber zeitaufwändig
- Trigger-Word: Ein eindeutiges Wort (z. B.
johndoe_person) kennzeichnet das LoRA-Konzept im Prompt
Schritt-für-Schritt / Einrichtung
Kohya SS installieren
``bash git clone https://github.com/bmaltais/kohya_ss cd kohya_ss setup.bat bash setup.sh python kohya_gui.py ``
LoRA-Training-Parameter (SD 1.5)
```yaml Basismodell: sd-v1-5.safetensors Netzwerk-Typ: LoRA (oder LyCORIS/LoHa für bessere Qualität) Netzwerk-Rang (Dim): 32 Netzwerk-Alpha: 16 # Typisch: Alpha = Rank/2
Training-Auflösung: 512 Batch-Größe: 1 (bei 6 GB VRAM), 2 (bei 12 GB) Epochen: 10–20 Wiederholungen: 10 (pro Epoche werden Bilder 10x genutzt) Lernrate: 1e-4 (Netzwerk), 5e-5 (Text-Encoder) Optimizer: AdamW8bit oder Prodigy (adaptive LR) LR-Scheduler: Cosine with restarts Mixed Precision: fp16 ```
DreamBooth vs. LoRA
DreamBooth (Ruiz et al., 2022): Trainiert den gesamten Checkpoint auf wenige Referenzbilder. Sehr gute Qualität, aber 6–8 GB Ausgabe-Checkpoint. Selten noch genutzt.
LoRA: Kleiner, portierbar, auf beliebige Basismodelle anwendbar. De-facto-Standard.
Beispiele (5 konkrete Anwendungsfälle)
- Markenstil-LoRA: Eine Werbeagentur trainiert ein LoRA auf die visuelle Sprache eines Klienten — spezifische Farbpalette, Bildkomposition, Fotografie-Ästhetik. Alle generierten Bilder entsprechen automatisch dem Brand-Guideline.
- Illustration-Stil-LoRA: Ein Illustrator digitalisiert seinen Handzeichnungsstil als LoRA. Klienten können damit Auftragsbilder eigenständig generieren, ohne den Stil kopieren zu können (durch Trigger-Word-Kontrolle).
- Produkt-LoRA: Ein E-Commerce-Anbieter trainiert ein LoRA auf sein Hauptprodukt (z. B. eine Schuhkollektion). Das Produkt lässt sich dann in beliebige Szenarien platzieren, ohne Photoshop-Compositing.
- Charakter-Konsistenz für Comics: Comicproduzenten trainieren LoRAs auf ihre Hauptcharaktere. So bleibt die Optik über alle Panels konsistent, auch wenn Pose und Hintergrund variieren.
- Fotorealismus-Boost: LoRAs wie „PhotoHelper" oder Embedding-Modelle werden mit negativen Prompts kombiniert, um die Bild-Grundqualität zu verbessern, ohne eigene Trainingsdaten zu nutzen.
In der Praxis
LoRA kombinieren
In AUTOMATIC1111 können mehrere LoRAs gleichzeitig aktiviert werden:
`` Prompt: a woman in a park, <lora:johndoe_style:0.7>, <lora:natural_light:0.4> ``
Wichtig: Zu viele LoRAs oder zu hohe Gewichtungen führen zu Bildkorruption. Als Faustregel: Summe aller LoRA-Gewichte sollte 1.0–1.5 nicht überschreiten.
Training auf SDXL
SDXL-LoRA-Training erfordert:
- Mindestens 16 GB VRAM für volle Qualität
- Trainingsauflösung: 1024×1024
- Größere Netzwerk-Dimension empfohlen (Rank 64–128)
- Längere Trainingszeit
Flux-LoRA-Training: In frühem Stadium der Community-Entwicklung. SimpleTuner und kohya_ss mit Flux-Branch werden genutzt. Stark wachsendes Feld.
Vergleich & Abgrenzung
| Methode | Dateigröße | VRAM-Training | Qualität | Flexibilität |
|---|---|---|---|---|
| LoRA | 50–200 MB | 6 GB | Gut | Sehr hoch |
| LyCORIS/LoHa | 100–500 MB | 8 GB | Sehr gut | Sehr hoch |
| DreamBooth | 6–8 GB | 12 GB | Sehr gut | Gering |
| Textual Inversion | 50–100 KB | 6 GB | Mittel | Mittel |
| Hypernetwork | 50–300 MB | 6 GB | Mittel | Mittel |
Häufige Fragen (FAQ)
F: Wie viele Bilder brauche ich für ein gutes LoRA? Für Charakter-LoRAs sind 20–40 hochwertige, diverse Bilder ausreichend. Weniger als 15 führt zu Overfitting (das Modell kann nur die Trainingsbilder reproduzieren). Für Stil-LoRAs sind 50–100 Bilder empfehlenswert. Bildqualität schlägt Quantität: 20 perfekte Bilder sind besser als 100 schlechte.
F: Warum verliert mein LoRA die allgemeinen Fähigkeiten des Basismodells? Das ist Overfitting. Symptome: Das Modell kann nur noch das trainierte Konzept zeichnen, andere Inhalte werden verzerrt. Gegenmaßnahmen: weniger Epochen, niedrigere Lernrate, regularization images (zufällige Bilder aus dem Basismodell zur Erhaltung allgemeiner Fähigkeiten) hinzufügen.
Verwandte Einträge
- IP-Adapter — Stilübertragung ohne Training als Alternative zu LoRA
- Modelle & Checkpoints — Fertige LoRAs von Civitai und Hugging Face laden
- ControlNet — Strukturkontrolle kombiniert mit LoRA-Stilen
Weiterführend
- Hu, E. et al. (2022). LoRA: Low-Rank Adaptation of Large Language Models.
- Ruiz, N. et al. (2022). DreamBooth: Fine Tuning Text-to-Image Diffusion Models.
- Kohya SS GitHub:
- Civitai LoRA-Bibliothek:
