CommunityImagegithub.com

générateur-de-miniatures

Génère des miniatures YouTube 16:9 (1280x720) pour n'importe quelle chaîne. Utilisez ceci lorsqu'une vidéo a besoin d'une miniature – le workflow analyse la vidéo, sélectionne des références de design, collecte les entrées manquantes, génère des variantes et présente le résultat pour approbation avant tout téléversement.

Qu'est-ce que générateur-de-miniatures ?

Ce skill conçu pour les agents IA (Claude Code, Cursor, Codex, etc.) automatise la création de miniatures YouTube professionnelles. Il combine un workflow structuré avec un rendu déterministe. L'agent hôte analyse le contenu vidéo (titre, description, transcript, trames) via des scripts Python pour extraire un brief technique (termes fréquents, coupures de scènes). L'agent sélectionne ensuite 2-3 références dans une bibliothèque privée du créateur, en utilisant des scripts d'analyse pixel (luminosité, contraste) pour guider les choix stylistiques sans jamais exposer les images locales. Le workflow collecte les entrées manquantes (texte 2-4 mots, mot accentué, style, layout, langue) et, optionnellement, permet à l'agent de modifier l'expression d'un personnage via un modèle d'édition d'image (réaction edit) ou de créer un cut-out. Le rendu final produit jusqu'à 3 concepts distincts (hooks, trames, compositions différents) avec un manifeste d'exécution, et intègre un contrôle qualité automatique (taille, contraste, limite de poids) ainsi qu'une validation sémantique par l'agent (vérité du hook, adéquation image-thème, variété). Aucun modèle d'image ou réseau n'est requis pendant le rendu – le skill s'appuie sur les capacités existantes de l'environnement hôte. L'approbation finale revient toujours au créateur.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/stanuser297/thumbnail-skill/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

Générateur de miniatures

Workflow agent + rendu déterministe, adaptable à n'importe quelle chaîne. Le package fournit les règles de style, les gabarits de mise en page, les polices, les outils de cadre et le moteur de rendu ; l'agent hôte fournit la compréhension et le jugement.

