Clé API GPT Image 2
Aperçu
Générez ou modifiez des images avec un fournisseur gpt-image-2 configuré séparément en exécutant scripts/generate_image.py. Utilisez cette compétence lorsque la génération d'images doit être facturée, authentifiée et isolée d'une clé API d'image dédiée au lieu des identifiants OpenAI/Codex actuels de Codex.
La compétence ne lit délibérément pas OPENAI_API_KEY, les fichiers d'authentification Codex, ou les identifiants de session ChatGPT/Codex. Elle lit uniquement le fichier de configuration privée sélectionné par --config, ou le fichier de configuration par défaut documenté ci-dessous.
Ce que cela résout
Cette compétence résout un problème courant de flux de travail Codex : la session Codex actuelle peut déjà être authentifiée avec une clé API, tandis que la génération d'images doit utiliser une autre clé, un autre compte, un autre quota ou un proxy compatible OpenAI.
Utilisez cette compétence pour :
- Garder les identifiants de génération d'images séparés des propres identifiants de Codex.
- Appeler un point de terminaison d'image
gpt-image-2ou compatible depuis Codex sans exposer la clé dans les invites, commandes ou fichiers du dépôt. - Générer des images via
/v1/images/generations. - Modifier des images existantes via
/v1/images/editsavec téléchargement multipart. - Utiliser une ou plusieurs images de référence pour les modifications, les restylages, les maquettes de logo, les présentations de produits et les transformations image-à-image.
- Fournir éventuellement une image de masque pour les modifications limitées à une région.
- Enregistrer les sorties générées vers des chemins locaux explicites que Codex peut afficher, inspecter ou transmettre aux étapes suivantes.
Cas d'utilisation
Utilisez cette compétence pour des demandes telles que :
- « Générez un logo avec le texte exact
JunXxxxi. » - « Utilisez cette image de référence et rendez le mot-symbole en italique. »
- « Modifiez le texte de ce logo en un dégradé métallique argenté à noir. »
- « Créez une image de produit en utilisant gpt-image-2, mais utilisez ma clé API d'image séparée. »
- « Modifiez cette image tout en préservant la composition originale. »
- « Utilisez un fournisseur d'images compatible OpenAI avec une URL de base personnalisée. »
Préférez un traitement d'image local déterministe plutôt que cette compétence lorsque la modification demandée est une simple transformation au niveau pixel qui doit préserver la géométrie exacte, comme le recadrage, le redimensionnement, la conversion alpha, ou un remappage de couleur entièrement déterministe. Préférez cette compétence lorsque l'utilisateur souhaite une interprétation visuelle basée sur un modèle, un restylage ou une génération.
Contenu
gpt-image-2-apikey/
├── SKILL.md
├── agents/
│ └── openai.yaml
└── scripts/
└── generate_image.py
SKILL.md: Documentation de flux de travail orientée Codex et d'utilisation humaine.agents/openai.yaml: Métadonnées optionnelles pour l'interface utilisateur Codex.scripts/generate_image.py: Script Python sans dépendances qui appelle les points de terminaison de génération ou d'édition.
Le script supporte les réponses d'image au format b64_json et URL. Les réponses URL sont téléchargées immédiatement et écrites dans le chemin de sortie demandé.
Configuration privée
Chemin de configuration par défaut :
~/.config/gpt-image-2-apikey/config.json
La configuration doit contenir la clé du fournisseur d'images, pas la clé API Codex actuelle :
{
"api_key": "mettre-la-clé-du-fournisseur-d-images-ici",
"base_url": "https://api.openai.com/v1",
"model": "gpt-image-2"
}
Définissez les permissions privées après avoir créé le fichier :
chmod 600 ~/.config/gpt-image-2-apikey/config.json
Utilisez --config /chemin/vers/config.json uniquement lorsque l'utilisateur demande explicitement un autre fichier de configuration privée.
Champs de configuration
api_key: obligatoire. La clé du fournisseur d'images. N'utilisez pas la clé API actuelle de Codex sauf si cela est explicitement intentionnel.base_url: optionnel. Par défauthttps://api.openai.com/v1. Pour les fournisseurs compatibles OpenAI, conservez-la à la racine de l'API, par exemplehttps://example.com/v1.model: optionnel. Par défautgpt-image-2.extra_body: objet optionnel. Les valeurs sont fusionnées dans le corps de la requête pour les champs spécifiques au fournisseur.
Exemples corrects de base_url :
{
"base_url": "https://api.openai.com/v1"
}
{
"base_url": "https://www.packyapi.com/v1"
}
N'incluez pas /images/generations ou /images/edits dans base_url sauf si vous souhaitez délibérément fixer un point de terminaison exact. Le script ajoute normalement automatiquement le bon point de terminaison.
Utilisation
Exécutez depuis le répertoire de la compétence :
python3 scripts/generate_image.py \
--prompt "Photo produit propre d'un clavier mécanique noir mat sur un bureau en noyer" \
--out /chemin/absol/vers/sortie.png \
--size 1024x1024 \
--quality high
Si --edit-image est omis, le script appelle :
POST <base_url>/images/generations
Modifiez une ou plusieurs images de référence en ajoutant --edit-image :
python3 scripts/generate_image.py \
--prompt "Transformez ce logo en texte italique avec dégradé argenté à noir tout en préservant l'orthographe exacte" \
--edit-image /chemin/absol/vers/entree.png \
--out /chemin/absol/vers/modifie.png \
--size 1024x1024 \
--quality high
Si --edit-image est présent, le script appelle :
POST <base_url>/images/edits
Pour les modifications masquées, ajoutez --mask /chemin/absol/vers/masque.png :
python3 scripts/generate_image.py \
--prompt "Changez uniquement l'arrière-plan pour un gris studio propre, en préservant le sujet" \
--edit-image /chemin/absol/vers/source.png \
--mask /chemin/absol/vers/masque.png \
--out /chemin/absol/vers/modifie.png \
--quality high
Répétez --edit-image pour les modifications multi-images :
python3 scripts/generate_image.py \
--prompt "Combinez le produit de l'image 1 avec l'ambiance de fond de l'image 2" \
--edit-image /chemin/absol/vers/produit.png \
--edit-image /chemin/absol/vers/reference-arriere-plan.png \
--out /chemin/absol/vers/combine.png
Fournissez toujours un chemin --out absolu lorsque l'utilisateur a besoin du fichier à un emplacement spécifique. S'il est omis, le script écrit un PNG horodaté dans le répertoire de travail actuel.
Référence des commandes
--prompt Invite d'image obligatoire ou instruction de modification.
--out Chemin de l'image de sortie. Les sorties supplémentaires utilisent -2, -3, etc. avant l'extension.
--config Chemin de la configuration privée. Par défaut ~/.config/gpt-image-2-apikey/config.json.
--model Remplace le modèle depuis la configuration.
--size Taille d'image supportée par le fournisseur. Par défaut : 1024x1024.
--quality low, medium, high, ou auto. Par défaut : auto.
--n Nombre d'images. Par défaut : 1.
--format png, jpeg, ou webp. Par défaut : png.
--edit-image Chemin de l'image d'entrée pour /v1/images/edits. Répétable.
--mask Chemin optionnel du masque PNG pour les modifications.
--timeout Délai d'attente HTTP en secondes. Par défaut : 600.
--dry-run Affiche le point de terminaison, le corps et la liste des fichiers expurgés sans appeler l'API.
Utilisez --dry-run avant un appel réel pour vérifier la configuration, le routage du point de terminaison, ou si une modification utilisera le fichier d'entrée prévu :
python3 scripts/generate_image.py \
--prompt "essai à sec uniquement" \
--edit-image /chemin/absol/vers/entree.png \
--out /chemin/absol/vers/sortie.png \
--dry-run
La sortie du dry-run expurge l'autorisation en tant que Bearer ***redacted***.
Conseils pour les invites
Pour la génération :
- Indiquez explicitement le type d'actif, le sujet, le style, la disposition et le texte requis.
- Mettez le texte visible exact entre guillemets.
- Incluez « pas de texte supplémentaire, pas de filigrane » lorsque vous travaillez sur des logos, affiches ou graphiques UI.
- Utilisez
quality highpour les logos finaux, les images riches en typographie, les photos de produits et les livrables soignés. - Utilisez
quality lowpour une exploration bon marché et des ébauches rapides.
Pour les modifications :
- Décrivez le changement, pas l'image entière, sauf si l'image entière doit être réinterprétée.
- Nommez explicitement ce qui doit être préservé : orthographe du texte, disposition, composition, identité du visage, forme du produit, couleurs ou arrière-plan.
- Pour les graphiques contenant beaucoup de texte, répétez l'orthographe exacte et la casse dans l'invite.
- Utilisez des masques pour les modifications chirurgicales lorsque le fournisseur les supporte.
Exemple d'invite de modification :
Modifiez l'image du logo fournie. Préservez le texte exact "JunXxxxi" et la même disposition du mot-symbole. Rendez les lettres en italique/inclinées vers la droite. Changez le remplissage des lettres en un dégradé métallique allant de l'argent clair en haut/à gauche jusqu'au noir profond en bas/à droite. Gardez un fond blanc propre. N'ajoutez pas de mots supplémentaires, icônes, filigranes, bordures ou éléments décoratifs.
Règles d'isolation
- Ne transmettez pas et ne copiez pas la clé API actuelle de Codex dans cette compétence.
- Ne lisez pas
OPENAI_API_KEY; le script l'ignore intentionnellement. - N'affichez pas
api_keyni le contenu de la configuration. Le script ne signale qu'un résumé de configuration expurgé dans--dry-run. - Si la configuration est manquante, demandez à l'utilisateur de créer le fichier de configuration privée. Ne le créez pas avec un secret réel en son nom sauf demande explicite.
- Si un fournisseur utilise un point de terminaison compatible OpenAI, définissez
base_urldans la configuration privée. Le script ajoute/images/generationspour la génération et/images/editspour les modifications.
Notes de configuration
- Gardez
config.jsonen dehors de Git. Ne commettez jamais de clés API réelles. - Utilisez le mode de fichier
600pour la configuration privée. - Gardez
base_urlà la racine de l'API (.../v1) sauf indication contraire du fournisseur. - Si le fournisseur nécessite des champs de requête personnalisés, placez-les sous
extra_body. - Si le fournisseur ne supporte pas
gpt-image-2, définissezmodelsur le nom du modèle compatible du fournisseur. - Si le fournisseur ne supporte que les réponses URL, le script téléchargera l'URL renvoyée.
- Si le fournisseur renvoie des images base64 dans
b64_json, le script les décodera directement. - Les appels réseau peuvent entraîner des frais sur le compte du fournisseur configuré.
Exemple avec des champs spécifiques au fournisseur :
{
"api_key": "mettre-la-clé-du-fournisseur-d-images-ici",
"base_url": "https://example.com/v1",
"model": "gpt-image-2",
"extra_body": {
"moderation": "auto"
}
}
Gestion des échecs
- Configuration manquante ou
api_keymanquant : signalez le chemin de la configuration et les champs requis. - Erreur HTTP : affichez le code de statut et le corps d'erreur du fournisseur, mais n'incluez jamais la clé.
- Réponse du fournisseur non supportée : signalez les clés de réponse de premier niveau et n'enregistrez aucun fichier.
- Images multiples : la première image utilise
--out; les images supplémentaires obtiennent-2,-3, etc. avant l'extension.
Limitations
- Cette compétence est un wrapper d'API, pas un éditeur graphique complet. Utilisez des outils locaux déterministes pour des recadrages, redimensionnements, exportations vectorielles ou modifications typographiques garanties pixel parfait.
- L'édition d'image basée sur un modèle peut modifier le texte exact, le crénage ou la géométrie. Pour les logos et les mots-symboles, inspectez le résultat avant la livraison.
- La compatibilité des modifications multipart peut varier selon les fournisseurs compatibles OpenAI. Si les modifications échouent mais que la génération fonctionne, vérifiez si le fournisseur supporte
/v1/images/editsavec des téléchargements multipartimage. - Le script envoie actuellement les images de modification avec le nom de champ multipart
image[]pour la compatibilité multi-images. Si un fournisseur nécessite un nom de champ différent, ajustezscripts/generate_image.pypour ce fournisseur. - Le comportement de l'arrière-plan transparent réel dépend du support du fournisseur/modèle. Si des PNG transparents sont requis, vérifiez le canal alpha après la génération.
Notes de publication
Lors de la publication de cette compétence sur GitHub :
- Incluez
SKILL.md,agents/openai.yaml, etscripts/generate_image.py. - N'incluez pas
~/.config/gpt-image-2-apikey/config.json. - N'incluez pas les images générées sauf s'il s'agit d'exemples intentionnels.
- Ajoutez des entrées
.gitignorepour les configurations locales, les sorties et les images temporaires si cette compétence réside dans un dépôt plus grand.