Compétence de génération d'images
Génère ou modifie des images pour le projet en cours (par exemple actifs de site web, actifs de jeu, maquettes d'interface, maquettes de produits, wireframes, conception de logo, images photoréalistes ou infographies).
Modes et règles de premier niveau
Cette compétence dispose exactement de deux modes de premier niveau :
- Mode outil intégré par défaut (préféré) : outil
image_genintégré pour la génération d'images, l'édition et les demandes d'images transparentes. Ne nécessite pas deOPENAI_API_KEY. - Mode CLI de secours : interface
scripts/image_gen.pyen CLI. À utiliser lorsque l'utilisateur demande ou confirme explicitement le chemin CLI/API/modèle. NécessiteOPENAI_API_KEY.
Dans le mode CLI de secours, la CLI expose trois sous-commandes :
generateeditgenerate-batch
Règles :
- Utilisez l'outil
image_genintégré par défaut pour les demandes normales de génération et d'édition d'images. - Ne basculez pas vers le mode CLI de secours pour un contrôle ordinaire de la qualité, de la taille ou du chemin de fichier.
- Pour les images transparentes, demandez à l'outil
image_genintégré un fond transparent et conservez l'alpha généré. - Ne passez jamais silencieusement de l'outil
image_genintégré ou de la CLIgpt-image-2à la CLIgpt-image-1.5; demandez d'abord à l'utilisateur, sauf s'il a explicitement demandégpt-image-1.5. - Le mot
batchseul ne signifie pas mode CLI de secours. Si l'utilisateur demande de nombreux actifs ou dit de générer des actifs en lot sans demander explicitement de contrôles CLI/API/modèle, restez sur le chemin intégré et émettez un appel intégré par actif ou variante demandé(e). - Si l'outil intégré échoue ou n'est pas disponible, informez l'utilisateur que le mode CLI de secours existe et qu'il nécessite
OPENAI_API_KEY. Ne continuez que si l'utilisateur demande explicitement ce mode de secours. - Si l'utilisateur demande explicitement le mode CLI, utilisez le workflow
scripts/image_gen.pyfourni. Ne créez pas d'exécuteurs SDK ponctuels. - Ne modifiez jamais
scripts/image_gen.py. Si quelque chose manque, demandez à l'utilisateur avant de faire quoi que ce soit d'autre.
Politique de chemin de sauvegarde intégrée :
- En mode outil intégré, Codex sauvegarde les images générées sous
$CODEX_HOME/*par défaut. - Ne décrivez pas et ne comptez pas sur le dossier temporaire du système comme destination intégrée par défaut.
- Ne décrivez pas et ne comptez pas sur un argument de chemin de destination (le cas échéant) de l'outil
image_genintégré. Si un emplacement spécifique est nécessaire, générez d'abord, puis déplacez ou copiez la sortie sélectionnée depuis$CODEX_HOME/generated_images/.... - Priorité du chemin de sauvegarde en mode intégré :
- Si l'utilisateur nomme une destination, déplacez ou copiez la sortie sélectionnée à cet endroit.
- Si l'image est destinée au projet en cours, déplacez ou copiez l'image finale sélectionnée dans l'espace de travail avant de terminer.
- Si l'image est uniquement destinée à un aperçu ou à un brainstorming, affichez-la en ligne ; le fichier sous-jacent peut rester au chemin
$CODEX_HOME/*par défaut.
- Ne laissez jamais un actif référencé par le projet uniquement au chemin
$CODEX_HOME/*par défaut. - N'écrasez pas un actif existant sauf si l'utilisateur a explicitement demandé un remplacement ; sinon créez un nom de fichier versionné apparenté comme
hero-v2.pngouitem-icon-edited.png.
Les conseils partagés sur les invites (prompts) pour les deux modes se trouvent dans references/prompting.md et references/sample-prompts.md.
Documents/ressources exclusifs au mode CLI de secours :
references/cli.mdreferences/image-api.mdreferences/codex-network.mdscripts/image_gen.py
Quand utiliser
- Générer une nouvelle image (concept art, photo de produit, couverture, bannière de site)
- Générer une nouvelle image en utilisant une ou plusieurs images de référence pour le style, la composition ou l'ambiance
- Éditer une image existante (inpainting, transformations d'éclairage ou de temps, remplacement d'arrière-plan, suppression d'objet, composition, fond transparent)
- Produire de nombreux actifs ou variantes pour une seule tâche
Quand ne pas utiliser
- Étendre ou adapter un ensemble d'icônes, un système de logo ou une bibliothèque d'illustrations SVG/vectoriel existant(e) dans le dépôt
- Créer des formes simples, diagrammes, wireframes ou icônes mieux produits directement en SVG, HTML/CSS ou canvas
- Effectuer une petite modification d'actif local de projet alors que le fichier source existe déjà dans un format natif éditable
- Toute tâche où l'utilisateur souhaite clairement une sortie déterministe native (code) plutôt qu'une image matricielle générée
Arbre de décision
Considérez deux questions distinctes :
- Intention : s'agit-il d'une nouvelle image ou d'une modification d'une image existante ?
- Stratégie d'exécution : s'agit-il d'un seul actif ou de plusieurs actifs/variantes ?
Intention :
- Si l'utilisateur souhaite modifier une image existante tout en en préservant des parties, traitez la demande comme une édition.
- Si l'utilisateur fournit des images uniquement comme références pour le style, la composition, l'ambiance ou l'objet, traitez la demande comme une génération.
- Si l'utilisateur ne fournit aucune image, traitez la demande comme une génération.
Sémantique de l'édition intégrée :
- Le mode d'édition intégré est destiné aux images déjà visibles dans le contexte de la conversation, comme les images jointes ou les images générées plus tôt dans le fil.
- Si l'utilisateur souhaite éditer un fichier image local avec l'outil intégré, chargez-le d'abord avec l'outil intégré
view_imageafin que l'image soit visible dans le contexte de la conversation, puis procédez avec le flux d'édition intégré. - Ne promettez pas une édition arbitraire par chemin de fichier via l'outil intégré.
- Si un fichier local nécessite toujours un contrôle direct du chemin de fichier, des masques ou d'autres paramètres explicites exclusifs à la CLI, utilisez le mode CLI de secours uniquement lorsque l'utilisateur le demande.
- Pour les éditions, préservez les invariants de manière agressive et sauvegardez de manière non destructive par défaut.
Stratégie d'exécution :
- Dans le chemin intégré par défaut, produisez plusieurs actifs ou variantes en émettant un appel
image_genpar actif ou variante demandé(e). - Dans le chemin CLI de secours, utilisez la sous-commande CLI
generate-batchuniquement lorsque l'utilisateur a explicitement choisi le mode CLI et a besoin de nombreuses invites/actifs. - Pour de nombreux actifs distincts, n'utilisez pas
ncomme substitut à des invites séparées.nest destiné aux variantes d'une seule invite ; les actifs distincts nécessitent des appels intégrés distincts ou des tâches CLIgenerate-batchdistinctes.
Supposons que l'utilisateur souhaite une nouvelle image, sauf s'il demande clairement d'en modifier une existante.
Workflow
- Décidez du mode de premier niveau : intégré par défaut, y compris pour les demandes de sortie transparente ; CLI de secours uniquement si explicitement demandé ou confirmé.
- Décidez de l'intention :
generateouedit. - Décidez si la sortie est destinée uniquement à un aperçu ou à être consommée par le projet en cours.
- Décidez de la stratégie d'exécution : actif unique vs appels intégrés répétés vs CLI
generate-batch. - Collectez les entrées en amont : invite(s), texte exact (textuel), contraintes/liste d'évitement et toutes les images d'entrée.
- Pour chaque image d'entrée, étiquetez son rôle explicitement :
- image de référence
- cible d'édition
- entrée d'insertion/style/composition de support
- Si la cible d'édition se trouve uniquement sur le système de fichiers local et que vous restez sur le chemin intégré, inspectez-la d'abord avec
view_imageafin que l'image soit disponible dans le contexte de la conversation. - Si l'utilisateur a demandé une photo, une illustration, un sprite, une image de produit, une bannière ou tout autre actif explicitement matriciel, utilisez
image_genplutôt que de substituer des espaces réservés SVG/HTML/CSS. Si la demande concerne une icône, un logo ou un graphique UI qui doit correspondre aux actifs SVG/vectoriels/code existants dans le dépôt, préférez éditer ceux-ci directement. - Augmentez l'invite en fonction de la spécificité :
- Si l'invite de l'utilisateur est déjà spécifique et détaillée, normalisez-la en un cahier des charges clair sans ajouter d'exigences créatives.
- Si l'invite de l'utilisateur est générique, ajoutez une augmentation judicieuse uniquement lorsqu'elle améliore sensiblement la qualité de la sortie.
- Utilisez l'outil
image_genintégré par défaut. - Pour les demandes de sortie transparente, demandez à l'outil
image_genintégré un fond transparent et conservez le canal alpha généré. - Inspectez les sorties et validez : sujet, style, composition, précision du texte et éléments d'invariant/évitement.
- Itérez avec un seul changement ciblé, puis vérifiez à nouveau.
- Pour un travail uniquement d'aperçu, affichez l'image en ligne ; le fichier sous-jacent peut rester au chemin
$CODEX_HOME/generated_images/...par défaut. - Pour un travail lié au projet, déplacez ou copiez l'artefact sélectionné dans l'espace de travail et mettez à jour tout code ou référence consommateur. Ne laissez jamais un actif référencé par le projet uniquement au chemin
$CODEX_HOME/generated_images/...par défaut. - Pour les lots ou les demandes multi-actifs, persistez chaque livrable final demandé dans l'espace de travail, sauf si l'utilisateur a explicitement demandé de conserver les sorties uniquement en aperçu. Les variantes écartées n'ont pas besoin d'être conservées, sauf si demandé.
- Si l'utilisateur choisit ou confirme explicitement le mode CLI de secours, utilisez alors la documentation exclusive au mode de secours pour le modèle, la qualité, la taille,
input_fidelity, les masques, le format de sortie, les chemins de sortie et la configuration réseau. - Signalez toujours le(s) chemin(s) final(aux) enregistré(s) pour tout(s) actif(s) lié(s) à l'espace de travail, ainsi que l'invite ou l'ensemble d'invites final et si l'outil intégré ou le mode CLI de secours a été utilisé.
Demandes d'images transparentes
Demandez à l'outil image_gen intégré un fond véritablement transparent et conservez son alpha.
Augmentation de l'invite
Reformatez les invites utilisateur en un cahier des charges structuré et orienté production. Rendez l'objectif de l'utilisateur plus clair et plus actionnable, mais n'ajoutez pas de détails aveuglément.
Considérez ceci comme un guide de mise en forme de l'invite, et non comme un schéma fermé. Utilisez uniquement les lignes qui aident, et ajoutez une courte ligne étiquetée supplémentaire lorsque cela améliore sensiblement la clarté.
Politique de spécificité
Utilisez la spécificité de l'invite de l'utilisateur pour décider du degré d'augmentation approprié :
- Si l'invite est déjà spécifique et détaillée, préservez cette spécificité et normalisez/structurisez-la uniquement.
- Si l'invite est générique, vous pouvez ajouter une augmentation judicieuse lorsqu'elle améliorera sensiblement le résultat.
Augmentations autorisées :
- indices de composition ou de cadrage
- indices de niveau de polissage ou d'utilisation prévue
- conseils pratiques de mise en page
- concrétisation raisonnable de la scène qui soutient la demande énoncée
Augmentations non autorisées :
- personnages ou objets supplémentaires qui ne sont pas implicites dans la demande
- noms de marque, slogans, palettes ou éléments narratifs qui ne sont pas implicites
- placement latéral arbitraire sauf si la mise en page environnante le soutient
Taxonomie des cas d'utilisation (identifiants exacts)
Classez chaque demande dans l'un de ces seaux et conservez l'identifiant (slug) cohérent entre les invites et les références.
Générer :
- photorealistic-natural — scènes de style de vie candides/éditoriales avec texture réelle et éclairage naturel.
- product-mockup — photos de produits/emballages, imagerie catalogue, concepts de marchandise.
- ui-mockup — maquettes et wireframes d'interface application/web ; spécifiez la fidélité souhaitée.
- infographic-diagram — diagrammes/infographies avec mise en page structurée et texte.
- scientific-educational — explicateurs de classe, diagrammes scientifiques et visuels d'apprentissage avec étiquettes requises et contraintes de précision.
- ads-marketing — concepts de campagne et créations publicitaires avec public cible, positionnement de marque, scène et accroche/texte exact.
- productivity-visual — diapositive, graphique, workflow et visuels métier riches en données.
- logo-brand — exploration de logo/marque, compatible vectoriel.
- illustration-story — bandes dessinées, art de livre pour enfants, scènes narratives.
- stylized-concept — concept art axé sur le style, rendus 3D/stylisés.
- historical-scene — scènes historiquement précises / basées sur la connaissance du monde.
Éditer :
- text-localization — traduire/remplacer le texte dans l'image, préserver la mise en page.
- identity-preserve — essayage, personne dans la scène ; verrouiller visage/corps/pose.
- precise-object-edit — supprimer/remplacer un élément spécifique (y compris les échanges internes).
- lighting-weather — changements d'heure de la journée/saison/atmosphère uniquement.
- background-extraction — fond transparent / découpe nette. Demandez à l'outil
image_genintégré une transparence réelle. - style-transfer — appliquer un style de référence tout en changeant le sujet/la scène.
- compositing — insertion/fusion multi-images avec éclairage/perspective adapté(e).
- sketch-to-render — dessin/art linéaire vers rendu photoréaliste.
Schéma d'invite partagé
Utilisez le cahier des charges étiqueté suivant comme échafaudage d'invite partagé pour les deux modes de premier niveau :
Cas d'utilisation : <identifiant de taxonomie>
Type d'actif : <où l'actif sera utilisé>
Demande principale : <invite principale de l'utilisateur>
Images d'entrée : <Image 1 : rôle ; Image 2 : rôle> (optionnel)
Scène/fond : <environnement>
Sujet : <sujet principal>
Style/médium : <photo/illustration/3D/etc>
Composition/cadrage : <large/rapproché/vue de dessus ; placement>
Éclairage/ambiance : <éclairage + ambiance>
Palette de couleurs : <notes sur la palette>
Matériaux/textures : <détails de surface>
Texte (textuel) : "<texte exact>"
Contraintes : <à garder impérativement / à éviter>
Éviter : <contraintes négatives>
Notes :
Type d'actifetImages d'entréesont des échafaudages d'invite, et non des drapeaux CLI dédiés.Scène/fondfait référence au cadre visuel. Ce n'est pas la même chose que le paramètrebackgroundde la CLI de secours, qui contrôle le comportement de transparence de la sortie.- Les notes d'exécution exclusives au mode de secours telles que
Qualité :,Fidélité d'entrée :, les masques, le format de sortie et les chemins de sortie appartiennent au chemin CLI uniquement. Ne les traitez pas comme des arguments de l'outilimage_genintégré.
Règles d'augmentation :
- Restez court.
- Ajoutez uniquement les détails nécessaires pour améliorer sensiblement l'invite.
- Pour les éditions, listez explicitement les invariants (
ne changer que X ; garder Y inchangé). - Si un détail critique manque et bloque la réussite, posez une question ; sinon, continuez.
Exemples
Exemple de génération (image hero)
Cas d'utilisation : product-mockup
Type d'actif : hero de page d'accueil
Demande principale : une image hero minimaliste d'une tasse à café en céramique
Style/médium : photographie de produit nette
Composition/cadrage : composition large avec un espace négatif utilisable pour le texte de la page si nécessaire
Éclairage/ambiance : éclairage studio doux
Contraintes : pas de logo, pas de texte, pas de filigrane
Exemple d'édition (invariants)
Cas d'utilisation : precise-object-edit
Type d'actif : remplacement d'arrière-plan de photo de produit
Demande principale : remplacer uniquement l'arrière-plan par un dégradé de coucher de soleil chaud
Contraintes : ne changer que l'arrière-plan ; garder le produit et ses bords inchangés ; pas de texte ; pas de filigrane
Bonnes pratiques de formulation d'invite
- Structurez l'invite comme suit : scène/fond -> sujet -> détails -> contraintes.
- Incluez l'utilisation prévue (publicité, maquette UI, infographie) pour définir le mode et le niveau de polissage.
- Utilisez le langage de l'appareil photo/de la composition pour le photoréalisme.
- N'utilisez des substituts SVG/vectoriels que lorsque l'utilisateur a explicitement demandé une sortie vectorielle ou un espace réservé non image.
- Citez le texte exact et spécifiez la typographie et l'emplacement.
- Pour les invitations délicates, envisagez de fournir un exemple de sortie ou une contrainte supplémentaire pour guider le modèle.
Exemples supplémentaires
Génération avec images de référence
Cas d'utilisation : stylized-concept
Type d'actif : concept art pour un personnage de jeu
Demande principale : un chevalier futuriste dans un environnement cyberpunk
Images d'entrée : Image 1 : référence pour le style
Style/médium : illustration numérique
Composition/cadrage : portrait en plan moyen
Éclairage/ambiance : éclairage néon
Palette de couleurs : tons froids avec accents violets et bleus
Contraintes : armure lourde, visière intégrale ; pas de logos ou de texte de marque réels ; pas de filigrane
Génération avec texte exact
Cas d'utilisation : ads-marketing
Type d'actif : bannière de campagne email
Demande principale : bannière promotionnelle pour une application de fitness
Style/médium : illustration plate
Composition/cadrage : centré
Texte (textuel) : "Transformez votre corps"
Contraintes : garder le texte parfaitement lisible ; centrer le texte ; pas de filigrane
Édition avec quelques actifs, mode intégré
L'utilisateur a une photo d'un produit sur un fond blanc et souhaite générer 4 variantes de bannières promotionnelles sur des fonds différents. Restez sur le chemin intégré, produisez chaque variante avec son propre appel image_gen et sauvegardez les 4 finales dans l'espace de travail.
Demande d'édition en mode CLI de secours
L'utilisateur dit "utilise le script CLI à la place, édite cette photo de produit avec un arrière-plan doré" :
- Confirmez qu'il souhaite le mode CLI de secours.
- Suivez le workflow CLI (
scripts/image_gen.py edit ...). - Utilisez les chemins de sortie et les paramètres appropriés.
- Appliquez la politique de sauvegarde (ne pas écraser ; déplacer/copier dans l'espace de travail si nécessaire).
Lorsque l'utilisateur dit "génère par lot"
Si l'utilisateur dit "génère 5 icônes d'application par lot" sans mentionner la CLI ou l'API, restez sur le chemin intégré et émettez 5 appels intégrés, un par icône. Si l'utilisateur dit ensuite "non, utilise le script CLI pour le lot", alors confirmez et passez au mode CLI generate-batch.
Quand un actif vectoriel/stock est plus approprié
L'utilisateur demande un icône de menu hamburger : ne générez pas d'image matricielle ; fournissez du SVG à la place et expliquez pourquoi. Pour les icônes d'application uniques ou les illustrations complexes sans correspondance dans le dépôt, la génération d'image intégrée est appropriée.