Bildgenerierung über die codex CLI
codex exec hat keine Option „Bild in diesen Pfad schreiben“: Es speichert generierte Bilder unter
$CODEX_HOME/generated_images/<sitzungs-id>/. scripts/codex_image.py führt eine nicht-interaktive Runde aus, sammelt
nur die Bilder dieser exakten Sitzung und schreibt sie an den gewünschten Pfad. Wenn kein Bild zurückkommt, schreibt es nichts.
Verwende immer das Skript. Ein selbstgeschriebenes codex exec "zeichne eine Katze" gibt oft Prosa oder eine ImageMagick-Zeichnung zurück, und du musst nach der Ausgabe suchen.
Nie auf eine kostenpflichtige API ausweichen. Verwende nicht das OpenAI SDK oder OPENAI_API_KEY, auch wenn codex fehlschlägt oder das Kontingent erschöpft ist. Melde den Fehler und brich ab. Für die kostenpflichtige API von Google verwende nur google-image-gen, und nur wenn der Benutzer explizit danach verlangt.
Verwendung
Starte aus dem Skill-Verzeichnis oder gib den absoluten Pfad des Skripts an. Ein Durchlauf dauert etwa 30–60 Sekunden.
python3 scripts/codex_image.py -p "ein einzelnes rotes Fahrrad gegen eine nasse Steinmauer in der Dämmerung, Kinofotografie" -o fahrrad.png
| Ziel | Befehl |
|---|---|
| Seitenverhältnis (Hinweis für das Modell) | -p "..." -o aus.png --aspect 9:16 |
| Referenzbild(er) | -p "..." -o aus.png -r ref.png [-r ref2.png] |
| Bild bearbeiten | --edit v1.png -p "mach den Himmel lila" -o v2.png |
| Mehrere Varianten | -p "..." -o opt.png -n 3 (speichert opt.png, opt-2.png, opt-3.png) |
| Exakte Pixelgröße | -p "..." -o cover.png --aspect 9:16 --fit 1080x1920 |
| Langer Prompt | --prompt-file prompt.md -o aus.png |
| Prompt ansehen, nichts ausgeben | --print-prompt hinzufügen |
- Die Ausgabeerweiterung folgt dem tatsächlichen Format: PNG-Bytes, die als
fahrrad.jpgangefordert wurden, landen infahrrad.png. Das Skript gibt jeden geschriebenen Pfad aus. --aspectbeeinflusst nur das Ergebnis.--fit WxHgarantiert die Größe danach: es füllt mit schwarzen Balken auf (--fit-mode pad, Standard) oder zentriert es mit Beschnitt (--fit-mode crop) und speichert immer als PNG. Stimme--aspectauf das Ziel ab, damit wenig aufgefüllt oder beschnitten werden muss.--fitbenötigt Pillow, das vor dem codex-Lauf geprüft wird.-nfordert N Varianten in einem Durchlauf an; das Modell kann weniger zurückgeben, und das Skript speichert, was es bekommt.--edithängt das Bild als Ziel an und sagt dem Modell, dass es nur das ändern soll, was der Prompt verlangt.
Den Prompt schreiben
Das Skript fügt die Formulierung hinzu, die einen echten Bildtool-Aufruf erzwingt, daher geht es bei --prompt nur um das Bild. Eine kurze, beschriftete Spezifikation funktioniert gut:
Motiv: ein einzelnes rotes Fahrrad, Farbe an den Kanten bis aufs blanke Metall abgenutzt
Szene: lehnt an einer nassen Steinmauer im Hafen, Stadtrichter dahinter
Stil: Kinofotografie, geringe Schärfentiefe
Beleuchtung: Dämmerung, niedrige warme Sonne, Spiegelungen auf nassem Stein
Text (wörtlich): "KEIN ERSATZTEIL"
Vermeiden: Menschen, Wasserzeichen, zusätzliche Fahrräder
- Zitiere Text, der erscheinen muss, und halte ihn kurz; lange Zeichenketten kommen oft falsch geschrieben zurück.
- Gib an, was nicht erscheinen darf. Für einen transparenten Ausschnitt fordere einen transparenten Hintergrund an und speichere als
.png. - Für
--editbeschreibe die Änderung („entferne den Laternenpfahl“) und nenne, was erhalten bleiben muss („behalte das Fahrrad, Bildausschnitt und Beleuchtung“). Ändere pro Durchlauf nur eine Sache. - Eine Bearbeitung ist eine Neugenerierung, kein Pixel-Patch: Bildausschnitt und Details variieren, und jeder Durchlauf verstärkt dies. Halte die Kette kurz und setze alles, was unverändert überleben muss, nachträglich zusammen.
Nach der Generierung
Überprüfe das Ergebnis, bevor du es übergibst, mit allen dir zur Verfügung stehenden Mitteln, um ein Bild anzusehen: Das Modell hat manchmal Probleme mit Text, Anzahlen oder einem angeforderten Detail. Falls es daneben liegt, führe den Vorgang mit einem präziseren Prompt erneut aus oder verfeinere mit --edit.
Fehlerfälle
Das Skript beendet sich mit einem Fehlercode ungleich Null und einer klaren Meldung und schreibt nichts.
- codex CLI nicht gefunden / nicht angemeldet: installiere codex und führe
codex loginaus;CODEX_BINverweist auf ein anderes Programm. - Kontingent erschöpft: warte auf den Reset, den codex meldet, oder verwende ein anderes Konto. Wiederhole nicht in einer Schleife.
- Kein Bild erzeugt: Das Modell hat in Text geantwortet. Die Antwort wird angezeigt; führe den Vorgang mit einer einfacheren Bildanfrage erneut aus.
- Zeitüberschreitung: Erhöhe
--timeout(Standard 900 s) nur, wenn der Durchlauf lediglich langsam war. - Pillow fehlt mit
--fit:pip install Pillow, oder entferne--fit.