Communitygithub.com

GPT Image 2 API Key

Codex-Fähigkeit zur GPT-Image-2-Generierung und -Bearbeitung mit einem isolierten API-Schlüssel.

Was ist GPT Image 2 API Key?

Diese Fähigkeit für Codex ermöglicht es, Bilder über den separaten Provider `gpt-image-2` zu generieren oder zu bearbeiten, ohne den aktuellen Codex-API-Schlüssel zu verwenden. Sie löst das häufige Problem, dass Bildgenerierung mit einem anderen Konto, Kontingent oder Proxy abgerechnet oder authentifiziert werden soll als die übrige Codex-Nutzung. Die Fähigkeit liest ausschließlich eine private Konfigurationsdatei (Standard: `~/.config/gpt-image-2-apikey/config.json`), die den API-Schlüssel des Bildanbieters, die Basis-URL und das Modell enthält. Sie unterstützt sowohl die Generierung (`/v1/images/generations`) als auch die Bearbeitung bestehender Bilder (`/v1/images/edits`), inklusive Masken und mehrerer Referenzbilder. Dank des Skripts `scripts/generate_image.py` (null-Abhängigkeiten, reines Python 3) kann der Benutzer Ausgaben an explizite lokale Pfade speichern, die dann von Codex angezeigt oder in nachfolgenden Schritten verwendet werden. Die Fähigkeit eignet sich besonders für Logos, Produktbilder und Image-to-Image-Transformationen, bei denen ein eigener API-Schlüssel und ein separates Konto verwendet werden sollen.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add junxxxxiao/gpt-image-2-apikey-skill

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht GPT Image 2 API Key?

Übersicht

Generieren oder bearbeiten Sie Bilder mit einem separat konfigurierten gpt-image-2-Provider, indem Sie scripts/generate_image.py ausführen. Verwenden Sie diese Fähigkeit, wenn die Bildgenerierung mit einem eigenen, isolierten API-Schlüssel abgerechnet, authentifiziert und gemanagt werden soll – anstatt mit den aktuellen OpenAI/Codex-Anmeldedaten von Codex.

Die Fähigkeit liest bewusst nicht OPENAI_API_KEY, Codex-Auth-Dateien oder ChatGPT/Codex-Sitzungsanmeldedaten. Sie liest ausschließlich die private Konfigurationsdatei, die mit --config ausgewählt wird, oder die unten dokumentierte Standard-Konfigurationsdatei.

Was dieses Problem löst

Diese Fähigkeit adressiert ein häufiges Codex-Workflow-Problem: Die aktuelle Codex-Sitzung ist möglicherweise bereits mit einem API-Schlüssel authentifiziert, während die Bildgenerierung einen anderen Schlüssel, ein anderes Konto, ein anderes Kontingent oder einen OpenAI-kompatiblen Proxy verwenden soll.

Verwenden Sie diese Fähigkeit zum:

  • Trennen der Bildgenerierungs-Anmeldedaten von den eigenen Codex-Anmeldedaten.
  • Aufrufen eines gpt-image-2 oder kompatiblen Bild-Endpunkts von Codex aus, ohne den Schlüssel in Prompts, Befehlen oder Repository-Dateien preiszugeben.
  • Generieren von Bildern über /v1/images/generations.
  • Bearbeiten vorhandener Bilder über /v1/images/edits mit Multipart-Upload.
  • Verwenden eines oder mehrerer Referenzbilder für Bearbeitungen, Restyles, Logo-Behandlungen, Produkt-Mockups und Image-to-Image-Transformationen.
  • Optionales Bereitstellen eines Maskenbilds für bereichsbegrenzte Bearbeitungen.
  • Speichern generierter Ausgaben in expliziten lokalen Pfaden, die Codex anzeigen, inspizieren oder an nachfolgende Schritte übergeben kann.

Anwendungsfälle

Verwenden Sie diese Fähigkeit für Anfragen wie:

  • „Generiere ein Logo mit dem genauen Text JunXxxxi.“
  • „Verwende dieses Referenzbild und mache das Wortmarke kursiv.“
  • „Ändere den Text dieses Logos in einen Silber-zu-Schwarz-Metallic-Verlauf.“
  • „Erstelle ein Produktbild mit gpt-image-2, aber verwende meinen separaten Bild-API-Schlüssel.“
  • „Bearbeite dieses Bild und behalte die ursprüngliche Komposition bei.“
  • „Verwende einen OpenAI-kompatiblen Bildanbieter mit einer benutzerdefinierten Basis-URL.“

