Zum Inhalt
lern-es.jetztby twisted pair
Rechner
Weg
Agent

FigurBeispiel (l3hr3r) ✎ eigene beschreiben

Ein Datensatz aus einem Porträt

Aus einem Bild werden 23. Andere Blickwinkel, andere Gesichtsausdrücke, andere Orte – und immer dieselbe Person.

Das bekommst du

23 Bilder derselben Person: Blickwinkel, Ausdrücke, Kleidung, Orte.

Kontaktbogen mit 23 Bildern derselben Person – Blickwinkel vor grauem Grund, Gesichtsausdrücke, verschiedene Kleidung und Orte.
ErgebnisKontaktbogen mit 23 Bildern derselben Person – Blickwinkel vor grauem Grund, Gesichtsausdrücke, verschiedene Kleidung und Orte. KI-generiert.

So legst du los

VorherLektion A1 ist abgeschlossen – figur/gesicht/referenz.png ist gewählt, ComfyUI läuft (pruefen.py A1 ist grün).

In Claude Code eingebenIn Hermes mit lokalem Qwen eingeben

Lektion A2: Erzeuge mit python3 skripte/datensatz.py -v den Datensatz aus figur/gesicht/referenz.png. Sieh dir danach jedes Bild und den Kontaktbogen figur/datensatz_arbeit/kontaktbogen.jpg an, nenne mir Bilder, auf denen es nicht eindeutig dieselbe Person ist oder die Bildbeschreibung nicht passt, und schlag Ersatz mit anderem Seed vor. Ich entscheide, was bleibt.

Im Terminal, im Kursordner

python3 skripte/datensatz.py -v
xdg-open figur/datensatz_arbeit/kontaktbogen.jpg
python3 skripte/pruefen.py A2

Was dabei passiert ↓

Ziel
23 Trainingsbilder derselben Person mit je einer Bildbeschreibung, bereit für das LoRA-Training in Lektion A3.
Rechenzeit
je Bild und Durchgang rund 5–10 Sekunden; mit dem Laden der Modelle grob eine Viertelstunde für alle 23 (geschätzt)
Hardware
1 × NVIDIA RTX 3090 (24 GB)
Software
ComfyUI · Qwen-Image-Edit-2511 (Apache 2.0) · Lightning-LoRA, 4 Schritte (Apache 2.0) · Multiple-Angles-LoRA (Apache 2.0) · Z-Image Turbo (Apache 2.0)
Daten rein
Das Referenzporträt aus Lektion A1 (figur/gesicht/referenz.png) und die Liste figur/datensatz.json
Daten raus
23 Bilder mit Bildbeschreibungen in figur/datensatz/, Rohbilder, Aufträge und Kontaktbogen in figur/datensatz_arbeit/
Skill
avatar-figur – in Vorbereitung

▸ Video

Folgt. Geplant sind 8 Minuten, vom Porträt zum Kontaktbogen.

VideoEr erklärt diese Lektion selbst. Präsentiert von der Figur, um die es geht.

Worum es geht

Ein LoRA lernt ein Gesicht nur, wenn es dieses Gesicht in vielen Lagen sieht: von vorn und von der Seite, lachend und ernst, im Büro und im Park. Ein einziges Porträt reicht dafür nicht. Fotos einer echten Person gibt es hier nicht – die Figur ist erfunden. Also entsteht der Datensatz aus dem einen Porträt selbst.

Der Trick: Die Bilder werden nicht neu erzeugt, sondern aus dem Porträt bearbeitet. Ein Bearbeitungsmodell bekommt das Referenzbild und eine Anweisung wie „setz die Person in eine Bibliothek, dunkelblaues Hemd, ernster Blick“. Das Gesicht nimmt es aus dem Bild, nicht aus einer Beschreibung. So bleibt es dieselbe Person.

Was vorher passiert ist

In Lektion A1 hast du aus vielen Kandidaten ein Porträt gewählt: frontal, hellgraues T-Shirt, hellgrauer Grund, weiches Licht. Es liegt in figur/gesicht/referenz.png. Der neutrale Hintergrund ist Absicht – er lässt dem Bearbeitungsmodell die meiste Freiheit für Ort und Kleidung.

Der Ablauf

1. Die Liste der 23 Bilder

Was entstehen soll, steht in figur/datensatz.json. Jeder Eintrag hat einen Namen, eine Anweisung und eine Bildbeschreibung für das Training:

Allen Änderungen hängt das Skript denselben Satz an: „Keep the face, facial proportions, eye color, hair and any facial hair exactly the same, it must clearly be the same person.“

2. Erster Durchgang: bearbeiten

Qwen-Image-Edit-2511 bekommt das Referenzbild und je Eintrag einen Auftrag. Mit dem Lightning-LoRA braucht es dafür nur 4 Schritte. Die 23 Rohbilder landen in figur/datensatz_arbeit/roh/.

3. Zweiter Durchgang: verfeinern

