Communitygithub.com

Chercheur d’Images de Film

Transformez une description de scène de film en une image réelle sourcée, sans clé API, sur n’importe quel OS.

Qu'est-ce que Chercheur d’Images de Film ?

Cette compétence transforme une description textuelle d’une scène de film en une image authentique, sourcée et vérifiée, prête à être utilisée. Elle est conçue pour tout agent d’IA (Claude Code, Cursor, etc.) et fonctionne sur n’importe quel système d’exploitation sans nécessiter d’identifiants. La compétence suit un pipeline structuré : vérification des faits, sélection de la source, téléchargement par lots, création d’une planche contact numérotée, sélection visuelle (par un modèle de vision ou un humain), rognage des sous-titres, composition optionnelle, et livraison avec une preuve de provenance complète. Elle gère les demandes de scènes, d’humeurs, de citations, de dialogues ou d’illustrations de couverture, et propose des profils optionnels (comme un flux éditorial avec prévisualisation et sélection humaine). La vérification des faits est obligatoire avant la recherche, car les détails des films sont souvent erronés. Aucune clé API n’est demandée ; la compétence utilise des sources publiques comme les galeries de captures d’écran de films. La vision ne peut pas être contournée – une planche contact doit être examinée pour choisir l’image exacte.

Compatible avec✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/Fitzfeichi/movie-still-finder/tree/master

Demander à votre IA préférée

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

Documentation

Que fait Chercheur d’Images de Film ?

Transformez « J’ai besoin d’une image de deux personnes assises en silence après une dispute » en un véritable fichier image sourcé. N’importe quel agent d’IA, n’importe quel OS, sans identifiants.

1. Lisez ceci d’abord : ce qui est réellement possible

Il n’existe aucune API publique gratuite qui prend une phrase en langage naturel et renvoie l’image exacte d’un film, surtout avec des sous-titres de dialogue incrustés. Poursuivre cette « solution miracle » fait perdre du temps. Ce qui fonctionne est un pipeline, où l’agent orchestre et un modèle capable de vision sélectionne l’image :

requête -> vérification des faits -> choisir la source -> téléchargement par lots des candidats
        -> planche contact numérotée -> SÉLECTION VISUELLE de l’image -> originale haute résolution
        -> rogner les sous-titres / composer un sous-titre -> vérification visuelle
        -> livraison + manifeste de provenance

Deux conséquences non négociables :

  • L’étape de vision ne peut pas être ignorée. Deviner une image à partir de noms de fichiers ou de texte seul échoue. Montrez la planche contact à un modèle capable de vision (ou à l’humain).
  • Vérifiez d’abord les faits. Les « faits » largement répétés sur les films sont souvent erronés (voir references/fact-check.md). Vérifiez la réplique / la scène / l’épisode avant de chercher.

2. Démarrage rapide (profil minimal, par défaut)

pip install -r requirements.txt
python scripts/still.py probe                       # quelles sources sont accessibles maintenant
python scripts/still.py grab --out ./work \
  --page "https://movie-screencaps.com/avatar-2009/page/114" \
  --image-referer "https://movie-screencaps.com/" \
  --limit 40
# -> ./work/candidates/*.jpg, ./work/contact_1.jpg, ./work/manifest.json
# Montrez contact_1.jpg à un modèle de vision, notez le numéro gagnant, puis :
python scripts/still.py sheet ./work/candidates     # régénère une planche numérotée
python scripts/still.py crop ./work/candidates/p1_02.jpg --bottom 100 -o ./work/clean.jpg
python scripts/still.py deliver ./work --picks examples/sample-picks.json \
  --profile profiles/minimal.json --out ./delivery

Exécutez toujours probe d’abord : la disponibilité des sources varie. Pour une exécution entièrement hors ligne, voir la section D de examples/quickstart.md. --image-referer est normalement la racine du site, pas l’URL de l’article.

Pour une réplique de dialogue, quote donne le film et l’horodatage en millisecondes :

python scripts/still.py quote "Je te vois" --title Avatar

Parcours complet : examples/quickstart.md. Référence des commandes : scripts/still.py --help.

3. Décidez de la route avant de toucher au réseau

DemandePremier choixSolution de repli
Scène / ambiance (« silence après une dispute », « deux personnes dos à dos »)Article éditorial avec images sous-titrées, ou images FilmGrab (grab)Galerie image par image + sélection visuelle
Une réplique citée / « l’image où X dit Y »quote → horodatage → galerie d’images → subtitle (étiqueter comme composite)Capture d’écran avec sous-titres natifs d’un article éditorial
Besoin d’une illustration large, propre, sans sous-titre de couvertureImages FilmGrabcrop des 95-100 px du bas d’une capture d’écran de visualisation
L’utilisateur a des fichiers vidéo locauxRecherche sémantique locale facultative, voir references/optional-adapters.md—
Mème / 梗图 plutôt qu’une imageAnnexe facultative, references/meme-optional.md—