Bevorzugen Sie deterministische lokale Bildverarbeitung anstelle dieser Fähigkeit, wenn die gewünschte Änderung eine einfache Pixel-Transformation ist, die exakte Geometrie bewahren muss, wie Zuschneiden, Größenänderung, Alpha-Konvertierung oder eine vollständig deterministische Farbneuzuordnung. Bevorzugen Sie diese Fähigkeit, wenn der Benutzer eine modellbasierte visuelle Interpretation, Restyling oder Generierung wünscht.

Inhalt

gpt-image-2-apikey/
├── SKILL.md
├── agents/
│   └── openai.yaml
└── scripts/
    └── generate_image.py
  • SKILL.md: Codex-seitige Workflow- und für Menschen lesbare Nutzungsdokumentation.
  • agents/openai.yaml: optionale Codex-UI-Metadaten.
  • scripts/generate_image.py: Python-3-Skript ohne Abhängigkeiten, das Generierungs- oder Bearbeitungsendpunkte aufruft.

Das Skript unterstützt sowohl b64_json als auch URL-basierte Bildantworten. URL-Antworten werden sofort heruntergeladen und in den angeforderten Ausgabepfad geschrieben.

Private Konfiguration

Standard-Konfigurationspfad:

~/.config/gpt-image-2-apikey/config.json

Die Konfiguration muss den Schlüssel des Bildanbieters enthalten, nicht den aktuellen Codex-API-Schlüssel:

{
  "api_key": "Bild-Anbieter-Schlüssel-hier-einfügen",
  "base_url": "https://api.openai.com/v1",
  "model": "gpt-image-2"
}

Legen Sie nach dem Erstellen der Datei private Berechtigungen fest:

chmod 600 ~/.config/gpt-image-2-apikey/config.json

Verwenden Sie --config /pfad/zur/config.json nur, wenn der Benutzer explizit eine andere private Konfigurationsdatei wünscht.

Konfigurationsfelder

  • api_key: erforderlich. Der Schlüssel des Bildanbieters. Verwenden Sie nicht den aktuellen Codex-API-Schlüssel, es sei denn, dies ist ausdrücklich beabsichtigt.
  • base_url: optional. Standardmäßig https://api.openai.com/v1. Für OpenAI-kompatible Anbieter belassen Sie dies auf der API-Wurzel, z. B. https://example.com/v1.
  • model: optional. Standardmäßig gpt-image-2.
  • extra_body: optionales Objekt. Werte werden in den Anforderungskörper für anbieterspezifische Felder eingefügt.

Gute base_url-Beispiele:

{
  "base_url": "https://api.openai.com/v1"
}
{
  "base_url": "https://www.packyapi.com/v1"
}

Fügen Sie /images/generations oder /images/edits nicht in base_url ein, es sei denn, Sie möchten absichtlich genau einen Endpunkt festlegen. Das Skript hängt normalerweise den richtigen Endpunkt automatisch an.

Verwendung

Führen Sie das Skript aus dem Skill-Verzeichnis aus:

python3 scripts/generate_image.py \
  --prompt "Ein sauberes Produktfoto einer matten schwarzen mechanischen Tastatur auf einem Walnuss-Schreibtisch" \
  --out /absoluter/pfad/zum/output.png \
  --size 1024x1024 \
  --quality high

Wenn --edit-image weggelassen wird, ruft das Skript auf:

POST <base_url>/images/generations

Bearbeiten Sie ein oder mehrere Referenzbilder, indem Sie --edit-image hinzufügen:

python3 scripts/generate_image.py \
  --prompt "Wandle dieses Logo in kursiven Silber-zu-Schwarz-Verlaufstext um, während die genaue Schreibweise erhalten bleibt" \
  --edit-image /absoluter/pfad/zum/input.png \
  --out /absoluter/pfad/zum/bearbeitet.png \
  --size 1024x1024 \
  --quality high

Wenn --edit-image vorhanden ist, ruft das Skript auf:

POST <base_url>/images/edits

Für maskierte Bearbeitungen fügen Sie --mask /absoluter/pfad/zur/maske.png hinzu:

python3 scripts/generate_image.py \
  --prompt "Ändere nur den Hintergrund in ein sauberes Studio-Grau und behalte das Motiv bei" \
  --edit-image /absoluter/pfad/zum/source.png \
  --mask /absoluter/pfad/zur/maske.png \
  --out /absoluter/pfad/zum/bearbeitet.png \
  --quality high

