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

FigurBeispiel (l3hr3r) ✎ eigene beschreiben

Ort und Kleidung

Ein Satz beschreibt, wo er ist und was er trägt. Das Gesicht bringt das LoRA mit – und manchmal auch seinen Namen.

Das bekommst du

Deine Figur an jedem Ort und in jeder Kleidung, die du in einem Satz beschreibst.

Vier Szenen mit demselben Gesicht – Lehrerzimmer, Schulhof im Herbst, Podcast-Studio und Lehrerpult vor der Tafel.
ErgebnisVier Szenen mit demselben Gesicht – Lehrerzimmer, Schulhof im Herbst, Podcast-Studio und Lehrerpult vor der Tafel. KI-generiert.

So legst du los

VorherDas LoRA aus Lektion A3 (pruefen.py A3 ist grün) und ein laufendes ComfyUI aus Lektion A1.

In Claude Code eingebenIn Hermes mit lokalem Qwen eingeben

Lektion A4: Erzeuge mit skripte/szene.py vier Kandidaten von l3hr3r im Clip-Format (--seeds 37,41,64,77 --format clip): sitting behind the teacher's desk at the front of a bright modern classroom, a large green chalkboard on the wall directly behind him, hands resting on the desk, wearing a navy V-neck sweater over a light blue collared shirt. Prüf die Bilder auf Schrift und fremde Gesichter und zeig mir den Kontaktbogen; übernimm danach meine Wahl als szenen/pult.png.

Im Terminal, im Kursordner

python3 skripte/szene.py -v --name pult --seeds 37,41,64,77 --format clip --szene "sitting behind the teacher's desk at the front of a bright modern classroom, a large green chalkboard on the wall directly behind him, hands resting on the desk, wearing a navy V-neck sweater over a light blue collared shirt"
xdg-open szenen/pult/kontaktbogen.jpg

# Deine Wahl übernehmen (hier Seed 64)
cp szenen/pult/seed_64.png szenen/pult.png
python3 skripte/pruefen.py A4

Was dabei passiert ↓

Ziel
Bilder der Figur an jedem Ort und in jeder Kleidung, die du in einem Satz beschreibst – mit gleichbleibendem Gesicht.
Rechenzeit
wenige Sekunden je Bild; das erste dauert länger, weil die Modelle laden
Hardware
1 × NVIDIA RTX 3090 (24 GB)
Software
ComfyUI · Z-Image Turbo mit dem LoRA aus A3 · Qwen-Image-Edit-2511 mit Lightning-LoRA (Nachbearbeitung)
Daten rein
Eine Szene in einem Satz und das LoRA figur/lora/figur.safetensors
Daten raus
szenen/<name>.png oder Kandidaten mit Kontaktbogen, dazu der Auftrag als JSON und protokoll_szene.sh
Skill
avatar-figur – in Vorbereitung

▸ Video

Folgt. Geplant sind 6 Minuten, vom Satz zum Bild.

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

Worum es geht

Mit dem LoRA aus A3 kennt das Bildmodell seine Figur. Jetzt bekommt sie Orte und Kleidung: das Lehrerzimmer am Morgen, den Schulhof im Herbst, das Podcast-Studio. Du beschreibst die Szene in einem Satz, das Gesicht kommt vom Stichwort. Aus diesen Bildern entstehen später die Startbilder für Sprech-Clips (A6, A7).

Der Schritt selbst ist kurz. Die Arbeit steckt in zwei Dingen: die Szene so eindeutig zu beschreiben, dass das Modell nichts dazuerfindet, und die Stellen zu erkennen, an denen das LoRA mehr tut, als es soll.

Was vorher passiert ist

In A3 ist das LoRA entstanden: figur/lora/figur.safetensors, gewählt bei Schritt 1500. In A1 hast du ComfyUI eingerichtet und Z-Image Turbo geladen. Beides nutzt diese Lektion; neue Modelle kommen nur für die Nachbearbeitung dazu, und die kennst du aus A2.

