Communitygithub.com

junxxxxiao/gpt-image-2-apikey-skill

Compétence Codex pour la génération et l'édition d'images GPT Image 2 avec une clé API isolée.

Qu'est-ce que gpt-image-2-apikey-skill ?

Cette compétence pour Codex permet de générer ou modifier des images via le fournisseur `gpt-image-2` en utilisant une clé API dédiée, séparée de celle de Codex. Elle résout un problème courant : lorsque la session Codex est déjà authentifiée avec une clé API, mais que la génération d'images nécessite une autre clé, un autre compte ou un proxy compatible OpenAI. La compétence lit exclusivement un fichier de configuration privé (par défaut `~/.config/gpt-image-2-apikey/config.json`) et ignore délibérément `OPENAI_API_KEY` ou les identifiants de session Codex. Elle supporte la génération (`/v1/images/generations`) et l'édition d'images (`/v1/images/edits`) avec téléchargement multipart, possibilité d'utiliser une ou plusieurs images de référence, et un masque optionnel pour les éditions limitées à une région. Les sorties sont enregistrées dans des chemins locaux explicites que Codex peut afficher ou transmettre aux étapes suivantes. La compétence inclut un script Python sans dépendances externes (`scripts/generate_image.py`) et une configuration privée sécurisée. Utilisez-la pour des demandes comme « Génère un logo avec le texte exact `JunXxxxi` » ou « Modifie cette image tout en préservant la composition originale ».

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

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-2 ou 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/edits avec 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éfaut https://api.openai.com/v1. Pour les fournisseurs compatibles OpenAI, conservez-la à la racine de l'API, par exemple https://example.com/v1.
  • model : optionnel. Par défaut gpt-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 high pour les logos finaux, les images riches en typographie, les photos de produits et les livrables soignés.
  • Utilisez quality low pour 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_key ni 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_url dans la configuration privée. Le script ajoute /images/generations pour la génération et /images/edits pour les modifications.

Notes de configuration

  • Gardez config.json en dehors de Git. Ne commettez jamais de clés API réelles.
  • Utilisez le mode de fichier 600 pour 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éfinissez model sur 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_key manquant : 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/edits avec des téléchargements multipart image.
  • 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, ajustez scripts/generate_image.py pour 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, et scripts/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 .gitignore pour les configurations locales, les sorties et les images temporaires si cette compétence réside dans un dépôt plus grand.

Skills associés