Wiederholen Sie --edit-image für Mehrbild-Bearbeitungen:

python3 scripts/generate_image.py \
  --prompt "Kombiniere das Produkt aus Bild 1 mit der Hintergrundstimmung aus Bild 2" \
  --edit-image /absoluter/pfad/zum/produkt.png \
  --edit-image /absoluter/pfad/zum/hintergrund-referenz.png \
  --out /absoluter/pfad/zum/kombiniert.png

Geben Sie immer einen absoluten --out-Pfad an, wenn der Benutzer die Datei an einem bestimmten Ort benötigt. Wenn weggelassen, schreibt das Skript eine zeitgestempelte PNG in das aktuelle Arbeitsverzeichnis.

Befehlsreferenz

--prompt       Erforderlicher Bild-Prompt oder Bearbeitungsanweisung.
--out          Ausgabebildpfad. Zusätzliche Ausgaben verwenden -2, -3 usw. vor der Erweiterung.
--config       Privater Konfigurationspfad. Standard: ~/.config/gpt-image-2-apikey/config.json.
--model        Modell aus der Konfiguration überschreiben.
--size         Vom Anbieter unterstützte Bildgröße. Standard: 1024x1024.
--quality      low, medium, high oder auto. Standard: auto.
--n            Anzahl der Bilder. Standard: 1.
--format       png, jpeg oder webp. Standard: png.
--edit-image   Eingabebildpfad für /v1/images/edits. Wiederholbar.
--mask         Optionaler PNG-Maskenpfad für Bearbeitungen.
--timeout      HTTP-Timeout in Sekunden. Standard: 600.
--dry-run      Gibt redigierten Endpunkt, Körper und Dateiliste aus, ohne die API aufzurufen.

Verwenden Sie --dry-run vor einem echten Aufruf, wenn Sie die Konfiguration, das Endpunkt-Routing oder prüfen möchten, ob eine Bearbeitung die beabsichtigte Eingabedatei verwendet:

python3 scripts/generate_image.py \
  --prompt "nur Testlauf" \
  --edit-image /absoluter/pfad/zum/input.png \
  --out /absoluter/pfad/zum/output.png \
  --dry-run

Die Trockenlauf-Ausgabe redigiert die Autorisierung als Bearer ***redacted***.

Anleitung zur Prompt-Erstellung

Für die Generierung:

  • Geben Sie den Asset-Typ, das Motiv, den Stil, das Layout und den erforderlichen Text explizit an.
  • Setzen Sie den exakten sichtbaren Text in Anführungszeichen.
  • Fügen Sie „kein zusätzlicher Text, kein Wasserzeichen“ hinzu, wenn Sie an Logos, Postern oder UI-Grafiken arbeiten.
  • Verwenden Sie quality high für finale Logos, typografielastige Bilder, Produktaufnahmen und polierte Lieferobjekte.
  • Verwenden Sie quality low für günstige Exploration und schnelle Entwürfe.

Für Bearbeitungen:

  • Beschreiben Sie die Änderung, nicht das gesamte Bild, es sei denn, das gesamte Bild soll neu interpretiert werden.
  • Nennen Sie explizit, was erhalten bleiben muss: Textschreibweise, Layout, Komposition, Gesichtsidentität, Produktform, Farben oder Hintergrund.
  • Wiederholen Sie bei textlastigen Grafiken die genaue Schreibweise und Groß-/Kleinschreibung im Prompt.
  • Verwenden Sie Masken für chirurgische Bearbeitungen, wenn der Anbieter dies unterstützt.

Beispiel-Bearbeitungsprompt:

Bearbeite das bereitgestellte Logobild. Erhalte den genauen Text "JunXxxxi" und dasselbe Wortmarken-Layout. Mache die Buchstaben kursiv/schräg nach rechts. Ändere die Buchstabenfüllung in einen metallischen Verlauf von hellem Silber oben/links zu tiefem Schwarz unten/rechts. Behalte einen sauberen weißen Hintergrund. Füge keine zusätzlichen Wörter, Symbole, Wasserzeichen, Rahmen oder dekorativen Elemente hinzu.

