Génération d'images via le CLI codex
codex exec n'a pas d'option « écrire l'image dans ce chemin » : il enregistre ce qu'il génère sous
$CODEX_HOME/generated_images/<identifiant_session>/. scripts/codex_image.py exécute un tour non interactif, collecte
uniquement les images de cette session exacte et les écrit à l'endroit demandé. Si aucune image n'est retournée, il n'écrit rien.
Utilisez toujours le script. Un codex exec "dessine un chat" fait à la main renvoie souvent du texte ou un dessin ImageMagick
et vous laisse chercher la sortie.
Ne recourez jamais à une API facturée. N'utilisez pas le SDK OpenAI ni OPENAI_API_KEY, même si codex échoue ou si le quota
est épuisé. Signalez l'échec et arrêtez-vous. Pour l'API facturée de Google, utilisez uniquement google-image-gen, et seulement
lorsque l'utilisateur l'a demandé.
Utilisation
Exécutez depuis le répertoire de la compétence ou donnez le chemin absolu du script. L'exécution prend environ 30 à 60 secondes.
python3 scripts/codex_image.py -p "un vélo rouge solitaire contre un mur de pierre humide au crépuscule, photographie cinématographique" -o velo.png
| Objectif | Commande |
|---|---|
| Format d'image (indice pour le modèle) | -p "..." -o out.png --aspect 9:16 |
| Image(s) de référence | -p "..." -o out.png -r ref.png [-r ref2.png] |
| Éditer une image | --edit v1.png -p "rendre le ciel violet" -o v2.png |
| Plusieurs prises | -p "..." -o opt.png -n 3 (enregistre opt.png, opt-2.png, opt-3.png) |
| Taille exacte en pixels | -p "..." -o cover.png --aspect 9:16 --fit 1080x1920 |
| Prompt long | --prompt-file prompt.md -o out.png |
| Voir le prompt, ne rien dépenser | ajoutez --print-prompt |
- L'extension du fichier de sortie suit le format réel : des octets PNG demandés comme
velo.jpgaboutissent dansvelo.png. Le script affiche chaque chemin qu'il a écrit. --aspectne fait que façonner le résultat.--fit LxHgarantit la taille après coup : il ajoute des barres noires (--fit-mode pad, par défaut) ou recadre au centre (--fit-mode crop), et enregistre toujours en PNG. Faites correspondre--aspectà la cible pour qu'il y ait peu à remplir ou recadrer.--fitnécessite Pillow, vérifié avant l'exécution de codex.-ndemande N prises en une seule exécution ; le modèle peut en retourner moins, et le script enregistre ce qu'il a reçu.--editattache l'image comme cible et demande au modèle de ne modifier que ce que le prompt indique.
Rédaction du prompt
Le script ajoute le libellé qui force un véritable appel à l'outil d'image, donc --prompt ne concerne que l'image elle-même. Une
spécification courte et étiquetée fonctionne bien :
Sujet : un vélo rouge solitaire, peinture usée jusqu'au métal aux extrémités
Scène : appuyé contre un mur de pierre humide d'un port, lumières de la ville au loin
Style : photographie cinématographique, faible profondeur de champ
Éclairage : crépuscule, soleil bas et chaud, reflets sur la pierre humide
Texte (textuel) : "PAS DE MARQUAGE"
Éviter : personnes, filigranes, vélos supplémentaires
- Citez le texte qui doit apparaître et gardez-le court ; les longues chaînes reviennent avec des fautes d'orthographe.
- Indiquez ce qui ne doit pas apparaître. Pour un découpage transparent, demandez un fond transparent et enregistrez en
.png. - Pour
--edit, écrivez le changement (« enlever le lampadaire ») et nommez ce qui doit rester (« garder le vélo, le cadrage et l'éclairage »). Modifiez une chose par passage. - Une édition est une régénération, pas une correction pixel par pixel : le cadrage et les détails dérivent, et chaque passage l'aggrave. Gardez les chaînes courtes, et recomposez tout élément qui doit survivre intact.
Après la génération
Vérifiez le résultat avant de le remettre, en utilisant les moyens dont vous disposez pour visualiser une image : le modèle se trompe
parfois sur le texte, les nombres ou un détail demandé. S'il manque quelque chose, relancez avec un prompt plus précis ou affinez avec --edit.
Échecs
Le script se termine avec un code non nul, un message clair et n'écrit rien.
- CLI codex introuvable / non connecté : installez codex et exécutez
codex login;CODEX_BINpointe vers un autre binaire. - Quota dépassé : attendez la réinitialisation que codex signale ou utilisez un autre compte. Ne réessayez pas en boucle.
- Aucune image produite : le modèle a répondu en texte. Sa réponse est affichée ; relancez avec une demande d'image plus simple.
- Temps dépassé : augmentez
--timeout(par défaut 900 s) seulement si l'exécution était simplement lente. - Pillow manquant avec
--fit:pip install Pillow, ou retirez--fit.