Workflow

  1. Brief vidéo (compréhension hôte, preuves package) : lire le titre, la description, les chapitres/transcription et les trames d'échantillonnage de la vidéo. scripts/video_brief.py --video V --transcript subs.srt --scenes --out brief.json assemble les preuves : fréquences de termes dans la transcription (décomptes de mots simples, sans modèle) et horodatages de coupures de scènes via ffmpeg. L'hôte remplit ensuite les champs main_question, show et avoid_implying du brief – ce que la miniature doit communiquer honnêtement et ce qu'elle NE DOIT PAS sous-entendre. Le package ne comprend pas le contenu vidéo par lui-même ; il a besoin d'un hôte qui sait lire les métadonnées vidéo, les trames et le texte. Trames candidates : scripts/extract_frames.py VIDEO --out frames/ (échantillonnage uniforme) ou --scenes (trames aux coupures de scènes les plus fortes – moments où quelque chose a changé, pas une preuve du moment important).
  2. Sélection de références (capacité de l'agent hôte) : depuis la bibliothèque de références privée du créateur, choisir 2-3 références dont la composition correspond au sujet de cette vidéo, et noter les motifs concrets (taille/emplacement du texte, contraste des couleurs, position du sujet). scripts/analyze_references.py FOLDER [--labels sources.csv] donne des statistiques au niveau pixel (luminosité, contraste, part sombre/colorée) sur le dossier local du créateur pour étayer ces choix ; la bibliothèque ne quitte jamais le disque local et n'est jamais incluse dans ce package. Pour les grandes bibliothèques, l'hôte peut faire UN passage de vision sur le dossier et enregistrer les sujets/humeur/composition de chaque référence dans un fichier privé reference_tags.json (schéma dans examples/example_reference_tags.json) ; scripts/match_references.py --tags reference_tags.json --topic ... --mood ... présélectionne alors les candidates par chevauchement de tags pour que l'hôte les examine. Le fichier de tags reste en dehors du dépôt, à côté de la bibliothèque, exactement comme les images.
  3. Collecte des entrées manquantes : texte de la miniature (2-4 mots, honnête par rapport à la vidéo), le MOT accentué, la mise en page, l'ambiance de style (une des cinq dans styles.json), la langue (Hindi/Anglais), et la trame choisie (un moment réel de la vidéo qui correspond au sujet, pas seulement l'image la plus nette). Un profil de chaîne (profiles.json) peut fournir des valeurs par défaut ; les choix explicites prennent toujours le dessus. Demander au créateur tout ce qui manque encore.
  4. Édition de réaction du personnage et découpage (optionnel ; capacité d'édition d'image de l'hôte) : lorsque la miniature a besoin que le personnage de la vidéo montre une réaction spécifique (choc, joie, colère) qui correspond au moment de la vidéo, l'hôte peut éditer la trame choisie avec un modèle d'édition d'image : préserver l'identité du personnage, le style d'illustration et l'arrière-plan ; changer uniquement l'expression. Pour le look détouré (sujet séparé du fond avec un contour, motif dominant dans la bibliothèque de référence), faire placer le personnage sur un fond uniforme plat (fond vert fonctionne le mieux) par l'hôte et exécuter scripts/make_cutout.py shot.png --out subject.png – le keying s'exécute entièrement en local ; seule la production du plan sur fond uniforme nécessite l'outil d'image de l'hôte. Composer avec --subject subject.png (empilement gauche/bas-gauche : sujet à droite avec contour et ombre, texte maintenu à l'écart). Ce package ne contient aucun modèle d'image – les éditions utilisent la capacité d'édition d'image que l'environnement hôte fournit, sans supposer de prestataire payant ni d'inscription. Lorsqu'une telle capacité n'existe pas, ignorer cette étape et choisir une trame dont l'expression existante convient déjà. Règles : n'éditer que des assets illustrés/avatars provenant de la propre vidéo du créateur ; ne jamais fabriquer l'expression d'une personne réelle pour une affirmation d'événement réel ; enregistrer chaque édition dans le manifeste d'exécution (--reaction-edit) pour que le créateur sache que l'expression a été éditée.
  5. Concepts distincts, pas de rotations de couleurs : pour chaque vidéo, concevoir 2-3 concepts vraiment différents – accroche différente, trame/scène différente, composition différente – et les rendre en une seule exécution : scripts/run_thumbnail.py --video V --concepts concepts.json --out set.jpg (chaque entrée du JSON a son propre titre, trame, mise en page, note de concept et éventuel sujet/réaction_edit ; un manifeste enregistre l'ensemble complet). --variants N reste pour les rotations de style/mise en page du MÊME texte, ce qui est un choix plus faible pour les décisions réelles.
  6. Rendu + manifeste : scripts/run_thumbnail.py --video V --title T --accent A [--profile P] [--style S] [--layout L] [--variants N] [--label K] [--lang hi] [--reaction-edit "ce qui a été édité"] [--subject subject.png] [--brief brief.json] [--channel NOM] --frame F --frame-time SECONDES --concept "..." --refs ID --ref-notes "..." --out thumb.jpg écrit jusqu'à N variantes et un enregistrement d'exécution *.manifest.json (identité de la vidéo source, profil, références inspectées, concept, trame choisie, éventuelle édition de réaction, chaque sortie). Avec --brief, chaque sortie obtient hook_evidence : lignes de transcription partageant les mots de l'accroche plus un avertissement lorsque l'accroche fait une affirmation absolue (mort/fini/terminé/...) que la transcription ne fait jamais – preuve pour l'examen de véracité, PAS un verdict de vérité ; une accroche peut partager des mots et toujours déformer. Avec --channel, une mémoire de design par chaîne (.thumbnail-history/, en dehors du dépôt) avertit lorsque le nouveau rendu répéterait le motif récent de la chaîne (même famille de style ou mise en page 3 fois de suite, sujet détouré 3 des 4 derniers) – avertissements, jamais de blocages, et un style délibéré de série est acceptable ; l'exécution est ensuite enregistrée. Pour un rendu rapide sans manifeste, utiliser directement scripts/make_thumbnail.py ; --mobile-preview ajoute un rendu de 380 px de large pour la vérification de lisibilité sur téléphone.
  7. Contrôle qualité, deux niveaux :
    • Automatique (mesurable uniquement) : run_thumbnail.py exécute déjà scripts/check_thumbnail.py sur chaque sortie et enregistre les résultats dans le manifeste (quality_checks) ; les avertissements/échecs s'affichent pendant l'exécution. Vérifications : dimensions 1280x720, limite YouTube de 2 Mo, contraste de la zone de texte à la taille téléphone 380 px, et luminosité du détourage collé lorsqu'un découpage --subject a été utilisé. La vérification du sujet lit l'emplacement CONNU du découpage – ce n'est pas un détecteur de visage et ne dit rien sur les visages à l'intérieur d'une trame de fond ; les rendus basés sur une trame nécessitent toujours vos yeux. Vous pouvez aussi l'exécuter seul : python3 scripts/check_thumbnail.py thumb.jpg --layout stack-left --subject subject.png (code de sortie 1 en cas d'ÉCHEC, donc peut bloquer un workflow).
    • Sémantique (jugement hôte, jamais garanti) : examiner ce que les pixels ne peuvent pas : (1) vérité de l'accroche – le texte doit être une question que la vidéo pose réellement ou une affirmation qu'elle soutient, jamais une invention absolue pour les clics (utiliser le hook_evidence du manifeste comme preuve de départ, puis juger) ; (2) correspondance image-sujet – la trame doit appartenir au sujet de la vidéo (une peinture religieuse ou historique derrière une accroche d'explication technique est un rejet) ; (3) adéquation style-ambiance – un texte géant condensé et tape-à-l'œil convient aux sujets dramatiques, les explications plus calmes peuvent mieux se lire avec une composition plus sobre ; (4) variété – pas la même mise en page + même expression sur chaque vidéo. Ouvrir ensuite l'image et l'aperçu mobile : le mot accentué est celui mis en évidence, pas de chevauchement avec le sujet de la trame, l'expression éditée ressemble toujours au même personnage.
  8. Approuver : le créateur approuve avant tout téléversement. Éditions ciblées : relancer make_thumbnail.py --spec thumb.spec.json avec seulement les indicateurs modifiés.

Portée – ce que ce package fait et ne fait pas

  • Il FAIT : extraire/évaluer des images fixes vidéo, appliquer le système de style (polices, couleurs, 4 mises en page), générer des variantes en hindi ou anglais, analyser un dossier de référence local pour des choix stylistiques fondés, conserver une spécification éditable et un manifeste d'exécution par miniature.
  • Il ne fait PAS : comprendre la vidéo sémantiquement, choisir l'accroche ou le concept tout seul, éditer les images tout seul (les éditions de réaction utilisent la propre capacité d'édition d'image de l'hôte ; le package les enregistre seulement), vérifier l'honnêteté du message, ou téléverser quoi que ce soit. Ce sont des jugements du créateur/agent hôte et des capacités de l'hôte, fournis comme entrées déclarées. L'apprentissage CTR nécessiterait un accès aux analyses de chaîne et des données contrôlées – cela ne fait pas partie de ce package.

Mises en page et styles

Quatre mises en page (bottom-left, stack-left, center-big, split), apprises des motifs dominants dans une bibliothèque de référence de 97 images : mots énormes empilés avec une barre de surbrillance, titres de destination centrés, séparations avant/après, et blocs en bas à gauche sur des trames dégradées. Cinq combinaisons de couleurs dans styles.json (documentaire, finance, tech, podcast, boldred) : un fond, une couleur de texte, un accent. Règles : 2-4 mots, UN mot accentué (mis en évidence), une famille de polices.

Prérequis

Python 3 avec Pillow et numpy ; ffmpeg dans le PATH pour l'extraction de trames et les métadonnées vidéo. Aucun réseau nécessaire au moment du rendu.

Bibliothèque de référence

Les motifs de design sont appris à partir de la bibliothèque de référence privée du créateur (97 miniatures couvrant les familles visage-réaction, typographie audacieuse, podcast, jeu vidéo, voyage et autres). La bibliothèque reste privée : ne jamais inclure ses images dans ce package ni dans aucune distribution. analyze_references.py lit uniquement un dossier local désigné par le créateur.

Skills associés