CommunityImagegithub.com

find-images

Trouver des images pour des diapositives, rapports, documents et pages web – photos réelles (produits, lieux, événements, personnes), photos libres de droits, images produits officielles et icônes. Compare plusieurs candidats sur une seule planche contact numérotée, télécharge les originaux choisis, enregistre la source et la licence, et construit une page de crédits. À utiliser lorsque l'utilisateur demande des images ou icônes pour un document, ou lorsqu'une présentation est trop textuelle.

Qu'est-ce que find-images ?

Cette compétence automatise la recherche, la sélection, le téléchargement et le crédit d'images pour des présentations, rapports ou pages web. Elle interroge plusieurs sources (Google Images via Serper, Wikimedia Commons, Pixabay, Iconify, et le mode site pour des pages officielles) selon les besoins : photos spécifiques, images libres de droits, icônes ou visuels d'ambiance. L'utilisateur définit un plan JSON avec des requêtes par diapositive (taille, orientation, nombre de candidats). Le script génère une planche contact numérotée pour faciliter la sélection sans ouvrir chaque image individuellement, puis télécharge les originaux choisis et enregistre leurs métadonnées (source, licence, dimensions) dans un manifeste. Il construit automatiquement une page de crédits. La compétence gère les contraintes de licence (CC0, CC BY-SA, droits inconnus) et peut déléguer la visualisation des planches et le choix des images à un sous-agent pour économiser le contexte de l'agent principal. Elle supporte Claude Code, Codex et Cursor, et nécessite quelques clés API (SERPER_API_KEY, PIXABAY_API_KEY, optionnellement EXA_API_KEY).

Compatible avec✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/Kishibe999/find-images/tree/HEAD

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

find-images : trouver, filtrer, télécharger et créditer des images

Le script est scripts/imgs.py dans le répertoire de cette compétence. Dans les commandes ci-dessous, remplacez <skill-dir> par le chemin complet du répertoire qui contient ce SKILL.md (par exemple C:/Users/<nom>/.claude/skills/find-images). Les clés proviennent des variables d'environnement ou de ~/.config/image-search/keys.env (SERPER_API_KEY, PIXABAY_API_KEY, EXA_API_KEY optionnel). Le script les lit lui-même : ne les imprimez jamais et ne les cherchez nulle part ailleurs. Si une clé manque, le script indique quelle source il a ignorée ; continuez avec les autres sources et dites à l'utilisateur de configurer la clé comme décrit dans le README.md de cette compétence. Les messages du script, les étiquettes des planches et credits.md suivent la langue du système (chinois ou anglais) ; FIND_IMAGES_LANG=zh|en la surcharge. La sortie va dans images/ du projet courant : _work/<tag>/ contient les candidats et les planches contact, assets/ les images choisies, manifest.json l'enregistrement source de chaque image, et credits.md la page de crédits.

Décidez d'abord si la diapositive a besoin d'une image trouvée

ContenuQue faire
Données, comparaisons, tendancesNe cherchez pas ; utilisez des graphiques natifs pptx ou matplotlib
Processus, structures, relationsNe cherchez pas ; dessinez avec des formes ou du SVG
Concepts, illustration abstraiteEssayez d'abord les icônes (icons) ; dans Codex vous pouvez aussi en générer une avec imagegen
Produits, lieux, personnes, événements, organisations spécifiquesUtilisez cette compétence pour trouver des photos réelles
Images d'ambiance, fonds de couvertureUtilisez cette compétence avec Pixabay ou Commons comme source

Choix des sources

Source (src / mode)Bon pourLangue de requêteLicence
web (Serper, c.-à-d. Google Images)Produits spécifiques, actualités, personnes, sujets en chinoisToute. Pour les sujets chinois, ajouter 官方图 (image officielle), 高清 (HD) ou 新闻图 (photo d'actualité) aideDroits inconnus : présentations internes et travaux académiques uniquement, avec la source citée
commons (Wikimedia Commons)Monuments, villes, architecture, histoire, science, personnalités publiques, logos d'organisationsAnglais uniquement, 2 à 4 mots (les requêtes en chinois ne donnent presque rien)CC0 est libre d'utilisation ; CC BY / BY-SA nécessitent une attribution
pixabayPhotos d'ambiance et scènes génériques (bureau, travail d'équipe, ville, nature, industrie)Chinois ou anglaisLibre d'utilisation, attribution optionnelle ; 1280px max
mode: site (page officielle)Images officielles d'une page produit ou entrepriseDonnez l'URL de la pageImage du site officiel ; citez la source
mode: icons (Iconify)Icônes de jeux open source (MIT, Apache, …)Anglais uniquement, 1 à 2 mots (drone, battery). Avec moins de 6 résultats, le script cherche aussi chaque mot séparémentLes jeux par défaut sont libres d'utilisation sans attribution ; color est appliqué au SVG et au PNG

