codex-image
Erstellen und bearbeiten Sie Bilder mit GPT Image über das ChatGPT-Abonnement des Benutzers. Die Ausgabe landet in ./generated_images/ (oder --out-dir / --out).
So führen Sie es aus
Alles läuft über ein Skript. Ermitteln Sie das absolute Verzeichnis, das diese SKILL.md enthält (Ihr Harness kündigt es beim Laden des Skills an – unten als <skill-dir> bezeichnet), dann:
bash "<skill-dir>/scripts/generate.sh" "<prompt>" [flags]
Rufen Sie niemals ein bloßes relatives scripts/generate.sh auf: Ihr Arbeitsverzeichnis ist das Projekt des Benutzers, nicht der Installationsort des Skills (der je nach Agent variiert – ~/.claude/skills/, ~/.agents/skills/, ~/.opencode/skills/, ein projektlokales .claude/skills/, …).
Voraussetzungen, die das Skript für Sie prüft:
python3≥ 3.10 im PATH (bash + stdlib Python sonst).- Pillow – nur für
--format webpund--transparent-mode chroma. Nicht standardmäßig installiert; diese Läufe schlagen mit der Installationsanweisung fehl (python3 -m pip install 'Pillow>=10'). Einfaches--transparentbenötigt es nicht. Erwähnen Sie diese Voraussetzung vor der ersten Verwendung einer der beiden Optionen. - Codex CLI angemeldet. Ist dies nicht der Fall, beendet sich das Skript mit
Run: codex login– geben Sie dies an den Benutzer weiter, anstatt die Authentifizierung selbst zu übernehmen.
bash "<skill-dir>/scripts/generate.sh" --help gibt die vollständige Flag-Oberfläche aus; konsultieren Sie diese, bevor Sie Flags improvisieren. Wenn der Host-Agent getippte Schrägstrichbefehle unterstützt, ist /codex-image "<prompt>" --flags die benutzerseitige Kurzform für genau diesen Skriptaufruf.
Das Skript ist mechanisch – es führt kein semantisches Routing durch. Die Behandlung von Fortsetzungen, Batch-Entscheidungen und die Verteilung der Hintergrundentfernung sind IHRE Aufgabe, basierend auf dem Gespräch.
GPT Image 2.5
OpenAI bietet gpt-image-2.5-sunburst für präzise Bearbeitung und gpt-image-2.5-flare für schnellere alltägliche Generierung.
Um eine anzufordern, übergeben Sie --image-model <model-id>; lassen Sie es weg, um die Standardauswahl von Codex Responses zu verwenden.
Diese Flag ist experimentell im Subscription-Transport: Live-Überprüfungen am 2026-09-08 haben jede Variante angefordert, aber beide Antworten meldeten gpt-image-2-codex.
Behaupten Sie kein Upgrade auf 2.5 aufgrund einer erfolgreichen Anfrage allein. Ein Legacy-Response-Alias oder die C2PA-Version 2.0 beweist ebenfalls keine älteren Gewichte: Ein Bild, das in OpenAIs 2.5-Ankündigung veröffentlicht wurde, trägt dieselbe Provenienzversion.
Das Skript warnt, wenn das gemeldete Modell abweicht oder fehlt; überprüfen Sie das image_model in der Sidecar-Datei getrennt von requested_image_model.
--orchestrator wählt das Hauptlinienmodell aus, das das Bildwerkzeug aufruft, nicht Sunburst oder Flare. Lassen Sie es weg: Das Skript verwendet das neueste Modell der Sol-Stufe (gpt-<version>-sol), das das Konto auflistet, so dass ein ausgemustertes Modell es nie bricht. Anfragen gehen dorthin, wo Codexs eigene Konfiguration Codex sendet: ein benutzerdefinierter model_provider wie ein Proxy, ein openai_base_url-Relay oder chatgpt.com.
Lesen Sie GPT Image 2.5 Kompatibilität für verifiziertes Transportverhalten und die offiziellen Quellen.
Die Unterstützung der öffentlichen API für Modellauswahl, xhigh/max und Transparenz etabliert nicht dasselbe Verhalten bei Codex Responses.
Behandlung von Fortsetzungen
Wenn die Anfrage das im unmittelbar vorhergehenden Zug generierte Bild modifiziert („dunkler machen“, „jetzt einen Hut hinzufügen“, „mehr Kontrast“), übergeben Sie --from-last – das Skript verwendet automatisch die letzte Generierung wieder (verfolgt in ~/.codex-image/last.json), so dass Sie den Pfad nicht aus dem Transkript wiederherstellen müssen.
Für Bearbeitungen einer expliziten Datei oder einer älteren Generierung übergeben Sie stattdessen --input <pfad|url> (wiederholbar; max. 16 Referenzen kombiniert mit --from-last; die Skill-Referenzobergrenze).
Wenn die Anfrage ein neues Motiv betrifft – selbst wenn sie als „jetzt mache …“ formuliert ist – übergeben Sie keines von beidem und generieren Sie von Grund auf neu. Wenn Sie falsch raten und der Benutzer sagt „nein, ich meinte ein neues“, führen Sie erneut ohne Referenzen aus.
Bilder, die der Benutzer nur für Stil, Komposition oder Stimmung bereitstellt, sind Referenzen für eine Generierung, keine Bearbeitungsziele – übergeben Sie sie über --input, formulieren Sie aber den Prompt als neues Bild („im Stil von Bild 2“). Wenn Sie mehrere Eingaben mischen, kennzeichnen Sie jede nach Index und Rolle im Prompt (Bild 1: Bearbeitungsziel, Bild 2: Stilreferenz).
Nach der Generierung: schauen, dann berichten
Bevor Sie dem Benutzer mitteilen, dass Sie fertig sind, betrachten Sie die gespeicherte Bilddatei und überprüfen Sie sie gegen die Anfrage: Motiv, Komposition, jeder wörtlich gerenderte Text und jede vom Benutzer genannte Einschränkung. Wenn etwas nicht stimmt, iterieren Sie mit EINER gezielten Änderung (über --from-last) und wiederholen Sie die Invarianten, die nicht abweichen dürfen. Stapeln Sie nicht mehrere Korrekturen in einen erneuten Durchlauf und melden Sie keinen Pfad, den Sie nicht angesehen haben.
Speicherdisziplin: Die Ausgabe wird standardmäßig in ./generated_images/ gespeichert. Wenn das Bild für das Projekt des Benutzers bestimmt ist, kopieren oder verschieben Sie es an seinen endgültigen Platz (und aktualisieren Sie jeden Code, der darauf verweist) – hinterlassen Sie kein Projekt-Asset nur im Scratch-Verzeichnis. Überschreiben Sie niemals ein vorhandenes Asset, das der Benutzer nicht zu ersetzen gebeten hat; schreiben Sie eine versionierte Kopie (hero-v2.png).
Transparente Bilder
Wenn der Benutzer einen transparenten Hintergrund wünscht, fügen Sie --transparent hinzu. Das ist alles – keine Entscheidung über die Verteilung, kein Pillow, kein Nachbearbeitungsschritt, den Sie orchestrieren müssen.
Das Skript fordert Alpha direkt vom Modell an: Es sendet background: "auto" und hängt einen Satz an den Prompt an, und das Backend gibt RGBA zurück. Übergeben Sie nicht --background transparent; dieser Wert wird von diesem Backend abgelehnt (docs/adr/0001-request-transparency-in-the-prompt.md erklärt warum und warum die offensichtliche „Korrektur“ falsch ist).
Wenn Sie das Backend selbst testen und "Transparent background is not supported for this model." sehen, schließen Sie nicht, dass Transparenz nicht verfügbar ist. Dieser 400-Fehler ist die Ablehnung des Parameters, nicht der Fähigkeit. Das Modell gibt echten Alpha zurück, wenn im Prompt danach gefragt wird, was --transparent tut. Ratschläge, dass native Transparenz gpt-image-1.5 oder einen OPENAI_API_KEY benötigt, stammen aus der Zeit vor 0.2.0 und sind falsch; wenn Sie dies lesen, ist Ihr installierter Skill veraltet. Überprüfen Sie metadata.version in dieser Datei – sie sollte 0.2.0 oder höher sein.
Zwei Dinge, die Sie beim Schreiben des Prompts richtig machen müssen:
- Beschreiben Sie das Motiv, nicht eine Szene. Der Prompt schlägt den Parameter. „Eine Tasse auf einem Holztisch in einem sonnigen Studio“ könnte dieses Studio rendern, anstatt die Tasse zu isolieren. Nennen Sie das Motiv und sein Material; lassen Sie die Umgebung weg.
- Fügen Sie keine eigenen Verbote hinzu. Das Suffix verbietet absichtlich nichts. Wenn der Benutzer einen Schlagschatten wünscht, lassen Sie ihn ihn haben – er wird in den Alpha gerendert und korrekt überlagert. Wenn Sie selbst „kein Schatten, kein Hintergrund“ hinzufügen, überschreiben Sie seine Absicht.
Nach der Generierung betrachten Sie die Datei und überprüfen Sie, ob der Alpha tatsächlich angekommen ist. Das Skript warnt auf stderr, wenn das Ergebnis keinen Alpha hat oder vollständig undurchsichtig ist; behandeln Sie dies als Signal für einen erneuten Durchlauf mit EINER gezielten Änderung, normalerweise dem Entfernen von Szenensprache.
Fallback-Leiter, nur wenn nativ enttäuscht (verifiziert auf undurchsichtigen Motiven; Haare, Glas, Rauch und Transluzenz sind ungetestet):
| Eskalation | Aktion |
|---|---|
| Erneuter Prompt | Entfernen Sie Szene/Hintergrund-Sprache, nennen Sie das Motiv allein |
| Qualität erhöhen | --quality medium für feine Kanten und kleinen Text |
| Chroma | --transparent-mode chroma (benötigt Pillow) – Sie steuern die Key-Platte |
| Adobe MCP | --transparent-mode chroma --bg-tool=none, dann rufen Sie das Adobe-Hintergrundentfernungswerkzeug auf, das diese Sitzung bereitstellt (suchen Sie nach einem MCP-Tool, dessen Name remove_background enthält) und überschreiben Sie die Datei mit dem Alpha-Ergebnis. Beste Option für Transluzenz |
Chroma-Kantenreparatur: dünner Rand → --edge-contract 1; treppenartige Kanten bei matten Motiven → --edge-feather 0.25. Tiefere Fehlermodi: references/transparent-image-tips.md.
Qualitäts-, Kosten- und Zeitgrenzen
- Die Voreinstellung ist
--quality high;low,medium,high,xhigh,maxundautowerden akzeptiert. Beginnen Sie mitlowfür Entwürfe. Codex Responses können die Qualität überschreiben; überprüfen Sieresolved_qualityin der Sidecar-Datei oder die--verbose-Ausgabe, bevor Sie eine gelieferte Stufe behaupten. - Generierungen werden auf die Grenzen des ChatGPT-Plans des Benutzers angerechnet. Die Latenz variiert je nach Modell, Prompt, Qualität und Serviceauslastung.
- Bevor Sie mehr als 3 Bilder für eine einzelne Anfrage generieren, bestätigen Sie dies zuerst mit dem Benutzer.
- Gehen Sie niemals in eine Endlosschleife. „Viele“ / „ein ganzer Satz“ → wählen Sie eine sinnvolle Voreinstellung (4) und bieten Sie an, fortzufahren.
- HTTP 429 vom Backend = sofort anhalten, nicht wiederholen.
Häufige Workflows
# Einzelne Generierung
bash "<skill-dir>/scripts/generate.sh" "ein gelbes Taxi nachts im Regen"
# Fortsetzung der vorherigen Generierung
bash "<skill-dir>/scripts/generate.sh" "jetzt Dampf aufsteigend hinzufügen" --from-last
# Bearbeiten eines expliziten Referenzbildes
bash "<skill-dir>/scripts/generate.sh" "mach es blau" --input ./tasse.png
# Transparenter Hintergrund (nativer Alpha vom Modell; kein Pillow)
bash "<skill-dir>/scripts/generate.sh" "eine Kaffeetasse" --transparent
# Transparent, mit einem vom Benutzer gewünschten Schatten (bleibt im Alpha erhalten)
bash "<skill-dir>/scripts/generate.sh" "eine Kaffeetasse mit einem weichen Schlagschatten" --transparent
# Chroma-Fallback, wenn nativ enttäuscht (benötigt Pillow)
bash "<skill-dir>/scripts/generate.sh" "ein Glasgefäß" --transparent --transparent-mode chroma
# Andere Größe / Format / Qualität
bash "<skill-dir>/scripts/generate.sh" "Hero-Banner" --size 2048x1152 --format webp --quality low
Token-Schwärzung (Sicherheit)
Geben Sie NIEMALS das access_token, id_token, refresh_token des Benutzers oder einen Authorization: Bearer ...-Header aus oder protokollieren Sie ihn. Die Python-Module des Skills schwärzen automatisch; Sie dürfen dies nicht rückgängig machen, indem Sie ~/.codex/auth.json selbst lesen oder Tokens in Fehlermeldungen ausgeben.
WANN NICHT aufrufen
- Vektorgrafiken, SVG, ASCII-Kunst oder LaTeX-Diagramme → verwenden Sie ein dediziertes Vektor- oder Diagrammwerkzeug.
- Der Benutzer möchte explizit ein anderes Modell oder Produkt (DALL-E, Stable Diffusion, Midjourney) → verweisen Sie darauf.
Für professionelle Logo-/Markenarbeit rufen Sie den Skill auf – setzen Sie aber Erwartungen: Generieren Sie Erkundungen und verfeinern Sie sie mit einzelnen --from-last-Iterationen, anstatt ein endgültiges Asset in einem Durchgang zu versprechen (Vorlagen in references/prompting-cookbook.md).
Referenzen
Wenn Sie mehr Tiefe benötigen, lesen Sie aus <skill-dir>/references/:
api-recipe.md– kanonischer Anforderungskörper, Header, abgelehnte Felder, Transparenzmechanismus, SSE-Parsingprompting-cookbook.md– Grundlagen der Prompting-Erstellung + Anwendungsfall-Vorlagen (Logo, Produktaufnahme, UI-Mockup, Infografik)transparent-image-tips.md– wie native Transparenz funktioniert, wann sie Schwierigkeiten bereitet und der Chroma-Fallback
Kontext auf Repo-Ebene: CONTEXT.md (Glossar – die drei Transporte sind dort definiert) und docs/adr/ (warum Transparenz im Prompt und nicht im Parameter angefordert wird).