Der Ablauf

1. Die Szene beschreiben

Das Skript setzt den Prompt zusammen: vorne Stichwort und Klasse aus figur.json (beim Beispiel a photo of l3hr3r, a man,), dahinter dein Satz. Er nennt Ort, Haltung und Kleidung – und den Ort so genau, dass es nur eine Lesart gibt. Englisch funktioniert am verlässlichsten; Z-Image versteht auch andere Sprachen, getestet ist hier aber nur Englisch.

sitting behind the teacher's desk at the front of a bright modern classroom, a large green chalkboard
on the wall directly behind him, hands resting on the desk, wearing a navy V-neck sweater over a light blue shirt

2. Kandidaten erzeugen

Mit einem Seed entsteht ein Bild. Mit vier Seeds entstehen vier Kandidaten und ein Kontaktbogen – bei Startbildern für Clips lohnt sich das fast immer, denn Haltung, Hände und Hintergrund fallen jedes Mal anders aus.

3. Wählen und übernehmen

Du schaust auf den Kontaktbogen und kopierst den besten Kandidaten nach szenen/<name>.png. Die Wahl kommt als Zeile in entscheidungen.md.

Vier Kandidaten: Der Lehrer sitzt an einem Schülertisch mitten im Raum, die Tafel hängt weit hinten.
Abb. A4.1

Erster Versuch mit „am Lehrerpult im Klassenzimmer“: Das Modell setzt ihn an einen Schülertisch, die Tafel hängt hinten im Raum. Wo das Pult steht, hatte der Satz offengelassen.

KI-generiert.
Vier Kandidaten: Der Lehrer sitzt vorne am Pult, die Tafel füllt den Hintergrund direkt hinter ihm.
Abb. A4.2

Zweiter Versuch mit „hinter dem Lehrerpult vorne im Klassenzimmer, die Tafel direkt hinter ihm“. Jetzt stimmt der Raum. Seed 64 wurde das Startbild für den Clip auf der Startseite; Seed 77 fiel wegen der Schrift an der Tafel raus.

KI-generiert.

4. Nachbearbeiten, wo nötig

Stehen andere Menschen im Bild, haben sie oft Züge der Figur übernommen. Das zweite Skript tauscht ihre Gesichter mit Qwen-Image-Edit aus und lässt die Figur unverändert. Wörter auf Tafeln oder Büchern, die genau so dastehen müssen, kommen besser nachträglich als Einblendung ins Bild (siehe Fallstricke).

Von Hand: der ganze Weg

Alles läuft über zwei Skripte im Kit. szene.py erzeugt die Bilder, nachbearbeiten.py ändert ein Bild per Anweisung. Mit -v siehst du jeden Befehl, den sie ausführen; mit --zeigen nur die Befehle, ohne etwas zu tun. Nach jedem Lauf liegt ein Protokoll im Ergebnisordner, zum Beispiel szenen/pult/protokoll_szene.sh.

Im Terminal, im Kursordner

# 1. Vier Kandidaten für eine Szene (für ein Clip-Startbild: --format clip)
python3 skripte/szene.py -v --name pult --seeds 37,41,64,77 --format clip \
--szene "sitting behind the teacher's desk at the front of a bright modern classroom, a large green chalkboard on the wall directly behind him, hands resting on the desk, wearing a navy V-neck sweater over a light blue collared shirt"

# 2. Kontaktbogen ansehen, wählen und übernehmen
xdg-open szenen/pult/kontaktbogen.jpg
cp szenen/pult/seed_64.png szenen/pult.png
echo "| A4 | $(date +%F) | Szene pult: Seed 64 | Pult vorne, Tafel direkt dahinter, Tafel ohne Schrift |" >> entscheidungen.md

# 3. Nur falls nötig: fremde Gesichter austauschen, die Figur bleibt
python3 skripte/nachbearbeiten.py -v szenen/kollegen.png --anweisung "Change the faces of the two men on the left and on the right so that they are clearly different people. Keep the man in the middle, his face, hair and clothes, and everything else in the image exactly unchanged."