Pour un sujet spécifique, utilisez src web ou web,commons. Quand les images doivent être libres d'utilisation, utilisez commons,pixabay et omettez web.

Flux de travail

1. Écrivez le plan d'images (plan.json, UTF-8)

Un élément par diapositive ; nommez chaque tag d'après le numéro de diapositive et le but :

[
 {"tag": "s01_cover", "q": "car carrier ship at port", "q_en": "car carrier ship",
  "src": "commons,pixabay", "orient": "landscape", "min_side": 1600, "n": 12},
 {"tag": "s04_product", "q": "比亚迪 海豹07 官方图", "src": "web", "orient": "landscape", "min_side": 1200, "n": 9},
 {"tag": "s05_official", "mode": "site", "url": "https://www.byd.com/cn/", "n": 9},
 {"tag": "s07_icon", "mode": "icons", "q": "battery", "color": "#1F4E79", "n": 16}
]
  • q : requête principale, utilisée par web et pixabay. Elle peut être en chinois pour les sujets chinois, comme dans s04_product. q_en : requête en anglais utilisée par commons ; par défaut égale à q.
  • orient : landscape / portrait / square / any.
  • min_side : longueur minimale du côté long en pixels. Fond d'écran plein écran 1600, demi-diapositive 1000, petite illustration 600. L'API gratuite de Pixabay sert au maximum 1280px, donc le script abaisse l'exigence à 1280 pour Pixabay. C'est suffisant pour un fond plein écran sur un projecteur ou un écran ordinaire, légèrement flou sur un écran 4K. Si une image plein écran doit être très nette, préférez les candidats de Commons.
  • n : nombre de candidats sur la planche, 16 au maximum.

2. Recherchez et construisez les planches contact

python <skill-dir>/scripts/imgs.py search --plan plan.json --out images

Les éléments individuels fonctionnent aussi : search --tag s04_product --q "..." --src web, ou site --tag .. --url .., icons --tag .. --q ... Si les arguments non-ASCII sont déformés dans le shell (par exemple du chinois dans Git Bash sous Windows), mettez-les dans plan.json à la place.

Chaque élément produit une planche contact numérotée images/_work/<tag>/sheet.jpg et une liste texte avec une ligne par candidat (taille, domaine source, licence). Rechercher le même tag à nouveau écrase ses candidats et numéros, donc choisissez à partir d'une planche avant de rechercher à nouveau ce tag.

3. Regardez la planche et choisissez

  • Ouvrez l'image de la planche : Read dans Claude Code, view_image dans Codex. Une planche coûte environ 1 600 tokens. N'ouvrez pas les candidats un par un.
  • Vérifiez que le sujet est correct (modèle, lieu), que la composition laisse de la place pour le texte, qu'il n'y a pas de filigrane ou de gros bloc de texte, que le style correspond au reste de la présentation, et que la résolution est suffisante.
  • Si rien ne convient, recherchez à nouveau. Après la première recherche, re-cherchez au maximum deux fois, à chaque fois sous un angle différent plutôt qu'avec des synonymes : un sujet plus spécifique ou plus général, une autre source, ou l'autre langue. Si cela échoue encore, recourez aux icônes ou à une mise en page sans image, ou prévenez l'utilisateur.
  • En cas de conflit entre pertinence du sujet et licence : si la demande dit que les images libres de droits sont préférées, recherchez d'abord commons,pixabay ; si une nouvelle recherche ne trouve toujours rien sur le sujet, utilisez une image web et étiquetez-la « droits inconnus » dans votre rapport. Si la demande stipule que les images doivent être libres de droits ou seront publiées, n'utilisez jamais web ; recourez à une alternative.
  • Les étiquettes des planches montrent la taille, la licence (Commons affiche la licence exacte, par exemple CC BY-SA 4.0) et le domaine source ; la liste texte montre les mêmes informations.

