Skill zur Bildgenerierung
Erzeugt oder bearbeitet Bilder für das aktuelle Projekt (z. B. Website-Assets, Spiel-Assets, UI-Mockups, Produkt-Mockups, Wireframes, Logodesign, fotorealistische Bilder oder Infografiken).
Top-Level-Modi und Regeln
Dieses Skill hat genau zwei Top-Level-Modi:
- Standard integrierter Tool-Modus (bevorzugt): integriertes Tool
image_genfür normale Bildgenerierung, -bearbeitung und einfache Transparenzanfragen. Benötigt keinenOPENAI_API_KEY. - Fallback-CLI-Modus: CLI
scripts/image_gen.py. Verwenden, wenn der Benutzer explizit nach dem CLI/API/Pfad fragt oder nach expliziter Bestätigung eines echten nativen Transparenz-Fallbacks mitgpt-image-1.5. ErfordertOPENAI_API_KEY.
Innerhalb des CLI-Fallbacks bietet die CLI drei Unterbefehle:
generateeditgenerate-batch
Regeln:
- Verwende standardmäßig das integrierte Werkzeug
image_genfür normale Bildgenerierungs- und Bearbeitungsanfragen. - Wechsle nicht für normale Qualitäts-, Größen- oder Dateipfadkontrolle zum CLI-Fallback.
- Wenn der Benutzer explizit nach einem transparenten Bild/Hintergrund fragt, bleibe zunächst beim integrierten
image_gen: Fordere einen flachen, entfernbaren Chroma-Key-Hintergrund an, entferne ihn dann lokal mit dem installierten Helfer unter$CODEX_HOME/skills/.system/imagegen/scripts/remove_chroma_key.py. - Wechsle niemals stillschweigend vom integrierten
image_genoder CLIgpt-image-2zu CLIgpt-image-1.5. Behandle dies als Modell-/Pfad-Downgrade und frage den Benutzer vorher, es sei denn, der Benutzer hat bereits explizitgpt-image-1.5,scripts/image_gen.pyoder den CLI-Fallback angefordert. - Wenn eine Transparenzanfrage zu komplex für eine saubere Chroma-Key-Entfernung erscheint, wenn echte/native Transparenz gewünscht wird oder die lokale Entfernung die Validierung nicht besteht, erkläre, dass echte Transparenz CLI
gpt-image-1.5 --background transparent --output-format pngerfordert, dagpt-image-2keinbackground=transparentunterstützt, und frage, ob fortgefahren werden soll. Führe den CLI-Fallback nur aus, nachdem der Benutzer bestätigt hat. - Das Wort
batchallein bedeutet keinen CLI-Fallback. Wenn der Benutzer viele Assets anfordert oder sagt, sie sollen als Batch generiert werden, ohne explizit nach CLI-/API-/Modellsteuerung zu fragen, bleibe beim integrierten Pfad und führe einen integrierten Aufruf pro angefordertem Asset oder Variante durch. - Wenn das integrierte Werkzeug fehlschlägt oder nicht verfügbar ist, teile dem Benutzer mit, dass der CLI-Fallback existiert und dass er
OPENAI_API_KEYerfordert. Fahre nur fort, wenn der Benutzer explizit nach diesem Fallback fragt. - Wenn der Benutzer explizit nach dem CLI-Modus fragt, verwende den gebündelten Workflow
scripts/image_gen.py. Erstelle keine einmaligen SDK-Runner. - Ändere niemals
scripts/image_gen.py. Wenn etwas fehlt, frage den Benutzer, bevor du etwas anderes tust.
Integrierte Speicher-Pfad-Richtlinie:
- Im integrierten Tool-Modus speichert Codex generierte Bilder standardmäßig unter
$CODEX_HOME/*. - Beschreibe oder verlasse dich nicht auf das temporäre Betriebssystemverzeichnis als Standardziel des integrierten Modus.
- Beschreibe oder verlasse dich nicht auf ein Zielpfad-Argument (falls vorhanden) des integrierten
image_gen-Tools. Wenn ein bestimmter Speicherort benötigt wird, generiere zuerst und verschiebe oder kopiere dann die ausgewählte Ausgabe von$CODEX_HOME/generated_images/.... - Priorität des Speicherpfads im integrierten Modus:
- Wenn der Benutzer ein Ziel angibt, verschiebe oder kopiere die ausgewählte Ausgabe dorthin.
- Wenn das Bild für das aktuelle Projekt bestimmt ist, verschiebe oder kopiere das endgültig ausgewählte Bild vor dem Abschluss in den Arbeitsbereich.
- Wenn das Bild nur für eine Vorschau oder zum Brainstorming dient, zeige es inline an; die zugrunde liegende Datei kann am Standardpfad
$CODEX_HOME/*verbleiben.
- Lasse ein projektbezogenes Asset niemals nur unter dem Standardpfad
$CODEX_HOME/*liegen. - Überschreibe kein vorhandenes Asset, es sei denn, der Benutzer hat explizit um Ersatz gebeten; erstelle andernfalls einen versionsverwalteten Geschwisternamen wie
hero-v2.pngoderitem-icon-edited.png.
Gemeinsame Prompt-Anleitungen für beide Modi befinden sich in references/prompting.md und references/sample-prompts.md.
Nur-Fallback-Dokumente/Ressourcen für den CLI-Modus:
references/cli.mdreferences/image-api.mdreferences/codex-network.mdscripts/image_gen.py
Lokales Nachbearbeitungs-Helfer-Skript:
$CODEX_HOME/skills/.system/imagegen/scripts/remove_chroma_key.py: Entfernt einen flachen Chroma-Key-Hintergrund aus einem generierten Bild und schreibt ein PNG/WebP mit Alpha. Bevorzuge automatische Key-Abtastung, weiche Matte und Despill für anti-aliasing-Kanten.
Wann verwenden
- Ein neues Bild generieren (Konzeptkunst, Produktaufnahme, Cover, Website-Hero)
- Ein neues Bild unter Verwendung eines oder mehrerer Referenzbilder für Stil, Komposition oder Stimmung generieren
- Ein vorhandenes Bild bearbeiten (Inpainting, Licht- oder Wettertransformationen, Hintergrundersatz, Objektentfernung, Compositing, transparenter Hintergrund)
- Viele Assets oder Varianten für eine Aufgabe produzieren
Wann nicht verwenden
- Erweitern oder Anpassen eines vorhandenen SVG/Vektor-Icon-Sets, Logosystems oder Illustrationsbibliothek innerhalb des Repos
- Erstellen einfacher Formen, Diagramme, Wireframes oder Icons, die besser direkt in SVG, HTML/CSS oder Canvas erstellt werden
- Durchführen einer kleinen projektlokalen Asset-Bearbeitung, wenn die Quelldatei bereits in einem bearbeitbaren nativen Format vorliegt
- Jede Aufgabe, bei der der Benutzer eindeutig deterministische code-native Ausgabe anstelle eines generierten Bitmaps möchte
Entscheidungsbaum
Denke über zwei separate Fragen nach:
- Absicht: Handelt es sich um ein neues Bild oder eine Bearbeitung eines vorhandenen Bildes?
- Ausführungsstrategie: Handelt es sich um ein einzelnes Asset oder viele Assets/Varianten?
Absicht:
- Wenn der Benutzer ein vorhandenes Bild modifizieren möchte, während Teile davon erhalten bleiben, behandele die Anfrage als Bearbeitung.
- Wenn der Benutzer Bilder nur als Referenzen für Stil, Komposition, Stimmung oder Motivführung bereitstellt, behandele die Anfrage als Generierung.
- Wenn der Benutzer keine Bilder bereitstellt, behandele die Anfrage als Generierung.
Integrierte Bearbeitungssemantik:
- Der integrierte Bearbeitungsmodus ist für Bilder gedacht, die bereits im Gesprächskontext sichtbar sind, z. B. angehängte Bilder oder zuvor im Thread generierte Bilder.
- Wenn der Benutzer eine lokale Bilddatei mit dem integrierten Werkzeug bearbeiten möchte, lade sie zuerst mit dem integrierten
view_image-Werkzeug, damit das Bild im Gesprächskontext sichtbar ist, und fahre dann mit dem integrierten Editier-Workflow fort. - Versprich keine beliebige Dateisystempfad-Bearbeitung durch das integrierte Werkzeug.
- Wenn eine lokale Datei immer noch eine direkte Dateipfadkontrolle, Masken oder andere explizite CLI-only-Parameter benötigt, verwende den expliziten CLI-Fallback nur, wenn der Benutzer danach fragt.
- Bewahre bei Bearbeitungen Invarianten aggressiv und speichere standardmäßig nicht-destruktiv.
Ausführungsstrategie:
- Erzeuge im integrierten Standardpfad viele Assets oder Varianten, indem du einen
image_gen-Aufruf pro angeforderter Asset oder Variante ausführst. - Verwende im CLI-Fallback-Pfad den CLI-Unterbefehl
generate-batchnur, wenn der Benutzer explizit den CLI-Modus gewählt hat und viele Prompts/Assets benötigt. - Verwende bei vielen unterschiedlichen Assets nicht
nals Ersatz für separate Prompts.nist für Varianten eines Prompts; unterschiedliche Assets benötigen separate integrierte Aufrufe oder separate CLIgenerate-batch-Jobs.
Gehe davon aus, dass der Benutzer ein neues Bild möchte, es sei denn, er bittet eindeutig darum, ein vorhandenes zu ändern.
Arbeitsablauf
- Entscheide den Top-Level-Modus: standardmäßig integriert, einschließlich einfacher Transparenzausgabe-Anfragen; Fallback-CLI nur, wenn explizit angefordert oder nach expliziter Bestätigung des Benutzers für ein Transparenzausgabe-Fallback.
- Entscheide die Absicht:
generateoderedit. - Entscheide, ob die Ausgabe nur für die Vorschau oder für die Verwendung im aktuellen Projekt bestimmt ist.
- Entscheide die Ausführungsstrategie: Einzel-Asset vs. wiederholte integrierte Aufrufe vs. CLI
generate-batch. - Sammle Eingaben im Voraus: Prompt(s), exakten Text (wörtlich), Einschränkungen/Vermeidungsliste und alle Eingabebilder.
- Beschrifte für jedes Eingabebild explizit seine Rolle:
- Referenzbild
- Bearbeitungsziel
- unterstützende Einfüge-/Stil-/Compositing-Eingabe
- Wenn sich das Bearbeitungsziel nur im lokalen Dateisystem befindet und du auf dem integrierten Pfad bleibst, inspiziere es zuerst mit
view_image, damit das Bild im Gesprächskontext verfügbar ist. - Wenn der Benutzer nach einem Foto, einer Illustration, einem Sprite, einem Produktbild, einem Banner oder einem anderen explizit rasterbasierten Asset fragt, verwende
image_gen, anstatt SVG/HTML/CSS-Platzhalter zu verwenden. Wenn die Anfrage nach einem Icon, Logo oder UI-Grafik ist, das zu vorhandenen repo-native SVG/Vektor/Code-Assets passen soll, bearbeite diese stattdessen direkt. - Erweitere den Prompt basierend auf Spezifität:
- Wenn der Prompt des Benutzers bereits spezifisch und detailliert ist, normalisiere ihn zu einer klaren Spezifikation, ohne kreative Anforderungen hinzuzufügen.
- Wenn der Prompt des Benutzers generisch ist, füge geschmackvolle Erweiterungen nur hinzu, wenn sie die Ausgabequalität wesentlich verbessern.
- Verwende standardmäßig das integrierte Werkzeug
image_gen. - Befolge bei Transparenzausgabe-Anfragen die folgende Anleitung für transparente Bilder: Generiere mit dem integrierten
image_genauf einem flachen Chroma-Key-Hintergrund, kopiere die ausgewählte Ausgabe in den Arbeitsbereich oder nachtmp/imagegen/, führe das installierte Helfer-Skript$CODEX_HOME/skills/.system/imagegen/scripts/remove_chroma_key.pyaus und validiere das Alpha-Ergebnis, bevor du es verwendest. Wenn dieser Pfad ungeeignet erscheint oder fehlschlägt, frage, bevor du zu CLIgpt-image-1.5wechselst. - Überprüfe Ausgaben und validiere: Motiv, Stil, Komposition, Textgenauigkeit und Invarianten/Vermeidungsliste.
- Iteriere mit einer einzigen gezielten Änderung und überprüfe dann erneut.
- Zeige das Bild für Vorschau-Arbeiten inline an; die zugrunde liegende Datei kann unter dem Standardpfad
$CODEX_HOME/generated_images/...verbleiben. - Verschiebe oder kopiere für projektgebundene Arbeiten das ausgewählte Artefakt in den Arbeitsbereich und aktualisiere alle verbrauchenden Code oder Referenzen. Lasse ein projektbezogenes Asset niemals nur unter dem Standardpfad
$CODEX_HOME/generated_images/...liegen. - Speichere bei Batches oder Multi-Asset-Anfragen jedes angeforderte endgültige Artefakt persistent im Arbeitsbereich, es sei denn, der Benutzer hat explizit darum gebeten, die Ausgaben nur als Vorschau zu behalten. Verworfene Varianten müssen nicht aufbewahrt werden, es sei denn, sie wurden angefordert.
- Wenn der Benutzer den CLI-Fallback explizit wählt oder bestätigt, verwende die Nur-Fallback-Dokumente für Modell, Qualität, Größe,
input_fidelity, Masken, Ausgabeformat, Ausgabepfade und Netzwerkeinrichtung. - Gib immer den endgültigen Speicherpfad(e) für alle arbeitsbereichsgebundenen Assets sowie den endgültigen Prompt oder Prompt-Satz und an, ob das integrierte Tool oder der Fallback-CLI-Modus verwendet wurde.
Transparente Bildanfragen
Anfragen für transparente Bilder verwenden zuerst das integrierte image_gen. Da das integrierte Tool keine echte transparente Hintergrundsteuerung bietet, erstelle ein entfernbares Chroma-Key-Quellbild und konvertiere dann die Key-Farbe lokal in Alpha.
Standardsequenz:
- Verwende das integrierte
image_gen, um das angeforderte Motiv auf einem perfekt flachen, durchgehenden Chroma-Key-Hintergrund zu generieren. - Wähle eine Key-Farbe, die wahrscheinlich nicht im Motiv vorkommt: Standard
#00ff00, verwende#ff00fffür grüne Motive und vermeide#0000fffür blaue Motive. - Verschiebe oder kopiere nach der Generierung das ausgewählte Quellbild von
$CODEX_HOME/generated_images/...in den Arbeitsbereich oder nachtmp/imagegen/. - Führe den installierten Helfer-Pfad aus, keinen projektrelativen Skriptpfad:
python "${CODEX_HOME:-$HOME/.codex}/skills/.system/imagegen/scripts/remove_chroma_key.py" \ --input <quelle> \ --out <final.png> \ --auto-key border \ --soft-matte \ --transparent-threshold 12 \ --opaque-threshold 220 \ --despill - Validiere, dass die Ausgabe einen Alpha-Kanal, transparente Ecken, eine plausible Motivabdeckung und keine offensichtlichen Key-Color-Ausfransungen aufweist. Wenn ein dünner Rand verbleibt, wiederhole einmal mit
--edge-contract 1; verwende--edge-feather 0.25nur, wenn die Kante sichtbar treppenartig ist und das Motiv nicht glänzend oder reflektierend ist. - Speichere das endgültige Alpha-PNG/WebP im Projekt, wenn das Asset projektgebunden ist. Lasse ein projektbezogenes transparentes Asset niemals nur unter
$CODEX_HOME/*liegen.
Formuliere transparente Anfragen wie folgt:
Erstelle das angeforderte Motiv auf einem perfekt flachen, durchgehenden #00ff00 Chroma-Key-Hintergrund zur Hintergrundentfernung.
Der Hintergrund muss eine einheitliche Farbe ohne Schatten, Farbverläufe, Texturen, Reflexionen, Bodenebene oder Lichtvariationen sein.
Halte das Motiv vollständig vom Hintergrund getrennt mit scharfen Kanten und großzügigem Padding.
Verwende #00ff00 nirgendwo im Motiv.
Keine Bodenprojektion, kein Kontaktschatten, keine Spiegelung, kein Wasserzeichen und kein Text, es sei denn, explizit angefragt.
Verwende nicht automatisch CLI gpt-image-1.5 --background transparent --output-format png anstelle von Chroma-Keying. Frage den Benutzer zuerst, wenn er nach echter/nativer Transparenz fragt, wenn die lokale Entfernung die Validierung nicht besteht oder wenn das angeforderte Bild komplex ist: Haare, Fell, Federn, Rauch, Glas, Flüssigkeiten, transluzente Materialien, reflektierende Objekte, weiche Schatten, realistische Produkteinbettung oder Motivfarben, die mit allen praktischen Key-Farben kollidieren.
Verwende eine prägnante Bestätigung wie:
Dies erfordert wahrscheinlich echte native Transparenz. Der standardmäßige integrierte Pfad verwendet einen Chroma-Key-Hintergrund plus lokale Entfernung, aber echte Transparenz erfordert den CLI-Fallback mit gpt-image-1.5, da gpt-image-2 background=transparent nicht unterstützt. Es erfordert auch OPENAI_API_KEY. Soll ich mit diesem CLI-Fallback fortfahren?
Prompt-Erweiterung
Formatiere Benutzer-Prompts in eine strukturierte, produktionsorientierte Spezifikation um. Mache das Ziel des Benutzers klarer und umsetzbarer, füge aber nicht blind Details hinzu.
Behandle dies als Prompt-Formgebungsleitfaden, nicht als abgeschlossenes Schema. Verwende nur die Zeilen, die helfen, und füge eine kurze zusätzliche beschriftete Zeile hinzu, wenn sie die Klarheit wesentlich verbessert.
Spezifitätsrichtlinie
Verwende die Spezifität des Benutzer-Prompts, um zu entscheiden, wie viel Erweiterung angemessen ist:
- Wenn der Prompt bereits spezifisch und detailliert ist, bewahre diese Spezifität und normalisiere/stukturiere ihn nur.
- Wenn der Prompt generisch ist, kannst du geschmackvolle Erweiterungen hinzufügen, wenn sie das Ergebnis wesentlich verbessern.
Erlaubte Erweiterungen:
- Kompositions- oder Bildausschnittshinweise
- Hinweise zum Poliergrad oder zur beabsichtigten Verwendung
- Praktische Layout-Anleitung
- Angemessene Szenenkonkretheit, die die angeforderte Anfrage unterstützt
Nicht erlaubte Erweiterungen:
- Zusätzliche Charaktere oder Objekte, die nicht durch die Anfrage impliziert werden
- Markennamen, Slogans, Paletten oder narrative Elemente, die nicht impliziert werden
- Willkürliche seitenbezogene Platzierung, es sei denn, das umgebende Layout unterstützt sie
Nutzungsbeispiele
...