Bildbearbeitungstreue und Anatomie (beliebiges Modell)
Diese Regeln gelten für jedes Bildmodell. Sie beschreiben, wie das Ergebnis aussehen muss und wie es zu überprüfen ist; die modellspezifische Fähigkeit (qwen-image-2, storyboard-keyframes, fal-runner zur Ausführung) liefert Endpunkte, Parameter, Grenzen und Aufforderungsstil. Wenn eine modellspezifische Fähigkeit existiert, befolgen Sie beide: deren Parameter und diese Treueregeln. Fertige Bearbeitungsanleitungen befinden sich in references/edit-patterns.md.
Wie die Regeln für ein bestimmtes Modell ausgedrückt werden:
- Negativprompt-Feld (Qwen, Seedream, Stable Diffusion, Kling): die Anatomie- und Treuelisten aus §1 und §2 dort einfügen.
- Kein Negativprompt-Feld (GPT Image, Nano Banana / Gemini, Flux Kontext und die meisten Instruktionsbearbeitungsmodelle): als positive Aussagen in den Prompt schreiben ("jede Person hat einen Kopf, zwei Arme und zwei Beine", "der Raum, die Möbel und Gegenstände bleiben exakt so, wie sie sind") und einen kurzen Ausschlusssatz am Ende ("Füge keine Personen oder Gegenstände hinzu oder entferne sie"). Keine lange "kein X, kein Y"-Liste in den Prompt einfügen: viele Modelle zeichnen die genannten Objekte.
- Prompt-Umschreibung (Qwen
enable_prompt_expansion, Model Studioprompt_extend, "magic prompt"-Optionen): für Bearbeitungen ausschalten; der Umschreiber fügt Requisiten und Stile hinzu, die nicht in der Referenz sind. - Welche Eingabe die Ausgabegröße festlegt, unterscheidet sich pro Modell (Qwen: das letzte Bild; andere: das erste oder ein explizites Größenfeld). Das Schema prüfen und die Ausgabe auf das Seitenverhältnis und die Größe der Basisreferenz einstellen.
- Längenbegrenzungen unterscheiden sich (Qwen fal-Bearbeitung: 800 Zeichen). Wenn die KEEP-Klausel nicht passt, die Gegenstände behalten, die am wahrscheinlichsten abweichen (§2 Schritt 2).
1. Menschliche Anatomie: immer intakt
Jede Person in jeder Ausgabe hat normale menschliche Anatomie: genau einen Kopf, zwei Augen, eine Nase, einen Mund, zwei Ohren, einen Hals, zwei Arme, die an den Schultern befestigt sind, zwei Hände mit je fünf Fingern, zwei Beine, die an den Hüften befestigt sind, zwei Füße. Keine zusätzlichen oder fehlenden Köpfe, Gliedmaßen, Hände oder Finger; keine Gliedmaßen, die aus dem Rücken, der Brust, dem Bauch oder einer anderen Person wachsen; keine verschmolzenen Körper; keine Gelenke, die sich in die falsche Richtung biegen. Dies gilt für Text-zu-Bild und Bearbeitungen, für Hintergrundpersonen und für stilisierte Bilder (Cartoon, Comic, Gemälde), es sei denn, der Benutzer bittet ausdrücklich um eine nicht-menschliche Kreatur. Ein Bild mit einem deformierten Körper ist ein Defekt, egal wie gut der Rest ist.
Warum es passiert: Diffusionsmodelle verlieren den Überblick, welches Glied zu wem gehört, wenn sich Körper überlappen (Umarmungen, Händchenhalten, Menschenmengen, eine Person, die ein Kind trägt), wenn Hände klein oder versteckt sind und in komplexen Posen. Verhindern Sie es im Prompt und fangen Sie es bei der Prüfung ab.
- Prompt. Für jede Person sagen, wo sich jeder Arm und jede Hand befindet und was sie tut ("ihre rechte Hand hält eine Tasse auf Brusthöhe, ihr linker Arm hängt entspannt an ihrer Seite"), und wo die Beine sind ("stehend, Gewicht auf dem linken Bein", "sitzend mit gekreuzten Beinen"). Die Anzahl der Körper nennen, wenn es mehrere Personen gibt ("genau drei Personen, jede mit einem Kopf, zwei Armen und zwei Beinen"). Natürliche Anatomie in den Stilsatz schreiben: "anatomisch korrekte menschliche Körper, natürliche Proportionen". Kontakt genau beschreiben: wessen Hand auf wessen Schulter ruht.
- Komposition, die Körper lesbar hält. Posen bevorzugen, bei denen beide Hände sichtbar oder deutlich versteckt sind (in Taschen, hinter dem Rücken, außerhalb des Bildausschnitts); Verflechtungen von ineinander verschlungenen Armen, direkt hintereinander stehenden Personen und durch den Bildausschnitt mehrdeutig abgeschnittene Gliedmaßen vermeiden. Mehr Personen bedeuten kleinere Körper und mehr Fehler: die Anzahl so niedrig halten, wie es die Anfrage erlaubt; in Menschenmengen Hintergrundpersonen klein, einfach und teilweise durch klare Objekte verdeckt halten.
- Anatomie-Ausschlussliste (Negativprompt oder ein positiver Satz, wo es kein Negativfeld gibt):
extra Gliedmaßen, extra Arme, extra Beine, extra Hände, extra Finger, fehlende Finger, zwei Köpfe, extra Kopf, extra Augen, verschmolzene Körper, Gliedmaßen aus dem Oberkörper, deformierte Hände, fehlerhafte Anatomie. - Bearbeitungen. Das Ändern einer Pose, Kleidung oder das Hinzufügen einer Person darf keine Körperteile hinzufügen oder verlieren: "gleiche Anatomie: ein Kopf, zwei Arme, zwei Beine für jede Person" in die KEEP-Klausel (§2) setzen. Eine Posenänderung ist die Bearbeitung mit dem höchsten Risiko; jede Person im Bild überprüfen, nicht nur die bearbeitete.
- Jede Person vor dem Zeigen überprüfen (jeden Körper auf volle Größe zuschneiden und zoomen; kleine Hintergrundfiguren eingeschlossen): Köpfe, Augen, Arme, Hände, Beine, Füße zählen; Finger an jeder sichtbaren Hand zählen; jedes Glied zu seiner Schulter oder Hüfte zurückverfolgen und bestätigen, dass es zum richtigen Körper gehört; nach Gliedmaßen suchen, die aus dem Rücken, der Brust oder dem Hals wachsen, nach verschmolzenen Händen, einem dritten Bein zwischen zwei Personen, verdrehten Gelenken. Die Anzahl pro Person in die Prüfnotizen schreiben ("P1: 1 Kopf, 2 Arme, 2 Hände 5+5, 2 Beine: OK").
- Reparatur. Ein kleiner Hand- oder Fingerfehler: einen Bearbeitungsdurchlauf an einem Zuschnitt um die Hand herum durchführen ("korrigiere die linke Hand: fünf Finger, natürliche Pose, die Tasse haltend"), dann den Zuschnitt zurück einfügen (
ref_diff.py --paste-back). Ein zusätzliches oder fehlendes Glied oder ein zusätzlicher oder fehlender Kopf: mit einer einfacheren Pose, weniger Überlappungen und der Gliedmaßenbeschreibung aus Schritt 1 neu generieren. Niemals ein Bild mit einem deformierten Körper als fertiges Ergebnis zeigen; wenn der Benutzer dennoch einen Entwurf sehen möchte, den Defekt benennen.
2. Referenztreue: nur das ändern, worum gebeten wurde
Wenn der Benutzer ein Referenzbild anhängt, ist die Referenz die Grundwahrheit und die Anfrage ist eine minimale Abweichung darauf. Alles, was der Benutzer nicht zu ändern gebeten hat, bleibt so, wie es ist: Anzahl der Personen und wer sie sind, ihre Posen und Plätze, Kleidung, der Raum oder die Straße, Möbel und Gegenstände in der Umgebung, deren Anzahl und Positionen, Bildausschnitt und Kamerawinkel, Lichtrichtung und Farbe, Stil und Textur, jeglicher Text. Eine Bearbeitung, die "gut aussieht", aber eine Person hinzugefügt, einen Stuhl verschoben oder das Fenster geändert hat, ist eine fehlgeschlagene Bearbeitung. Die meisten Modelle rendern das gesamte Bild neu und sind frei, es zu "verbessern", daher muss die Treue explizit eingefordert und dann überprüft werden.
- Die Referenz vor dem Schreiben von irgendetwas inventarisieren. In voller Größe ansehen (Zuschnitte für kleine Bereiche) und
reference_inventory.mdim Projektordner schreiben:- Bildausschnitt: Aufnahmegröße, Kamerahöhe und -winkel, was jede Bildkante berührt, Seitenverhältnis, Pixel;
- Personen: exakte Anzahl; für jede, Position im Bild (links/mitte/rechts, Vorder- oder Hintergrund), Pose, Blickrichtung, Hände, Kleidung von Kopf bis Schuhe, Haare, Alter, was sie hält;
- Umgebung: Raum oder Ort, Wände, Fenster, Türen, Boden, Möbel mit Positionen;
- Gegenstände: jedes sichtbare Objekt mit Anzahl, Farbe und wo es liegt (3 Tassen auf dem Tisch, nicht "Tassen");
- Licht: Quellenrichtung, Härte, Farbtemperatur, Schatten, Tageszeit;
- Stil: Foto oder Illustration, Körnung, Farbkorrektur, Schärfentiefe;
- Text und Logos, wörtlich.
Dann in zwei Listen aufteilen:
CHANGE(nur das, was der Benutzer verlangt hat) undKEEP(der ganze Rest). Wenn die Anfrage hinsichtlich des Umfangs mehrdeutig ist ("mach es gemütlicher": Möbel? Licht? beides?), vor dem Generieren nachfragen, anstatt das Modell entscheiden zu lassen.
- Den Bearbeitungsprompt als Änderung + Behalten schreiben. Erster Satz: die angeforderte Änderung, spezifisch und lokal (was, wo, wie groß, welche Seite des Bildes). Dann die Erhaltungsklausel, aufgebaut aus
KEEP, konkrete Objekte benennend, anstatt "alles andere": "Behalte genau zwei Personen: den Mann links in einem grauen Pullover und die Frau rechts in einem blauen Kleid, gleiche Gesichter, Posen und Positionen. Behalte den Holztisch mit drei weißen Tassen, das Fenster links, das Bücherregal rechts, das warme Licht vom Fenster, den Bildausschnitt und den Kamerawinkel unverändert. Füge keine Personen oder Gegenstände hinzu oder entferne sie." Bei einer Längenbegrenzung die Objekte behalten, die am wahrscheinlichsten abweichen: Personenanzahl und -identität, Objekte in der Nähe des bearbeiteten Bereichs, Hintergrundarchitektur, Bildausschnitt. Nur die Änderung detailliert beschreiben; nicht die gesamte Szene mit neuen Worten neu beschreiben, da dies das Modell dazu einlädt, sie neu zu zeichnen. - Einstellungen, die die Referenz schützen:
- Prompt-Umschreibung aus;
- Ausgabegröße = Seitenverhältnis und Größe der Referenz; ein anderes Seitenverhältnis zwingt das Modell, Inhalt zu erfinden oder zu beschneiden;
- die Basisreferenz an der Position, die die Ausgabegröße festlegt, aufgerufen durch ihre Nummer im Prompt; nur Referenzen anhängen, die die Änderung benötigt, jedes zusätzliche Bild ist eine weitere Driftquelle;
- Maske oder Inpainting-Modus, wenn das Modell einen anbietet: nur den zu ändernden Bereich maskieren;
- Treue-Ausschlussliste:
extra Personen, fehlende Personen, andere Person, geänderter Hintergrund, hinzugefügte Objekte, entfernte Objekte, anderer Bildausschnitt, andere Beleuchtung, plus die Anatomieliste aus §1; - günstige Stufe für Entwürfe; eine Ausgabe pro Aufruf, bis die Anweisung hält, dann 2-3.
- Gegen die Referenz prüfen, nicht für sich allein. Ausführen:
python3 ~/.claude/skills/image-edit-fidelity/scripts/ref_diff.py <referenz> <ausgabe> --allow x0,y0,x1,y1(das Rechteck, in dem die Änderung stattfinden sollte, in Referenzpixeln). Es meldet, wie viel sich pro Gitterzelle außerhalb dieses Rechtecks geändert hat, und schreibt eine Seite-an-Seite-Ansicht und eine Heatmap. Dannreference_inventory.mdZeile für Zeile anhand der Ausgabe durchgehen: Personenanzahl und -identität, jedes Objekt und seine Position, Hintergrund, Licht, Bildausschnitt, Text. JedesKEEP-Element, das sich geändert hat, ist ein Defekt, selbst ein kleiner. - Reparatur anstelle einer Neugenerierung des gesamten Bildes. Wenn die Änderung richtig ist, aber der Rest abgewichen ist, nur den geänderten Bereich zurück in das Original einfügen:
ref_diff.py <referenz> <ausgabe> --allow <rechteck> --paste-back final.png(weiche Kante, der Rest des Bildes kommt Pixel für Pixel von der Referenz). Wenn die Änderung selbst falsch ist, denCHANGE-Satz präzisieren und die abgewichenen Elemente namentlich zuKEEPhinzufügen; pro Wiederholungsversuch eine Sache ändern. - Bericht an den Benutzer: was sich geändert hat und was bestätigt wurde, dass es erhalten geblieben ist; jede akzeptierte Abweichung benennen.
3. Ein Teil von einer Referenz in eine andere übertragen
Wenn der Benutzer bittet, ein Element aus einer Quellreferenz (eine Jacke, eine Lampe, ein Gesicht, ein Logo, ein Himmel) zu nehmen und in eine Zielreferenz einzufügen, passieren genau zwei Dinge: das benannte Element wird aus der Quelle kopiert, und der benannte Ort im Ziel wird dadurch ersetzt. Nichts anderes bewegt sich in eine der Richtungen:
- aus der Quelle NUR das benannte Element nehmen: nicht seinen Hintergrund, andere Personen oder Objekte, Farben, Beleuchtung, Stil oder Bildausschnitt;
- im Ziel NUR den benannten Ort ändern: Personen, deren Anzahl, Gesichter, Posen, Kleidung, Objekte, Umgebung, Licht, Bildausschnitt und Text bleiben wie im Ziel (§2 KEEP-Liste, erstellt aus dem Inventar des Ziels);
- nichts hinzufügen, "um es anzupassen" (zusätzliche Requisiten, Schatten nicht existierender Objekte, neue Personen). Die einzige erlaubte Anpassung ist, dass das Element selbst die Perspektive, den Maßstab und das Licht des Ziels annimmt, sodass es natürlich am ersetzten Ort sitzt.
So geht's:
- Das Ziel inventarisieren (§2) und das Element in der Quelle präzise beschreiben (was, Farbe, Material, Form, Details, die erhalten bleiben müssen: Knöpfe, Aufdruck, Logo).
- Die Quelle eng um das Element herum zuschneiden (die minimale Seitenlänge des Modells respektieren, 384 px für Qwen) vor dem Hochladen, damit das Modell nichts anderes daraus entlehnen kann. Das Ziel an die Position setzen, die die Ausgabegröße festlegt.
- Prompt-Struktur: "Nimm nur [Element mit Hauptmerkmalen] aus Bild 1. Ersetze in Bild 2 [genauen Ort: wessen, welche Seite, welches Objekt] damit, wobei die Perspektive, der Maßstab und das Licht von Bild 2 übernommen werden. Nimm nichts anderes aus Bild 1: nicht dessen Hintergrund, Personen, Farben oder Beleuchtung. Alles andere in Bild 2 bleibt genau so, wie es ist: [KEEP-Elemente aus dem Zielinventar, Personenanzahl, Gesichter, Posen, Objekte, Umgebung, Bildausschnitt]. Füge keine Personen oder Gegenstände hinzu oder entferne sie." Die Bildnummern tauschen, wenn das Modell die Basis zuerst haben möchte.
- Prüfen mit
ref_diff.py <ziel> <ausgabe> --allow <rechteck des ersetzten Ortes>: Änderungen außerhalb des Rechtecks sind Defekte; mit--paste-backreparieren. Auch das übertragene Element mit dem Quellzuschnitt vergleichen: Form, Farbe, Aufdruck und Details müssen übereinstimmen.
Kopfersatz
Der Kopf einer Person aus Bild 1 auf eine Person in Bild 2 ist der strengste Fall dieser Regel. Bei der Zielperson wird NUR der Kopf ersetzt: Gesicht, Gesichtszüge, Gesichtshaut, Haare und Ohren stammen aus Bild 1; Kopfwinkel, Neigung, Blickrichtung, Maßstab und das Licht der Szene folgen dem Ziel, sodass der Kopf auf dem vorhandenen Hals sitzt. Alles andere der Zielperson bleibt wie in Bild 2: Körper, Statur, Nacken und Schultern, Kleidung, Pose, Hände, Accessoires unterhalb des Kopfes; andere Personen behalten ihre eigenen Köpfe und alles andere; die Umgebung, Objekte und der Bildausschnitt ändern sich nicht. Nichts aus Bild 1 außer dem Kopf (dessen Kleidung, Körper, Hintergrund, andere Personen) erscheint in der Ausgabe.
- Vor dem Aufruf die mehrdeutigen Teile nur mit dem Benutzer klären, wenn sie existieren: Kopfschmuck,
... (Gekürzt für die Übersetzung)