4. Téléchargez les images choisies

python <skill-dir>/scripts/imgs.py pick --tag s04_product --ids 6 --out images

Le script télécharge l'image originale (Commons via sa vignette standard 1920px ; les côtés longs de plus de 2560px sont réduits ; webp/avif deviennent jpg/png) et l'enregistre dans manifest.json. Si pick signale un téléchargement dégradé ("degraded": true dans le manifeste : la protection anti-hotlink a bloqué l'original et seule une vignette est passée), choisissez un autre candidat.

5. Insérez les images et construisez la page de crédits

  • Lors de l'insertion, référez-vous à file, width et height dans manifest.json ; recadrez pour correspondre à la mise en page et ne déformez jamais. Les icônes sont fournies en PNG et SVG (le champ svg).
  • Lancez credits --out images pour écrire credits.md et placez sa section de crédits de diapositive sur la dernière diapositive (sources). Si elle contient une section de notes, transmettez-la à l'utilisateur.
  • Lorsque l'ensemble de la présentation est terminé, générez-la et vérifiez les captures d'écran comme d'habitude. C'est la seule fois où l'agent principal a besoin de regarder les images.

Économiser le contexte : passer trois images ou plus à un sous-agent

L'agent principal écrit uniquement plan.json et lit le manifeste. La visualisation des planches, le choix et le téléchargement sont confiés à un sous-agent, de sorte que les images candidates n'entrent jamais dans le contexte principal. Modèle de prompt pour sous-agent :

Lisez <skill-dir>/SKILL.md et suivez-le pour trouver des images pour la présentation dans <chemin du projet>.
Plan d'images : <chemin vers plan.json> (tag, objectif et contexte de diapositive pour chaque élément ci-dessous).
<pour chaque élément : ce que dit la diapositive, où va l'image, paysage ou portrait, style>
Pour chaque élément, regardez la planche une fois et choisissez 1 image (au maximum 1 de secousse) ; pick dans <projet>/images. Si rien ne convient, re-cherchez avec des mots différents, au maximum deux tours supplémentaires.
Retournez pour chaque tag : l'id choisi, le chemin du fichier, la taille, la classe de licence et une raison d'une ligne ; listez les tags sans image adaptée et pourquoi. Ne retournez pas les images elles-mêmes.

Règles de licence

  • Libre d'utilisation (CC0, Pixabay, icônes open source) : toute utilisation. Créditer les images CC0 et Pixabay est une courtoisie, pas une obligation.
  • Attribution requise (CC BY / BY-SA) : créditez l'auteur et la licence sur la diapositive des sources. Une image BY-SA modifiée doit être partagée sous la même licence.
  • Officiel / droits inconnus (site, web) : présentations internes, travaux académiques et conférences académiques uniquement, avec la source citée. Avant toute publication ou utilisation commerciale, prévenez l'utilisateur et remplacez par des images libres de droits.
  • Photos de personnes : les personnalités publiques dans un contexte d'actualité sont acceptables ; n'utilisez pas de photos de personnes privées comme décoration.

Quotas et limites

  • Serper : 2 500 requêtes gratuites lors de l'inscription. Une recherche de 20 résultats (quand n > 6) coûte 2 requêtes, 10 résultats en coûtent 1. Ensuite, vous rechargez, à partir de 50 $ pour 50 000 requêtes, et les rechargements expirent après 6 mois. Le solde restant est visible sur le tableau de bord serper.dev.
  • Pixabay : 100 requêtes par minute ; les images ne doivent pas être liées par hotlink (le script les télécharge).
  • Commons : seules les largeurs de vignettes standard (960/1280/1920/3840) peuvent être récupérées ; recherchez en anglais.
  • Iconify : gratuit, pas de clé. La conversion SVG en PNG nécessite Node.js avec sharp. S'il manque, le script le dit ; utilisez une autre approche, ou demandez à l'utilisateur d'exécuter npm install -g sharp.
  • Exa : utilisé uniquement lorsque le mode site ne peut pas trouver d'images sur la page elle-même ; il utilise des crédits Exa.

Skills associés