Isolationsregeln

  • Geben Sie den aktuellen Codex-API-Schlüssel nicht an diese Fähigkeit weiter oder kopieren Sie ihn nicht.
  • Lesen Sie nicht OPENAI_API_KEY; das Skript ignoriert diesen bewusst.
  • Geben Sie api_key oder Konfigurationsinhalte nicht aus. Das Skript meldet nur eine redigierte Konfigurationszusammenfassung in --dry-run.
  • Wenn die Konfiguration fehlt, teilen Sie dem Benutzer mit, dass er die private Konfigurationsdatei erstellen soll. Erstellen Sie sie nicht mit einem echten Geheimnis in seinem Namen, es sei denn, er fragt ausdrücklich danach.
  • Wenn ein Anbieter einen OpenAI-kompatiblen Endpunkt verwendet, setzen Sie base_url in der privaten Konfiguration. Das Skript hängt /images/generations für die Generierung und /images/edits für Bearbeitungen an.

Konfigurationshinweise

  • Halten Sie config.json aus Git heraus. Committen Sie niemals echte API-Schlüssel.
  • Verwenden Sie Dateimodus 600 für die private Konfiguration.
  • Belassen Sie base_url auf der API-Wurzel (.../v1), es sei denn, der Anbieter dokumentiert etwas anderes.
  • Wenn der Anbieter benutzerdefinierte Anforderungsfelder erfordert, platzieren Sie sie unter extra_body.
  • Wenn der Anbieter gpt-image-2 nicht unterstützt, setzen Sie model auf den kompatiblen Modellnamen des Anbieters.
  • Wenn der Anbieter nur URL-Antworten unterstützt, lädt das Skript die zurückgegebene URL herunter.
  • Wenn der Anbieter Base64-Bilder in b64_json zurückgibt, dekodiert das Skript diese direkt.
  • Netzwerkaufrufe können Kosten auf dem konfigurierten Anbieterkonto verursachen.

Beispiel mit anbieterspezifischen Feldern:

{
  "api_key": "Bild-Anbieter-Schlüssel-hier-einfügen",
  "base_url": "https://example.com/v1",
  "model": "gpt-image-2",
  "extra_body": {
    "moderation": "auto"
  }
}

Fehlerbehandlung

  • Fehlende Konfiguration oder fehlender api_key: Melden Sie den Konfigurationspfad und die erforderlichen Felder.
  • HTTP-Fehler: Geben Sie den Statuscode und den Fehlertext des Anbieters aus, aber niemals den Schlüssel.
  • Nicht unterstützte Anbieterantwort: Melden Sie die Antwort-Schlüssel der obersten Ebene und speichern Sie keine Datei.
  • Mehrere Bilder: Das erste Bild verwendet --out; zusätzliche Bilder erhalten -2, -3 usw. vor der Erweiterung.

Einschränkungen

  • Diese Fähigkeit ist ein API-Wrapper, kein vollständiger Grafikeditor. Verwenden Sie deterministische lokale Werkzeuge für exakte Zuschnitte, Größenänderungen, Vektorexporte oder garantierte pixelgenaue Typografieänderungen.
  • Modellbasierte Bildbearbeitung kann exakten Text, Kerning oder Geometrie verändern. Überprüfen Sie das Ergebnis bei Logos und Wortmarken vor der Auslieferung.
  • Die Kompatibilität von Multipart-Bearbeitungen kann je nach OpenAI-kompatiblem Anbieter variieren. Wenn Bearbeitungen fehlschlagen, die Generierung aber funktioniert, prüfen Sie, ob der Anbieter /v1/images/edits mit Multipart-image-Uploads unterstützt.
  • Das Skript sendet Bearbeitungsbilder derzeit mit dem Multipart-Feldnamen image[] für die Mehrbild-Kompatibilität. Wenn ein Anbieter einen anderen Feldnamen erfordert, passen Sie scripts/generate_image.py für diesen Anbieter an.
  • Die echte Transparenz-Hintergrundunterstützung hängt von der Unterstützung des Anbieters/Modells ab. Wenn transparente PNGs erforderlich sind, überprüfen Sie den Alphakanal nach der Generierung.

Hinweise zur Veröffentlichung

Wenn Sie diese Fähigkeit auf GitHub veröffentlichen:

  • Fügen Sie SKILL.md, agents/openai.yaml und scripts/generate_image.py ein.
  • Fügen Sie ~/.config/gpt-image-2-apikey/config.json nicht ein.
  • Fügen Sie generierte Bilder nicht ein, es sei denn, es handelt sich um absichtliche Beispiele.
  • Fügen Sie .gitignore-Einträge für lokale Konfigurationen, Ausgaben und temporäre Bilder hinzu, wenn diese Fähigkeit in einem größeren Repository lebt.

Verwandte Skills