Exécutez probe d’abord. C’est gratuit, ne nécessite aucune connexion, et vous indique quelles sources sont 403 / inaccessibles dans votre environnement afin de ne pas réessayer un serveur mort.

4. Règles qui s’appliquent à chaque agent

  1. Aucun identifiant. Ne demandez pas de clés API, ne vous connectez pas au nom de l’utilisateur, ne contournez pas les paywalls ou les protections anti-bot. Un 403 signifie « changez de source », enregistré dans le journal d’exécution.
  2. Téléchargez uniquement les URL qui ont été réellement retournées. N’inventez jamais une URL d’image. Une page accessible ne signifie pas que son CDN d’images est accessible : vérifiez une image avant de faire confiance à toute une galerie. Si les images font 403 après une correction de Referer, changez de source — ne continuez pas à faire varier les en-têtes.
  3. Enregistrez la provenance. Chaque image livrée nécessite la page source, l’URL directe de l’image, le titre/année du film, et si un sous-titre a été rogné ou composé. grab écrit cela automatiquement dans manifest.json.
  4. Marquez les sous-titres composés. Si vous ajoutez un sous-titre qui n’était pas dans l’image originale, dites-le dans la légende. Ne le présentez jamais comme une image native.
  5. Vérifiez, ne supposez pas, la résolution (>= 1000 px de large par défaut) et ouvrez le fichier final avec un visualiseur avant de livrer.
  6. Respectez le profil. Le comportement au-delà de ce qui précède (sélection humaine dans la boucle, livraison en dossier double, vérification obligatoire des faits, prévisualisation de recadrage de couverture) est contrôlé par profiles/*.json. N’activez pas silencieusement des règles supplémentaires.

5. Profils (comportement facultatif)

Le profil par défaut profiles/minimal.json est un pipeline simple et polyvalent : trouver des candidats, en choisir un, livrer avec provenance. Tout le reste est facultatif.

python scripts/still.py rules --profile profiles/editorial-wechat.json
python scripts/still.py deliver ./work --picks picks.json \
  --profile profiles/editorial-wechat.json --out ./delivery

editorial-wechat.json regroupe le flux de travail d’un éditeur humain : prévisualisations numérotées et sélection humaine (jamais de finalisation automatique), livraison en dossier double sans suppression de candidat, vérification obligatoire des faits, annotation obligatoire des sous-titres/sources, et une prévisualisation de recadrage de couverture 2,35:1. Voir profiles/README.md pour le schéma complet.

6. Index des références (divulgation progressive)

Lisez uniquement ce dont l’étape actuelle a besoin.

FichierLire quand
references/workflow.mdVous avez besoin de la SOP complète de bout en bout et de la liste de contrôle d’acceptation
references/sources.mdChoisir une source, ou une source a cessé de fonctionner
references/pitfalls.mdQuelque chose a échoué ; contient les serveurs connus comme morts et les modes de défaillance exacts
references/image-ops.mdPlanches contact, rognage, composition de sous-titres, polices
references/fact-check.mdToute demande citant une réplique ou décrivant une scène spécifique
references/delivery.mdSchéma de provenance, mise en page du dossier double, limite de droits d’auteur
references/meme-optional.mdL’utilisateur a demandé un mème plutôt qu’une image
references/optional-adapters.mdBibliothèque vidéo locale, ou autres outils basés sur connexion/CLI

7. Liste de contrôle d’acceptation

  • La réplique / la scène a été vérifiée avant la recherche
  • Une planche contact numérotée a été consultée par un modèle de vision ou par l’humain
  • L’image finale s’ouvre correctement et correspond à la demande, pas seulement à la requête
  • Page source + URL directe + film/année enregistrés dans manifest.json
  • Sous-titres rognés / composés explicitement étiquetés
  • Largeur >= 1000 px (ou l’écart est indiqué)
  • Serveurs morts et solutions de contournement enregistrés plutôt que réessayés silencieusement
  • Aucun candidat n’a été supprimé ; les fichiers intermédiaires sont conservés

8. Limites du périmètre

Cette compétence trouve et prépare des images. Elle ne publie rien, n’édite pas le manuscrit de l’utilisateur, ne décide pas de la couverture finale pour le compte de l’utilisateur (sauf si le profil indique que l’humain a déjà choisi), et n’accorde aucun droit de redistribuer des images de film. Voir references/delivery.md pour la limite de droits d’auteur.

Skills associés