python3 skripte/pruefen.py A4

So sieht der Anfang der Ausgabe mit -v aus. Beim ersten Mal lädt das Skript die Modelle und verlinkt das LoRA für ComfyUI, danach schreibt es den Auftrag als Datei und schickt ihn ab:

# Prompt: a photo of l3hr3r, a man, sitting behind the teacher's desk at the front of …, looking directly
# into the camera with a friendly, relaxed expression, mouth closed, medium close-up from the chest up
# Format clip (768×1344), LoRA-Stärke 1, Seeds 37, 41, 64, 77
▸ hf download Comfy-Org/z_image_turbo split_files/diffusion_models/z_image_turbo_bf16.safetensors --local-dir modelle/Comfy-Org/z_image_turbo
▸ ln -sf ../../../../modelle/Comfy-Org/z_image_turbo/split_files/diffusion_models/z_image_turbo_bf16.safetensors werkzeuge/ComfyUI/models/diffusion_models/z_image_turbo_bf16.safetensors
…
▸ ln -sf ../../../../figur/lora/figur.safetensors werkzeuge/ComfyUI/models/loras/figur.safetensors
▸ python3 skripte/werkzeuge/comfy.py laeuft
▸ cat > szenen/pult/auftrag_seed_37.json <<'EOF'
…
▸ python3 skripte/werkzeuge/comfy.py ausfuehren szenen/pult/auftrag_seed_37.json --ziel szenen/pult/seed_37.png
…
▸ werkzeuge/ComfyUI/venv/bin/python skripte/werkzeuge/kontaktbogen.py szenen/pult/seed_37.png … --aus szenen/pult/kontaktbogen.jpg --spalten 4

Der Auftrag ist ein ComfyUI-Graph im API-Format: Z-Image Turbo, das LoRA mit Stärke 1,0, 8 Schritte, CFG 1. Du kannst ihn öffnen, ändern und mit comfy.py ausfuehren erneut abschicken.

Entscheidungen

Wie stark soll das LoRA wirken?

Stärke 1,0

Im Vergleich von 1,0 und 0,8 über acht Szenen war kaum ein Unterschied zu sehen. Bei 1,0 sitzt die Identität am sichersten, also bleibt es dabei.

Wie kommt Ausdruck ins Bild?

Deutlich im Prompt, nicht über die LoRA-Stärke

Ab Schritt 1500 macht das LoRA den Ausdruck etwas starrer (A3). „Laughing out loud with his mouth wide open“ holt das Lachen zurück; ein zaghaftes „smiling“ endet im Standardlächeln.

Wie genau beschreibe ich den Ort?

Mit Lage im Raum und dem, was direkt dahinter ist

„Am Lehrerpult“ reichte nicht, das Modell hat ihn an einen Schülertisch gesetzt (Abb. A4.1). „Vorne, die Tafel direkt hinter ihm“ lässt keine zweite Lesart.

Ein Bild oder mehrere?

Vier Seeds und ein Kontaktbogen, wenn das Bild wichtig ist

Ein Bild kostet Sekunden. Vier nebeneinander zeigen sofort, welches Hände, Blick und Hintergrund am besten trifft – die Wahl triffst du, nicht der Zufall.

Welches Format für Startbilder von Clips?

--format clip: 768 × 1344, Blick in die Kamera, Mund geschlossen

InfiniteTalk (A6) lässt das Bild sprechen. Ein ruhiger, frontaler Brustbild-Ausschnitt mit geschlossenem Mund gibt dem Modell den besten Ausgangspunkt.

Fallstricke

Sein Name steht auf der Tafel oder dem Buch

Z-Image schreibt das Stichwort gern auf alles, was beschriftet werden kann: „Fiibön. l3hr3r“ auf dem Buch, „l3hr3r“ im Tafelbild. Ein vorgegebener Buchtitel („Der Vorleser“) kam sauber an. Beim vorgegebenen Tafelbild stand das Stichwort trotzdem noch in einem der Kreise – verlässlich ist nur die leere Fläche.

