ControlNet: OpenPose ist ein ControlNet-Modul, das menschliche Körperposen aus Referenzfotos als Skelett-Keypunkt-Diagramm extrahiert und Stable Diffusion anweist, neue Figuren in exakt dieser Haltung zu generieren – unabhängig von Aussehen, Kleidung oder Stil der Referenzperson.
Rubrik: GenAI & Content Creation · Unterrubrik: Stable Diffusion · Niveau: Fortgeschritten Synonyme / Auch bekannt als: Pose ControlNet, OpenPose Preprocessor, Skeleton Control
Was ist ControlNet: OpenPose?
OpenPose ist ein von CMU (Carnegie Mellon University) entwickelter Algorithmus zur Echtzeit-Erkennung menschlicher Körperpose. Der gleichnamige ControlNet-Preprocessor nutzt diesen Algorithmus, um aus einem Foto die Positionen von bis zu 18 Körperpunkten (Keypunkte: Kopf, Schultern, Ellbogen, Handgelenke, Hüfte, Knie, Knöchel) als farblich kodiertes Skelett-Bild darzustellen. Dieses Skelett dient dann als Steuerkarte für Stable Diffusion, das eine neue Figur in genau dieser Pose generiert.
Erklärung
Der OpenPose-Preprocessor erkennt Keypunkte in einem standardisierten Farbschema: Jeder Körperpunkt hat eine feste Farbe (z. B. Nase: rosa, rechte Schulter: gelb, linkes Knie: grün), verbunden durch farbige Linien. Das resultierende Skelett-Bild enthält alle Positionsinformationen, aber keine personenbezogenen Merkmale – Gesicht, Kleidung und Körperbau der Referenzperson werden vollständig ignoriert.
Innerhalb des ControlNet-OpenPose-Ökosystems gibt es verschiedene Preprocessoren mit unterschiedlichen Auflösungsgraden:
- openpose: Grundlegendes Ganzkörper-Skelett, 18 Keypunkte
- openpose_face: Zusätzliche Gesichtspunkte für Mimik-Kontrolle
- openpose_hand: Detaillierte Handpositionen (je 21 Punkte pro Hand)
- openpose_faceonly: Nur Gesicht, für Nahaufnahmen
- openpose_full: Kombination aus Körper, Gesicht und Händen – maximale Kontrolle
Die Keypunkte werden in den U-Net-Prozess von Stable Diffusion injiziert. Das ControlNet-OpenPose-Modell (z. B. control_v11p_sd15_openpose) wurde auf Bildpaaren aus Skelett-Annotationen und korrespondierenden Fotos trainiert und „kennt" die anatomische Logik menschlicher Posen.
Wichtige Parameter:
- Weight (0–2): Bestimmt, wie strikt die Pose eingehalten wird. Werte um 0.8–1.0 bieten gute Balance; über 1.3 kann die Anatomie unnatürlich wirken.
- Guidance Start/End: Früher Start (0.0–0.0) sichert die globale Pose; ein frühes Ende (0.5–0.7) erlaubt mehr anatomische Natürlichkeit in den feinen Details.
- Pixel Perfect Mode: Skaliert die Steuerkarte automatisch auf die Ausgabeauflösung.
OpenPose ist besonders wertvoll für Medienproduzenten, die:
- Charakterkonsistenz über mehrere Bilder hinweg benötigen
- Tanzchoreografien oder Sportsequenzen visualisieren
- Mode-Fotografie mit spezifischen Posen planen
- Storyboards und Concept Art für Film und Werbung erstellen
Beispiele
- Modelfotografie ohne Modell: Foto einer tanzenden Person → OpenPose-Skelett → Prompt „fashion model, haute couture dress, studio, Vogue editorial" → neue Figur in exakt gleicher Tanzbewegung, professionell gekleidet.
- Characterkonsistenz in Comics: Held in Angriffshaltung als Referenz → OpenPose → gleiche Pose für 10 verschiedene Charakterdesigns generieren – alle im selben Stil, alle identisch posiert.
- Sportvisualisierungen: Foto eines Basketballers beim Dunking → OpenPose-Skelett → Prompt „3D rendered superhero, comic style, cape, dramatic lighting" → Superheld in Dunking-Pose.
- Historische Szenen nachstellen: Historisches Gemälde mit Personenpose als Input → OpenPose → Prompt „modern urban setting, contemporary clothing, photo realistic" → gleiche Komposition, modernisierter Kontext.
- Animationsvorbereitung: Schlüsselposen aus Storyboard als Referenz → OpenPose → Generierung realistischer Einzelframes für jede Schlüsselpose → Grundlage für AnimateDiff-Sequenzen.
In der Praxis
Empfohlener Workflow in AUTOMATIC1111:
- Referenzbild mit deutlich sichtbarer Person in das ControlNet-Panel laden
- Preprocessor:
openpose_full(für maximale Kontrolle) oderopenpose(für Ganzkörperposen) - Model:
control_v11p_sd15_openpose(SD 1.5) oder SDXL-OpenPose-Modell - „Preview Annotator Result" klicken – Skelett prüfen: Sind alle Körperpunkte korrekt erkannt?
- Weight: 0.85–1.0 für genaue Posenkontrolle
- Prompt: Figur, Kleidung, Stil, Umgebung formulieren – die Pose kommt aus dem ControlNet
Häufige Fallstricke:
- OpenPose erkennt Körperpunkte nur bei ausreichend sichtbaren Gliedmaßen. Verdeckte Arme oder Beine werden oft weggelassen oder falsch interpoliert.
- Gruppen mit mehreren Personen können zu Skelett-Überlagerungen führen – am besten eine Person pro Bild.
- Handdetails werden ohne
openpose_hand-Preprocessor nicht erfasst; Hände bleiben dann oft fehlerhaft (bekanntes Stable-Diffusion-Problem). - OpenPose ist für menschliche Körper optimiert – Tiere und Fantasiefiguren werden nicht zuverlässig erkannt.
- Das Modell muss zur SD-Version passen – kein Cross-Version-Einsatz.
Vergleich & Abgrenzung
| Merkmal | OpenPose | Canny Edge | Depth Map |
|---|---|---|---|
| Erfasst | Menschliche Körperposen | Kanten und Umrisse | Räumliche Tiefe |
| Stärke | Präzise Posen-Replikation | Strukturelle Details | Szenenkomposition |
| Schwäche | Nur für Menschen | Kein Tiefeninfo | Flache Szenen ungeeignet |
| Ideal für | Mode, Charakter, Sport | Architektur, Logos | Räume, Szenen |
OpenPose lässt sich mit ControlNet: Canny Edge oder ControlNet: Depth Map kombinieren (Multi-ControlNet), um sowohl Pose als auch Hintergrundstruktur zu steuern. Dies ist besonders für vollständige Szenen nützlich, in denen eine Figur in einem definierten Raum agiert.
Häufige Fragen (FAQ)
Wie verwende ich ControlNet OpenPose in der Praxis? Ein Referenzfoto mit der gewünschten Pose wird in das ControlNet-Panel geladen, der Preprocessor auf openpose_full gesetzt und das passende OpenPose-Modell geladen. Nach dem Annotator-Preview wird das Skelett kontrolliert – alle wichtigen Körperpunkte sollten korrekt erkannt sein. Im Prompt wird die gewünschte Figur, Kleidung und Umgebung beschrieben; die Pose selbst wird vom ControlNet übernommen.
Was sind typische Fehler bei ControlNet OpenPose? Häufig werden verdeckte Körperteile falsch erkannt oder fehlen in der Skelett-Karte, was zu anatomisch unplausiblen Posen führt. Bei Gruppenbildern überlappen sich die Skelette, was Fehlgenerierungen verursacht. Wer präzise Hände benötigt, muss explizit openpose_hand verwenden – ohne diesen Preprocessor bleiben Finger häufig fehlerhaft. Ein zu hoher Weight-Wert kann zudem zu steifen, unnatürlichen Körperhaltungen führen.
Weiterführend
- ControlNet GitHub (lllyasviel)
- OpenPose CMU GitHub
- AUTOMATIC1111 ControlNet Extension
- Civitai: OpenPose-Modelle