Die Rohbilder wirken etwas glatt, Haare und Haut fast gemalt. Z-Image Turbo – dasselbe Modell wie für das Gesicht in A1 – geht mit geringer Entrauschung (0,18) noch einmal darüber. Aufbau, Pose und Gesicht bleiben, Haarsträhnen, Bartstoppeln und Hautstruktur werden fotografisch. Erst diese Bilder kommen nach figur/datensatz/.

Raster mit vier Zeilen und vier Spalten: dasselbe Gesicht als Qwen-Rohbild, dann in drei Verfeinerungsstufen von Z-Image.
Abb. A2.1

Von links nach rechts: Rohbild aus Qwen, dann drei Versuche der Verfeinerung. In der zweiten und dritten Spalte stand „freckles“ im Prompt – die Sommersprossen werden übertrieben. Rechts die gewählte Fassung: Entrauschung 0,18, Sommersprossen nicht erwähnt.

KI-generiert.

4. Bildbeschreibungen

Zu jedem Bild schreibt das Skript eine Textdatei mit demselben Namen, zum Beispiel

a photo of l3hr3r, a man, laughing openly, wearing a light grey henley shirt,
in a bright staff room with large windows and blurred colleagues in the background

Wie in Lektion A3 erklärt: Beschrieben wird alles, was sich ändern darf – nie das Gesicht.

5. Durchsehen

Am Ende liegt figur/datensatz_arbeit/kontaktbogen.jpg vor dir. Zwei Fragen pro Bild: Ist es eindeutig dieselbe Person? Passt die Beschreibung zum Bild? Einzelne Bilder erzeugst du mit anderem Seed neu, statt den Datensatz zu verwässern: Lieber 20 gute als 23 durchwachsene.

Von Hand: der ganze Weg

Das Skript erledigt alles. Mit -v siehst du jeden Befehl, den es ausführt; mit --zeigen bekommst du nur die Befehle, ohne dass etwas passiert. Nach dem Lauf liegt die vollständige Liste in figur/datensatz_arbeit/protokoll_datensatz.sh – zum Nachlesen oder erneut Ausführen.

Im Terminal, im Kursordner

# Alles in einem Befehl; -v zeigt jeden Schritt
python3 skripte/datensatz.py -v

# Was dabei passiert (gekürzt):
# Modelle laden – je Datei ein Download und ein Link in den ComfyUI-Modellordner
hf download Comfy-Org/Qwen-Image-Edit_ComfyUI split_files/diffusion_models/qwen_image_edit_2511_int8_convrot.safetensors --local-dir modelle/Comfy-Org/Qwen-Image-Edit_ComfyUI
ln -sf ../../../../modelle/Comfy-Org/Qwen-Image-Edit_ComfyUI/split_files/diffusion_models/qwen_image_edit_2511_int8_convrot.safetensors werkzeuge/ComfyUI/models/diffusion_models/qwen_image_edit_2511_int8_convrot.safetensors
# … ebenso Text-Encoder, VAE, Lightning- und Winkel-LoRA, Z-Image

python3 skripte/werkzeuge/comfy.py laeuft
cp figur/gesicht/referenz.png werkzeuge/ComfyUI/input/kurs_referenz.png

# Durchgang 1, je Eintrag: Auftrag als JSON schreiben, an ComfyUI schicken, Rohbild holen
python3 skripte/werkzeuge/comfy.py ausfuehren figur/datensatz_arbeit/auftraege/07_ausdruck_lachend_bearbeiten.json --ziel figur/datensatz_arbeit/roh/07_ausdruck_lachend.png

# Durchgang 2, je Eintrag: Rohbild verfeinern, Bildbeschreibung schreiben
cp figur/datensatz_arbeit/roh/07_ausdruck_lachend.png werkzeuge/ComfyUI/input/kurs_roh_07_ausdruck_lachend.png
python3 skripte/werkzeuge/comfy.py ausfuehren figur/datensatz_arbeit/auftraege/07_ausdruck_lachend_verfeinern.json --ziel figur/datensatz/07_ausdruck_lachend.png
cat > figur/datensatz/07_ausdruck_lachend.txt <<'EOF'
a photo of l3hr3r, a man, laughing openly, wearing a light grey henley shirt, in a bright staff room with large windows and blurred colleagues in the background
EOF

