CommunityImagegithub.com

shaharsha/image-generation

Génère des logos, icônes, maquettes UI, images hero, photos de produits et autres actifs de design en utilisant OpenAI GPT Image 2.5 (Sunburst, Flare) ou Google Gemini (Nano Banana 2, Nano Banana Pro, Nano Banana 2 Lite). À utiliser lorsque l'utilisateur demande de créer, concevoir, générer, maquetter, rendre ou illustrer un actif visuel, a besoin d'un PNG transparent, ou demande de l'ingénierie de prompts d'image. Sélectionne le bon modèle et la bonne qualité pour la tâche, écrit un prompt spécifique au modèle en suivant les règles de prompting officielles de chaque...

Qu'est-ce que image-generation ?

Cette compétence est conçue pour les agents IA (comme Claude Code, Cursor, Codex) afin de générer des assets visuels professionnels – logos, icônes, maquettes UI, images hero, photos de produits, etc. – via deux familles de modèles : OpenAI GPT Image 2.5 (Sunburst et Flare) et Google Gemini (Nano Banana 2, Nano Banana Pro, Nano Banana 2 Lite). Elle automatise la sélection du modèle et du niveau de qualité en fonction du type d'asset et de la demande (par exemple, Flare en mode brouillon rapide, Sunburst en haute qualité finale), écrit des prompts optimisés selon les règles spécifiques à chaque modèle (Openway aime les sections structurées, Gemini les paragraphes narratifs), et exécute les appels API via des scripts fournis. La compétence gère aussi les cas complexes : fonds transparents natifs, textes en hébreu/RTL, scènes multi-personnages, itération autonome avec auto-critique (lecture de l'image générée), et promotion d'un brouillon vers une version finale sans perdre la composition. Elle est particulièrement utile pour les designers et développeurs qui souhaitent un pipeline d'itération visuelle rapide, économique et reproductible, avec un contrôle précis des coûts et de la qualité.

Compatible avec✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/shaharsha/claude-skills/tree/HEAD/skills/image-generation

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Demander à votre IA préférée

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

Documentation

Génération d'images

Deux familles de modèles, trois tâches.

Modèles couverts

ID du modèleFamilleUtilisationCoût (1024×1536, mesuré le 2026-10-02)
gpt-image-2.5-sunburstOpenAI (Images 2.5, 2026-09-08)Par défaut. Tout ce qui peut être livré. #1 sur tous les principaux classements (génération, édition, rendu de texte, portraits)max ≈ 0,165 $, ~90 s · high ≈ 0,041 $, ~35 s
gpt-image-2.5-flareOpenAI (Images 2.5)Brouillons rapides — exploration de directions, test d'un prompt. Mêmes prompts que Sunburst, ~2× plus rapidemedium ≈ 0,01 $, ~15 s
gemini-3-pro-imageGoogle (Nano Banana Pro)Peau/cheveux naturels en gros plan lorsque les votes et les évaluateurs divergent ; jusqu'à 14 références0,134 $ (1K/2K) · 0,24 $ (4K)
gemini-3.1-flash-imageGoogle (Nano Banana 2)Rapports d'aspect extrêmes (1:4…8:1), recherche par image avec ancrage0,067 $ (1K)
gemini-3.1-flash-lite-imageGoogle (Nano Banana 2 Lite)Exploration Gemini la moins chère ; 1K uniquement, renvoie du JPEG0,034 $

gpt-image-2 fonctionne toujours (non déprécié) mais est un cran en dessous des deux modèles 2.5. Les IDs *-preview de Gemini et tous les modèles Imagen sont arrêtés — les scripts les refusent.

Les trois tâches de cette compétence

  1. Choisir le modèle et la qualité pour l'asset. Voir reference/model-selection.md.
  2. Écrire le prompt en suivant les règles du modèle. Les deux fournisseurs veulent des choses opposées :
    • OpenAI GPT Image 2.5 veut des sections étiquetées (scène / sujet / détails / contraintes), du texte exact entre guillemets, et accepte les exclusions en ligne (« pas de texte supplémentaire, pas de filigrane »). Lire reference/openai-gpt-image.md.
    • Gemini veut des paragraphes narratifs, la formulation négative se retourne contre vous (réécrire « pas de personnes » en « rue vide »), le rapport d'aspect va dans imageConfig. Lire reference/gemini-image.md.
  3. Exécuter l'API via les scripts fournis. Voir scripts/README.md.

Qualité sur 2.5 — le piège

L'échelle de qualité 2.5 a été redécoupée. À taille égale, high sur 2.5 achète environ les tokens de sortie de medium sur gpt-image-2 ; max sur 2.5 achète ce que high faisait sur gpt-image-2 (mesuré : Sunburst 1024×1536 high = 1 372 tokens de sortie, max = 5 488). Copier « quality=high » par habitude livre silencieusement une image de détail moyen.