LösungFläche ausdrücklich leer verlangen („completely clean, empty whiteboard“, „plain cover without any text“) oder den Text im Prompt vorgeben.

Sechs Bilder in zwei Reihen: oben Whiteboard mit Stichwort-Schrift, mit vorgegebenem Inhalt und leer; unten Buch mit Stichwort, mit vorgegebenem Titel und ohne Titel.
Abb. A4.3

Oben das Whiteboard: frei beschrieben, mit vorgegebenem Inhalt, ausdrücklich leer. Unten das Buch: frei, mit vorgegebenem Titel, ohne Titel. Nur die leere Tafel und der vorgegebene Buchtitel sind frei vom Stichwort.

KI-generiert.

Deutsche Wörter kommen falsch an

Auf der Tafel steht „Verdunnstung“ und zweimal „Regen“, einmal davon als „Hegen“. Auch Qwen-Image-Edit schreibt deutsche Wörter fehlerhaft. Eine leere Tafel plus Einblendung im Schnitt ist schneller als zehn neue Versuche.

LösungTexte, die stimmen müssen, nachträglich als Einblendung setzen.

Andere Personen im Bild sehen ihm ähnlich

Das Stichwort wirkt auf das ganze Bild, nicht nur auf eine Person (A3). Qwen-Image-Edit tauscht die Gesichter der anderen zuverlässig aus, wenn die Anweisung genau sagt, wer sich ändert und wer gleich bleibt.

LösungMit nachbearbeiten.py die anderen Gesichter austauschen; die Figur bleibt unverändert.

Drei Fassungen eines Bildes mit drei Männern im Schulflur: im Original sehen sich alle ähnlich, in zwei bearbeiteten Fassungen haben die beiden äußeren andere Gesichter.
Abb. A4.4

Links das Original: Beide Kollegen haben Züge der Figur. Daneben zwei Varianten nach der Nachbearbeitung – dunkle Locken links, grauhaarig rechts, die Figur in der Mitte unverändert.

KI-generiert.

Er sitzt am falschen Platz

Ein Klassenzimmer hat viele Tische. Ohne Angabe nimmt das Modell den, der im Bild am natürlichsten wirkt – oft einen Schülertisch in der Mitte.

LösungLage im Raum beschreiben: vorne, hinten, direkt davor, direkt dahinter.

Mit KI vereinfacht

Hier ist der Agent vor allem ein guter Texter und ein aufmerksamer Prüfer. Er übersetzt deine Szene in einen eindeutigen englischen Satz, erzeugt Kandidaten und schaut die Bilder an, bevor du es tust: steht irgendwo das Stichwort, sehen andere Personen der Figur ähnlich, stimmt der Ort?

Der Agent

  • formuliert deine Szene eindeutig und auf Englisch
  • erzeugt vier Kandidaten und den Kontaktbogen
  • prüft jedes Bild auf Schrift, fremde Gesichter und den richtigen Ort
  • schlägt Nachbearbeitung vor und führt sie aus

Du

  • sagst, wo die Figur ist und was sie trägt
  • wählst den Kandidaten

Ein Satz reicht, auch auf Deutsch:

Erzeuge mit skripte/szene.py vier Kandidaten: Er sitzt vorne am Lehrerpult, die Tafel direkt hinter ihm,
Pullover mit V-Ausschnitt über hellblauem Hemd. Prüf die Bilder auf Schrift und zeig mir den Kontaktbogen.

Mit lokalem Qwen: Z-Image mit Textencoder braucht rund 20 GB Grafikspeicher, Qwen-Image-Edit für die Nachbearbeitung noch mehr. Das Sprachmodell muss dafür entladen sein; mit OLLAMA_KEEP_ALIVE=0 aus der Einrichtung geschieht das nach jeder Antwort.