# Kontaktbogen und Prüfpunkt
werkzeuge/ComfyUI/venv/bin/python skripte/werkzeuge/kontaktbogen.py figur/datensatz/*.png --aus figur/datensatz_arbeit/kontaktbogen.jpg --spalten 6
python3 skripte/pruefen.py A2

# Einzelne Bilder neu, mit anderem Seed
python3 skripte/datensatz.py --nur ausdruck_lachend,buero_hemd --seed 2

Die Aufträge in figur/datensatz_arbeit/auftraege/ sind ComfyUI-Graphen im API-Format. Du kannst sie lesen, ändern und mit comfy.py ausfuehren erneut schicken. Willst du andere Orte oder Kleidung, änderst du figur/datensatz.json – auf Englisch, das verstehen die Modelle am besten.

Entscheidungen

Neu erzeugen oder bearbeiten?

Bearbeiten mit Qwen-Image-Edit-2511

Neu erzeugte Bilder würfeln das Gesicht jedes Mal neu. Ein Bearbeitungsmodell nimmt es aus dem Referenzbild. Qwen-Image-Edit-2511 steht unter Apache 2.0 und passt als int8 mit seinem Text-Encoder in 24 GB.

Wie viele Schritte?

4 mit dem Lightning-LoRA statt 40

Die volle Berechnung mit 40 Schritten erzeugte auf der int8-Fassung Treppen- und Sprenkelmuster und ignorierte das Winkel-LoRA. Lightning ist schneller und hier auch sauberer.

Wie stark verfeinern?

Z-Image Turbo, Entrauschung 0,18

Ausprobiert wurden 0,25, 0,20 und 0,18. Bei den höheren Werten wurde die Haut unruhig, zusammen mit „freckles“ im Prompt sogar fleckig. 0,18 ohne Sommersprossen im Prompt reicht für fotografische Haare und Haut und lässt die Person, wie sie ist.

Welche Mischung?

6 Blickwinkel, 5 Ausdrücke, 12 Orte und Kleidungen

Das LoRA soll das Gesicht lernen, nicht ein T-Shirt oder einen grauen Hintergrund. Deshalb ändert sich in den Bildern alles außer dem Gesicht.

Fallstricke

Zu viel auf einmal geändert – plötzlich jemand anderes

Qwen hält die Identität nur, solange die Änderung klein bleibt. Soll es gleichzeitig Hintergrund, Kleidung, Bildausschnitt und Kopfhaltung ändern, entsteht ein ähnlicher, aber anderer Mensch.

LösungJe Bild nur wenig ändern: Ort und Kleidung gehen zusammen, Bildausschnitt, Pose und Blick zusätzlich nicht.

Drei Porträts: das Original im Klassenzimmer, eine kleine Änderung mit grauem Grund und grauem T-Shirt, eine große Änderung frontal mit anderem Bildausschnitt.
Abb. A2.2

Links das Original. Mitte: nur Hintergrund und Kleidung geändert – dieselbe Person. Rechts: zusätzlich frontal und neuer Bildausschnitt – das Gesicht ist schmaler, die Haare anders.

KI-generiert.

Treppen und Sprenkel in glatten Flächen

Die volle 40-Schritt-Berechnung erzeugte auf hellgrauem Grund Labyrinthmuster und Sprenkel. Dasselbe passiert, wenn ein bereits bearbeitetes Bild noch einmal durch Qwen geht. Echte Umgebungen statt einfarbiger Flächen verstecken den Rest.

LösungLightning mit 4 Schritten verwenden und immer vom Referenzbild ausgehen, nie ein Qwen-Ergebnis weiterbearbeiten.

Drei Bilder mit voller Berechnung: zweimal grauer Hintergrund mit Labyrinthmustern und Sprenkeln, einmal Klassenzimmer ohne Muster.
Abb. A2.3

Volle Berechnung mit 40 Schritten. Auf dem grauen Grund der ersten beiden Bilder Muster und Sprenkel, im Klassenzimmer rechts fallen sie kaum auf.

KI-generiert.

Sommersprossen im Prompt werden übertrieben

Steht „freckles“ im Prompt, malt Z-Image sie kräftiger, als das Referenzbild sie hat (Abb. A2.1). Merkmale des Gesichts kommen aus dem Bild, nicht aus dem Text.

LösungIm Verfeinerungs-Prompt nur die Qualität beschreiben (Haare, Haut, Licht), keine einzelnen Merkmale.

Bildbeschreibung passt nicht zum Bild

Die Beschreibungen stehen vorab in der Liste. Malt das Modell ein anderes Hemd oder einen anderen Ort, lernt das Training sonst Falsches.

LösungDie .txt-Datei an das anpassen, was wirklich zu sehen ist.

Mit KI vereinfacht

Der Agent startet das Skript, sieht sich jedes fertige Bild an, vergleicht es mit dem Referenzporträt und mit seiner Beschreibung, erzeugt Ausreißer mit anderem Seed neu und passt Beschreibungen an. Du entscheidest, welche Bilder in den Datensatz kommen.

Der Agent

  • lädt die Modelle und startet beide Durchgänge
  • vergleicht jedes Bild mit dem Referenzporträt
  • prüft, ob jede Beschreibung zum Bild passt, und korrigiert sie
  • erzeugt Ausreißer mit anderem Seed neu

Du

  • siehst den Kontaktbogen durch
  • entscheidest, welche Bilder bleiben

Mit lokalem Qwen: Qwen-Image-Edit belegt mit seinem Text-Encoder fast die ganze Karte. Das Sprachmodell muss entladen sein, bevor ein Auftrag läuft – mit OLLAMA_KEEP_ALIVE=0 aus der Einrichtung geschieht das nach jeder Antwort. Qwen 3.8 kann laut Ollama Bilder lesen; den Kontaktbogen solltest du trotzdem selbst ansehen.