Que fait ImageGen ?
Une commande unique qui appelle /images/generations ou /images/edits et sauvegarde le résultat dans le projet courant.
Configuration (une fois, par l'utilisateur)
- Nécessite une clé API pour l'API OpenAI Images ou toute API image compatible OpenAI.
- Variables d'environnement (sous Windows, les valeurs définies avec
setxsont lues depuis le registre, donc un redémarrage de l'agent n'est pas nécessaire) :IMAGEGEN_API_KEY: la clé API. Repli surOPENAI_API_KEY.IMAGEGEN_BASE_URL: optionnel, par défauthttps://api.openai.com/v1.IMAGEGEN_MODEL: optionnel, par défautgpt-image-2.
- Python 3.8+, bibliothèque standard uniquement. Installez ce dossier comme
~/.claude/skills/imagegen/(Claude Code) et/ou~/.codex/skills/imagegen/(Codex). - Optionnel : placez un wrapper
imagegendans le PATH (exemples dans le dossierwrappers/du dépôt). Sans cela, remplacezimagegenci-dessous parpython <ce dossier de compétence>/scripts/imagegen.py.
Générer
imagegen "<prompt>" [--size 1536x1024] [--quality high] [--n 2] [--out chemin.png]
Options de sortie (envoyées uniquement si fournies ; toutes les API ou modèles ne les acceptent pas) : --background transparent|opaque|auto, --format png|jpeg|webp, --compression 0-100 (jpeg/webp uniquement).
Modifier (passer une ou plusieurs images en entrée)
imagegen "<quoi modifier>" --image entree.png [--image ref.png] [--mask masque.png]
Sortie
Une ligne JSON sur stdout :
{"ok": true, "mode": "generate", "paths": ["/chemin/vers/projet/output/imagegen/20260101-120000-chat-orange.png"], "seconds": 42.9, "model": "gpt-image-2", "revised_prompt": null, "sidecars": ["/chemin/vers/projet/output/imagegen/20260101-120000-chat-orange.json"]}
Chaque image obtient un fichier sidecar <même_nom>.json contenant le prompt, le prompt révisé, le modèle, la taille, la qualité, les autres options, les chemins des images d'entrée et du masque, les secondes et l'heure de création (--no-sidecar le désactive). La dernière image est le dernier chemin dans votre sortie précédente ; si vous ne l'avez pas (nouvelle session), prenez l'image la plus récente dans output/imagegen/ et lisez son .json pour le prompt dont elle est issue.
En cas d'échec : {"ok": false, "error": "..."} et code de sortie 1. Lisez paths et signalez-les à l'utilisateur. Si l'erreur indique qu'il n'y a pas de clé API, dites à l'utilisateur comment définir IMAGEGEN_API_KEY ; ne cherchez pas les clés vous-même.
Comment travailler
- Par défaut : générer une fois à partir de la demande de l'utilisateur et signaler les chemins. N'ouvrez pas et ne jugez pas l'image, et ne régénérez pas, sauf si l'utilisateur le demande.
- Utilisez uniquement ce que l'utilisateur a dit. N'inventez pas de style ou de détails. Si quelque chose sans quoi l'image est inutilisable manque (texte exact sur l'image, paysage ou portrait), demandez une fois avant de générer.
- Lorsque l'utilisateur demande de modifier un résultat (« rends celui de gauche bleu »), modifiez la dernière image avec
--image <dernier chemin>au lieu de générer depuis zéro. - Plusieurs images indépendantes peuvent être demandées en parallèle (commandes séparées en même temps).
- Uniquement lorsque l'utilisateur demande d'itérer (« itère jusqu'à ce que ce soit bon ») et que vous pouvez voir les images : rédigez une courte liste de contrôle des exigences vérifiables, générez, ouvrez l'image, vérifiez chaque élément. Corrigez les problèmes locaux avec des modifications
--imageet régénérez uniquement si la direction générale est erronée. Arrêtez-vous lorsque chaque élément est réussi ou après 3 tours, et signalez pour chaque version son chemin et les éléments échouant encore.
Remarques
- Sans
--out, les fichiers vont dansoutput/imagegen/<temps>-<mots>.pngsous le répertoire courant (l'extension suit--format). - Tailles :
1024x1024(carré),1536x1024(paysage),1024x1536(portrait). gpt-image-2 accepte également des tailles personnalisées comme2048x1152(16:9) : les deux côtés multiples de 16, côté le plus long au maximum 3840, rapport d'aspect entre 1:3 et 3:1. Omettez--sizepour auto. --quality lowest le plus rapide pour les brouillons ;highpour les actifs finaux.xhigh/maxfonctionnent uniquement sur les modèles qui les supportent.- Une image prend environ 30 à 90 s. Exécutez-la au premier plan avec un délai d'attente d'au moins 600 000 ms ; ne sondez pas.
- Rédigez les prompts comme : type d'actif, sujet, style, composition, éclairage, texte exact entre guillemets s'il y en a. Les prompts non anglais fonctionnent.
- Le texte qui doit apparaître sur limage va entre guillemets, mot pour mot, avec son emplacement : titre en haut disant « Soldes d'été ». Épelez les mots inhabituels lettre par lettre.
- Avec plusieurs images en entrée, dites à quoi chacune sert, dans l'ordre : « Image 1 : la photo du produit à modifier. Image 2 : référence de style uniquement. »
- Dans les modifications, dites exactement ce qui change et que tout le reste reste identique : « Changez uniquement la veste en rouge ; gardez le visage, la pose, l'arrière-plan et léclairage inchangés. » Répétez les parties inchangées dans chaque modification suivante.
--background transparentnécessite une sortie png ou webp et un modèle qui la supporte.--dry-runaffiche la requête sans appeler l'API.- N'imprimez jamais et n'écrivez jamais la clé API.