Promouvoir un brouillon avec une édition, pas un nouveau tirage. Chaque nouvelle génération compose une nouvelle image, donc relancer le prompt d'un brouillon approuvé à max donne une image différente. À la place, passez le brouillon choisi comme référence à une édition Sunburst max qui modifie uniquement la qualité de rendu et préserve tout le reste. Vérifié le 2026-10-02 : un poster Flare medium promu de cette façon a conservé sa composition, ses personnages, leurs poses, leurs couleurs et le texte en hébreu, tout en gagnant en texture et en détails (0,18 $, 85 s).

ÉtapeModèle + qualitéPourquoi
Explorer des directions, tester un promptFlare medium (--draft)~1¢ et ~15 s, donc 6 directions coûtent moins qu'un seul résultat final
Promouvoir le brouillon choisiÉdition Sunburst max avec --ref <draft> et le prompt de promotion dans reference/openai-gpt-image.mdConserve l'apparence que l'utilisateur a choisie, ajoute tous les détails
Un résultat final directement à partir d'un prompt verrouilléSunburst max (valeur par défaut du script)Détails complets ; ~90 s, ~0,17 $
Sunburst quand le temps compte plus que les détails finsSunburst highUn quart des tokens, ~35 s

N'utilisez jamais auto — il atterrit sur des budgets différents pour des appels identiques.

Sélection de modèle par défaut — la règle des 30 secondes

Explorer des directions / « quelques options rapides » / tester si un prompt fonctionne ?
  OUI → Flare medium (--draft). Promouvoir le choix de l'utilisateur avec une édition Sunburst max (--ref <draft>).
  NON  ↓

Visage humain photoréaliste en gros plan où la texture de la peau compte ?
  OUI → Sunburst max en premier (il mène les votes pour les portraits) ; si la peau semble trop nette en zoomant,
        comparer avec gemini-3-pro-image 4K et laisser l'humain choisir.
  NON  ↓

Bannière ultra-large/haute au-delà de 3:1 (1:4, 4:1, 1:8, 8:1) ?
  OUI → gemini-3.1-flash-image (GPT Image est limité à 3:1).
  NON  ↓

Tout le reste → Sunburst à quality=max.
  └── PNG transparent ? Natif : --background transparent (png/webp). Pas besoin de rembg.

Arbre de décision complet par type d'asset : reference/model-selection.md.

Flux de travail par requête

  1. Confirmer le périmètre. Type d'asset, contexte de marque, direction couleur/style, rapport d'aspect + taille cible, emplacement de sauvegarde. Si la requête le dit déjà, continuer.
  2. Choisir le modèle et la qualité. Utiliser la règle ci-dessus ; expliquer le choix en une phrase.
  3. Lire la référence spécifique au modèle — reference/openai-gpt-image.md ou reference/gemini-image.md. Ne pas écrire de mémoire : les deux fournisseurs veulent des structures de prompt opposées, et les consignes 2.5 ont changé plusieurs habitudes de gpt-image-2.
  4. Arrière-plan transparent ? Sur GPT Image 2.5, c'est natif. Lire reference/transparent-backgrounds.md uniquement pour les sorties Gemini ou pour découper une image existante.
  5. Ouvrir le modèle correspondant dans templates/ et remplir les espaces réservés.
  6. Texte en hébreu ou RTL dans l'image ? Lire d'abord reference/hebrew-rtl.md.
  7. Montrer le prompt à l'utilisateur avant d'appeler l'API sauf s'il dit « fais-le directement ». Un examen du prompt évite la plupart des régénérations coûteuses.
  8. Exécuter le script. Sauvegarder dans ./generated-images/<nom-descriptif>.png dans le répertoire de travail actuel sauf indication contraire. Le script OpenAI imprime la latence, les tokens de sortie et le coût par appel — tenir le total cumulé.
  9. Lire l'image sauvegardée avec l'outil Read — Claude est multimodal et verra réellement les pixels. Critiquer par rapport au brief : composition, texte orthographié exactement comme cité et apparaissant une fois, couleurs, défauts (lettres déformées, doigts supplémentaires, géométrie cassée, grain dans les zones lisses). Repérer les problèmes avant que l'utilisateur ait à le faire.
  10. Montrer à l'utilisateur. open <path>, résumer ce qui est vu (bon et mauvais), et proposer de livrer / itérer avec un changement spécifique / réécrire.

Modèles par type d'asset

AssetModèle
Logo de marque / marqueur / wordmarktemplates/logo.md
Jeu d'icônes (style cohérent entre les icônes)templates/icon-set.md
Écran UI d'application mobiletemplates/ui-mobile.md
Tableau de bord web / UI SaaStemplates/ui-dashboard.md
Image hero marketing / bannièretemplates/hero-image.md
Photographie de produit / hero shottemplates/product-shot.md

Pour des exemples détaillés, voir examples.md.

Personnages récurrents et planches de story

Pour les bandes dessinées, storyboards et épisodes animés où les mêmes personnes apparaissent dans plusieurs images :

  • Personnages à partir de photos. Ne jamais passer des photos entières comme références : l'endpoint d'édition restyle la photo (copie la pose, les vêtements et l'arrière-plan, ajoute du texte de légende) au lieu de dessiner la personne. Le pipeline fonctionnel :

    1. Recadrer d'abord les visages : python3 <ce-dossier-de-competence>/scripts/crop_faces.py photos/ visages/ --sheet visages/_sheet.jpg.
    2. Créer un visage anime à partir des recadrages.
    3. Éditer ce visage dans une carte de costume demi-corps, en précisant le type de corps.
    4. Obtenir l'approbation humaine, puis promouvoir.

    Prompts et boucle de révision : reference/characters-from-photos.md.

  • Scènes avec 2+ personnages.

    • Esquisser avec Sunburst high, pas Flare : Flare a dessiné seulement Image 1, en extérieur, avec des sous-titres.
    • Lier chaque nom à sa carte dès la première mention : « Dana (la femme de l'Image 1) ».
    • Interdire les sous-titres dans toutes les langues.
    • Les écrans de téléphone et tablette sont rendus de dos : générer le contenu de l'écran comme sa propre image et le composer.

    Recette : reference/multi-character-scenes.md.

  • Facturation par lot. credit_balance_exhausted signifie que le compte OpenAI n'a plus de crédit, pas une requête invalide. Arrêter, lister les prises qui ont été finalisées, et après le rechargement, relancer uniquement les manquantes.

Clés API et dépendances

Les clés API proviennent des variables d'environnement, définies à partir de votre propre stockage secret dans le shell qui exécute le script (chaque nouveau shell en a besoin à nouveau) :

  • OPENAI_IMAGE_API_KEY pour scripts/openai-image.sh
  • GEMINI_IMAGE_API_KEY (ou GEMINI_API_KEY) pour scripts/gemini-image.sh ; la même clé Google AI Studio fonctionne aussi pour la génération de clips vidéo

Ces clés sont limitées à la génération d'images. Ne pas les réutiliser pour le chat ou les embeddings, et ne jamais les imprimer — les charger dans une variable, ne pas faire d'echo.

Outils locaux (uniquement pour découper les sorties Gemini ou des images existantes) : rembg (pip install "rembg[cli]" onnxruntime), éventuellement ImageMagick.

Convention de sortie

  • Emplacement de sauvegarde par défaut : ./generated-images/<nom-descriptif>.png dans le répertoire de travail actuel.
  • Nom de fichier : descriptif en kebab-case (logo-agentleh-monochrome-v1.png) ; les brouillons reçoivent -draft-N (logo-agentleh-draft-3.png).
  • Versionnage : ajouter -v1, -v2, … lors des itérations. Ne jamais écraser une génération précédente sans demander.
  • Sorties transparentes : ajouter -transparent après la version.
  • open <path> sur macOS pour montrer à l'utilisateur juste après la génération.

Modèles d'itération — boucle autonome « itérer jusqu'à la perfection »

Le travail de l'agent est d'amener l'image à un état « assez bon pour être livré » avant de demander à l'utilisateur :

1. Générer (appel de script)
2. Lire le fichier sauvegardé avec l'outil Read — Claude VOIT les pixels
3. Auto-critique par rapport au brief :
   - La composition est-elle réussie ? (placement, cadrage, équilibre, hiérarchie, espace négatif)
   - Le texte est-il orthographié exactement comme cité, chaque chaîne apparaissant une fois, lisible ?
   - Les couleurs sont-elles correctes ? (correspondance hex, respect de la palette)
   - Y a-t-il des défauts ? (lettres déformées, doigts supplémentaires, géométrie cassée, grain dans les ciels/fonds)
   - Le brief est-il réellement satisfait ?
4. Décider :
   - LIVRER   → répond au brief ; montrer à l'utilisateur
   - ÉDITER   → un correctif localisé ; éditer avec --ref <précédent> et un prompt qui dit
               « changer seulement X » et RÉÉNONCE chaque correctif antérieur et détail préservé
   - RÉÉCRIRE → problème fondamental de prompt ; réécrire depuis le début, ne pas ajuster
5. S'arrêter quand : 5 itérations utilisées, ou 3 $ dépensés pour cet asset (sommer les lignes de coût du script),
   ou que c'est livrable.

L'utilisateur est le juge final — mais Claude est le premier juge. Ne pas montrer un résultat imparfait en demandant « est-ce bon ? » Le montrer après avoir vérifié qu'il répond au brief, ou avec votre critique jointe (« le crénage du wordmark est décalé ; correction en cours »).

Mécanismes par modèle

  • Éditions GPT Image 2.5 passent par /v1/images/edits via scripts/openai-image.sh --ref <image> (jusqu'à 16 références). Sans masque, l'ensemble du canevas est régénéré à chaque tour, donc la dérive s'accumule — réénoncer chaque changement antérieur et chaque détail préservé à chaque tour, pas seulement la nouvelle demande. Si une région doit rester identique pixel par pixel, composer l'édition approuvée dans l'original au lieu d'espérer que le prompt la maintienne.
  • Édition multi-tour Gemini : scripts/gemini-image.sh --ref <sortie-précédente> --prompt "changer X, garder Y", en terminant toujours par « Garder tout le reste de l'image exactement identique — composition, éclairage, couleurs, tous les autres éléments. »
  • Discipline de dérive. Après 3 itérations infructueuses sur la même image, changer de stratégie : réécrire le prompt de base, ou changer de modèle.

Tarification

GPT Image 2, 2.5 Flare et 2.5 Sunburst partagent les mêmes tarifs de tokens (30 $/1M de sortie image, 8 $/1M d'entrée image, 5 $/1M d'entrée texte ; l'API Batch les divise par deux), mais les tokens par image diffèrent selon la qualité, la taille et le modèle — donc lire le coût affiché par le script plutôt que de le supposer. Gemini est facturé par image. Tableau complet et scénarios détaillés : reference/pricing.md.

Hébreu / RTL

Sunburst et Flare ont tous deux rendu correctement un titre en hébreu lors d'un test du 2026-10-02 (bonnes lettres, bon ordre, bonne direction, accompagné d'anglais et d'un badge). Essayer d'abord le rendu direct ; recourir au flux de composition pour les longues lignes d'hébreu ou une police de caractères sous licence requise. L'hébreu n'est pas sur la liste des langues les plus performantes de Google pour les modèles d'image Gemini — préférer GPT Image pour le texte en hébreu. Voir reference/hebrew-rtl.md.

Quand NE PAS utiliser cette compétence

  • L'utilisateur veut des fichiers vectoriels modifiables (SVG avec chemins). Ces modèles produisent des images matricielles ; utiliser la compétence brand-assets, ou Recraft V4.1 Vector (recraftv4_1_vector, SVG natif, non intégré à ces scripts).
  • L'utilisateur veut des dimensions exactes en pixels en dehors des tailles prises en charge (ex. 1200×630). Générer au rapport d'aspect pris en charge le plus proche, puis recadrer/redimensionner.
  • L'utilisateur veut une photo réelle d'une personne réelle spécifique. Les deux fournisseurs refusent ou produisent des ressemblances inexactes, et il y a des problèmes de politique.
  • L'utilisateur veut de l'« art IA » général sans brief de design — l'orienter vers ChatGPT ou l'application Gemini ; cette compétence est optimisée pour le travail de design.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

shaharsha/deck-to-video

Use when turning a slide deck plus per-slide narration audio into an mp4 video — a self-playing/self-presenting deck video, "slides to video", "presentation to mp4", a shareable WhatsApp/Slack/Drive video of a narrated deck, or when a slide video needs a per-slide progress bar / countdown / slide counter. Also use when a slide video should highlight, glow or spotlight the element being talked about in time with the voice, or when narration and on-screen animation need syncing. Also use when...

shaharsha/generating-video-clips

Use when turning a still image, illustration, comic panel or character art into a short animated clip (image-to-video), choosing a video model or provider (Gemini Omni, Veo, Seedance, Kling, ElevenLabs Flows) or hitting their API gates, lip-syncing a character's mouth to existing dialogue audio (Sync, fal.ai, active speaker), or fixing a generated clip with artifacts - duplicated props, a door or a second figure appearing, hands through bodies, glowing eyes, a gesture repeated at the start,...

shaharsha/producing-animated-episodes

Use when making a narrated or voiced animated video with recurring characters - an anime, cartoon or comic episode, a short for a group chat, a story video about friends, family, a class or a team - from photos, a chat export, a story idea or a script, in any visual style, Hebrew/RTL or English. Also use when such a video has subtitles or cards too fast to read, music stopping early, the ending cut off, lines buried under music, mouths out of sync, a gesture before its line, or one face...

Skills associés