Communitygithub.com

一句话视频

Transformez une phrase en une vidéo MP4 courte (20 à 90 secondes) avec musique et sous-titres : explications, vulgarisation, présentation produit, reportage de données, cartes de connaissances. Formats paysage ou portrait. Il suffit de remplir un fichier `video.json` et d'exécuter une commande. Vous pouvez intégrer des extraits de séquences réelles et exporter vers Final Cut Pro ou CapCut (剪映). Fonctionne sur Windows, macOS et Linux, sans modèle de génération vidéo.

Qu'est-ce que 一句话视频 ?

Cette compétence (skill) permet aux agents IA de générer automatiquement une courte vidéo MP4 à partir d'une simple phrase ou d'un sujet donné par l'utilisateur. Elle est conçue pour les développeurs et les utilisateurs d'agents IA qui ont besoin de produire rapidement des vidéos explicatives, de vulgarisation, de présentation produit ou de reportage de données, sans recourir à des modèles de génération vidéo complexes. La compétence est compatible avec Windows, macOS et Linux, et prend en charge les formats paysage (16:9) et portrait (9:16). Le processus se déroule en cinq étapes : préparation de l'environnement (Node.js, bibliothèques graphiques, ffmpeg, polices chinoises), conception détaillée (création d'un plan, choix d'un thème et d'un style, découpage en scènes), rédaction d'un fichier `video.json` et de code de scènes personnalisées (pour les éléments visuels tangibles), validation et génération de la vidéo (via des scripts de vérification et de production), et enfin retour d'information à l'utilisateur. La compétence propose 15 packs de style prêts à l'emploi (comme papercraft, isometric, dashboard, news) et 12 thèmes intégrés (minimal, keynote, blueprint, etc.), ainsi que la possibilité de créer des scènes sur mesure. Elle peut également intégrer des clips vidéo fournis par l'utilisateur et exporter des projets Final Cut Pro et CapCut pour un montage ultérieur. La compétence est idéale pour les tâches telles que « faire une vidéo », « générer une courte vidéo », « vidéo d'explication », « bande-annonce », « vidéo animée », « make a video / explainer / short clip », mais aussi pour le montage de séquences existantes.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/li2092/one-prompt-video/tree/HEAD

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 一句话视频 ?

L'utilisateur donne une phrase, vous faites d'abord la conception : déterminez le style, ce que l'on voit à l'écran pour chaque scène. Ensuite, écrivez un fichier video.json. Les éléments visibles du sujet sont dessinés par votre code de scène. Le script gère le timing, la musique, les sous-titres, l'encodage et l'auto-vérification.

Dans les commandes ci-dessous, remplacez SKILL par le chemin absolu du répertoire contenant ce fichier (par exemple /home/me/skills/one-prompt-video). Toutes les commandes s'exécutent dans le répertoire de travail actuel de l'utilisateur, et les chemins de fichiers sont relatifs à celui-ci.

Cinq étapes

1. Préparer l'environnement (à exécuter une fois par répertoire de travail)

node "SKILL/scripts/setup.mjs"

Il vérifie Node.js, les bibliothèques graphiques, ffmpeg et les polices chinoises. Il installe ce qui manque ou vous indique comment le faire. Continuez uniquement si tout est [OK]. S'il y a des [Manquant], communiquez ces lignes telles quelles à l'utilisateur.

2. Conception (ne pas demander à l'utilisateur, décider soi-même, puis l'informer de vos choix)

Créez un nouveau dossier dans le répertoire de travail actuel (nommé d'après le titre de la vidéo, appelé ci-dessous Titre/). Écrivez d'abord la conception dans Titre/plan.md, une quinzaine de lignes suffisent. Écrivez ensuite le reste. Une vidéo composée uniquement de cartes de texte est ennuyeuse ; cette étape détermine la qualité de la vidéo.

Complétez ce que l'utilisateur n'a pas dit

Ce que l'utilisateur n'a pas ditValeur par défaut
DuréeEnviron 30 secondes, 5 à 8 scènes
Format paysage/portraitPaysage 16:9 ; si mention de téléphone, portrait, Douyin, Xiaohongshu, vidéo WeChat, utiliser 9:16
LangueIdentique à la langue de l'utilisateur
VoixAucune. Par défaut, sous-titres + musique. Cette compétence n'inclut pas de service de doublage : si l'utilisateur veut une voix, dites-lui d'abord qu'il doit préparer lui-même le doublage (un TTS en ligne de commande ou son propre enregistrement), puis suivez references/voice.md

Choisir le style

  1. Si l'utilisateur recherche une ambiance, une histoire, une scène, des personnages, ou s'il dit « pas d'explication », « je veux des visuels », « comme un film » : cette vidéo n'utilise pas de mise en page standard, vous la dessinez entièrement. Lisez references/film.md et suivez-le.
  2. Pour les autres vidéos, choisissez un pack de style dans le tableau ci-dessous. Chaque pack de style apporte ses propres scènes, accessoires, personnages, transitions et effets sonores, plus riches que les thèmes intégrés. Choisissez en fonction du sujet : regardez d'abord la colonne « Convient à » ; si plusieurs correspondent, choisissez celui qui est le plus proche des éléments concrets du sujet (artisanat, nourriture, petites histoires de la vie -> papercraft ou clay, équipements et processus -> isometric, comptes et performances -> dashboard). Si l'utilisateur spécifie un style (« comme un jeu vidéo », « fais-le comme une conversation de chat », « comme un journal télévisé »), utilisez le pack de style correspondant.
  3. Les thèmes intégrés ne sont utilisés que dans deux cas : l'utilisateur demande explicitement la simplicité, la retenue, le professionnalisme ; ou le contenu est sérieux et les décorations nuiraient à la lecture. Pour les vidéos utilisant des thèmes intégrés, les scènes que vous dessinez doivent représenter au moins la moitié du total.
  4. Choisissez un élément qui traverse toute la vidéo : un objet concret du sujet (une aile d'avion, un grain de café, la lune, la façade d'un magasin). Il apparaît dans la première scène, puis réapparaît dans les scènes suivantes, pour lier la vidéo.

Définir chaque scène

Dans le plan, listez un tableau avec une ligne par scène, en réfléchissant dans cet ordre :

Ce que le spectateur doit comprendre dans cette scèneCe qu'on voit à l'écranComment le faire (quelle mise en page, ou personnalisé)Narrateur

« Ce qu'on voit à l'écran » décrit une image : un objet, un processus, un graphique, une structure. Pensez d'abord à l'image, ensuite au texte. Suivez les huit règles ci-dessous :

  1. Cachez le texte. Cachez tout le texte de cette scène. Si l'image restante montre encore de quoi il s'agit, la scène est valide. Parler d'une aile d'avion : l'image doit montrer l'aile et le flux d'air. Parler d'un abonnement au café : l'image doit montrer une boîte, des sachets de grains et une carte de préparation.
  2. Dessinez ce qui est visible. Les objets, processus et structures du sujet doivent être dessinés avec layout: "custom" en écrivant le code de la scène, voir references/custom-scenes.md. La scène la plus importante de la vidéo doit être personnalisée ; au moins deux scènes personnalisées par vidéo, de préférence plus d'un tiers.
  3. Choisissez la mise en page en fonction de la forme de l'information. Comparez les tailles avec bars, les séquences avec steps, les oppositions avec compare, une quantité réelle avec number (les numéros d'ordre, les heures, les identifiants ne sont pas des quantités, n'utilisez pas number). statement au maximum une fois par vidéo, bullets au maximum une fois, quote uniquement pour des citations réelles.
  4. N'écrivez pas d'étiquettes ou de descriptions secondaires. Par défaut, n'écrivez pas kicker, subtitle, note, label, cta et title de chaque scène. Ne les écrivez que si, sans eux, le spectateur ne comprendrait pas la scène. N'ajoutez pas de texte pour expliquer une relation déjà exprimée par la mise en page : un graphique à barres n'a pas besoin d'un titre « Comparaison des quatre trimestres », les étapes n'ont pas besoin de « Première étape », les cartes de comparaison n'ont pas besoin de « Comparaison ».
  5. Divisez le travail entre l'image et le narrateur. Le narrateur (say) raconte des phrases complètes, décrivant ce qui apparaît à l'écran ; l'écran ne contient que des images, des mots-clés et des chiffres. Ne mettez pas la même phrase à la fois en gros caractères et en sous-titres.
  6. Deux scènes adjacentes doivent être différentes. N'utilisez pas le même type de mise en page pour deux scènes consécutives ; si la scène précédente est un gros titre centré, la suivante doit être une image ou un graphique.
  7. Utilisez les points forts avec parcimonie. Un grand nombre et une phrase clé par vidéo, chacun une seule fois.
  8. Début et fin. La première scène utilise title, et dans les deux premières scènes, dites clairement de quoi parle la vidéo. La dernière scène utilise end, se terminant par une conclusion ou une action ; la fin est plus petite et plus courte que le début : une phrase, plus l'élément qui traverse toute la vidéo.

Si vous ne pouvez pas voir d'images ni écrire de code de scène, la règle 2 est impossible : utilisez normalement les packs de style et les mises en page, et informez honnêtement l'utilisateur que la vidéo est principalement textuelle.

3. Écrire video.json et le code des scènes

Suivez le plan pour écrire Titre/video.json :

{
  "title": "Une phrase, une vidéo",
  "theme": "papercraft",
  "aspect": "16:9",
  "seconds": 30,
  "scenes": [
    { "layout": "title", "title": "Une phrase, une vidéo", "say": "Dites une phrase, et obtenez une courte vidéo." },
    { "layout": "custom", "module": "scenes/pipeline.mjs", "seconds": 7, "cues": 3, "say": "Vous dites une phrase, le modèle conçoit, remplit le tableau, le script la transforme en vidéo." },
    { "layout": "bars", "unit": "secondes", "items": [{ "label": "1ère fois", "value": 68 }, { "label": "2ème fois", "value": 51 }, { "label": "3ème fois", "value": 57 }], "say": "Petit modèle testé trois fois, environ une minute à chaque fois." },
    { "layout": "custom", "module": "scenes/laptop.mjs", "seconds": 6, "say": "Un simple ordinateur portable suffit pour créer la vidéo." },
    { "layout": "end", "title": "Essayez maintenant", "say": "Essayez-le dès maintenant." }
  ]
}
  • seconds est la durée cible de la vidéo entière ; le script répartit le temps entre chaque scène. Un écart de moins de trois secondes avec la durée réelle est normal (chaque scène doit avoir un nombre entier d'images, et la fin a un fondu d'environ une seconde). Si non précisé, la durée est estimée automatiquement en fonction du nombre de caractères.
  • say est le sous-titre de cette scène (et le script de doublage si doublage). Une phrase par scène, 30 caractères chinois maximum (12 mots anglais maximum).
  • Pour les scènes personnalisées, placez le code dans Titre/scenes/. Après avoir écrit chaque scène, vérifiez d'abord avec une image fixe (--still) ; passez à la suivante uniquement si vous reconnaissez ce qui est dessiné.
  • Le texte à l'écran est destiné à un coup d'œil, soyez bref. Si le texte ne tient pas, divisez la scène en deux, ne remplissez pas une scène.
  • N'inventez pas de faits. N'inventez pas de chiffres, citations, noms de personnes ou d'entreprises que l'utilisateur n'a pas fournis. Pour les exemples, précisez dans le narrateur qu'il s'agit d'une illustration. Les fonctions et effets du produit doivent être basés uniquement sur les dires de l'utilisateur. Les explications que vous ajoutez doivent être listées une par une dans le rapport final pour que l'utilisateur les vérifie.

Un exemple complet avec seulement des mises en page intégrées se trouve dans SKILL/assets/example.video.json.

4. Validation et production de la vidéo

node "SKILL/scripts/make.mjs" Titre/video.json --check    # D'abord valider, quelques secondes
node "SKILL/scripts/make.mjs" Titre/video.json --sheet    # Générer une vue d'ensemble, regarder avant de produire
node "SKILL/scripts/make.mjs" Titre/video.json            # Produire la vidéo
  • Si --check signale [Erreur], chaque erreur indique la scène, le champ et la correction correcte. Corrigez et réexécutez jusqu'à ce que tout soit bon.
  • Si vous pouvez voir des images, ouvrez Titre/out/sheet.jpg et examinez image par image. Chaque scène a deux images : la première à mi-chemin de l'entrée, la seconde une fois que tout est en place. Utilisez la seconde comme référence. Pour chaque image, vérifiez quatre choses : cachez le texte, l'image montre-t-elle encore de quoi il s'agit ? Le sujet est-il assez grand (occupant au moins 60 % de la largeur ou de la hauteur de l'écran) ? Y a-t-il une grande zone vide ? Le texte est-il serré ou un mot coupé sur deux lignes ? Si un point échoue, corrigez et régénérez la vue d'ensemble.
  • Après la production, lisez le rapport imprimé (également dans Titre/out/report.txt). S'il y a [Problème] ou [Attention], corrigez et réexécutez ; le plus courant est « trop de texte », raccourcissez-le.

5. Informer l'utilisateur

Dites clairement quatre choses : où se trouve la vidéo finale (le chemin dans la ligne « Vidéo finale : » du rapport, le nom du fichier est title plus .mp4) ; ce que vous avez décidé pour lui (durée, format, style, quelles scènes sont personnalisées) ; quel contenu vous avez ajouté ; vous ne pouvez pas juger de la qualité visuelle ou musicale, demandez-lui de regarder. Si la vidéo finale n'a pas de voix, ajoutez une remarque : pour ajouter un doublage, il doit lui-même trouver un TTS et l'intégrer.

Packs de style

Chaque pack de style est un ensemble complet d'images : les neuf mises en page sont redessinées selon leur propre style, avec leurs propres scènes, accessoires, transitions, sous-titres et effets sonores. Il suffit d'écrire son nom dans theme.

themeAspectConvient à
papercraftDioramas en carton multicouche, personnages en papier, tremblement stop-motionVulgarisation légère, présentation produit, petites histoires, vie quotidienne
clayStop-motion en pâte à modeler aux couleurs chaudes, petits personnages rondsExplications pour débutants, habitudes et santé, contenu pour enfants
collagePapier kraft, papier déchiré, ruban adhésif, lettres découpéesVulgarisation légère, récapitulatifs, ouverture d'émission
skitBureau en illustration plate, deux petits personnages réagissant au contenuExpliquer des concepts à un public non spécialisé, sujets professionnels
isometricMachines 2.5D, tapis roulants, postes de contrôleExpliquer des processus, des principes, comment un système fonctionne
cosmosEspace profond, nébuleuses, corps célestes lumineux et orbitesVue d'ensemble, hiérarchie, ouverture de série
dashboardÉcran de données sombre : panneaux qui s'allument, arcs de jauge, graphiques à barresContenu avec des chiffres : performances, évaluations, surveillance, coûts
newsStudio, barre de titre, bande de sous-titres défilanteBrèves, rapports hebdomadaires, reportages de données
chatConversation de chat sur un téléphone, contenu en bullesExplications orales, études de cas, questions-réponses
comicCases noires, trames, lignes de vitesse, onomatopéesHistoires avec rebondissements, contrastes avant/après
detectiveTableau en liège, photos Polaroid, post-it, fils rougesRésolution de problèmes, rétrospective d'un événement
arcadeJeu pixel 8-bit : briques, pièces d'or, carte de niveauExpliquer des étapes, comparer des niveaux, présentation produit légère
varietyLettres décoratives à plusieurs contours, lignes radiales, mascotte, bande de commentairesLes vidéos courtes les plus animées, critiques, récapitulatifs
vhsCassette vidéo : lignes de balayage, changement de chaîne, vieux téléviseur, compteur de bandeNostalgie, génériques et bandes-annonces de séries
chromeLettres chromées 3D, dégradés liquides, éclats d'étoilesPhrases courtes pour jeunes, sujets tendance, pas pour le contenu sérieux

Les aperçus sont dans SKILL/assets/styles.jpg ; si vous pouvez voir des images, regardez d'abord avant de choisir. Les packs de style ont beaucoup de décorations, le texte par scène doit être encore plus court ; news présente le contenu comme un journal télévisé, si le contenu n'est pas une vraie nouvelle, rappelez-le dans le rapport.

Ce ne sont que des points de départ prêts à l'emploi, les styles ne sont pas limités : pour un tout nouvel ensemble (journal intime, disque vinyle, plan de métro, n'importe quoi), suivez references/style-packs.md pour écrire votre propre pack de style.

Douze thèmes intégrés

Les thèmes changent uniquement les couleurs, les arrière-plans et les lignes ; les images n'ont pas de scènes ni d'accessoires. Les conditions d'utilisation sont décrites à l'étape 2 « Choix du style », règle 3.

themeAspectConvient à
gridPapier quadrillé beige, violet, carte blancheExpliquer des concepts, des principes
minimalGrands espaces vides, lignes fines, un point bleuVidéos de marque calmes et sobres, génériques
popCouleurs contrastées, lignes radiales, contour noir épaisAnimé, rythme rapide, plateformes vidéo courtes
keynoteDégradé sombre, carte vitrée, lumineuxNouveaux produits, conclusions importantes, sujets tech
blueprintPapier bleu, lignes blanches, annotations jaunesExpliquer des structures, des architectures, comment assembler
whiteboardTableau blanc, marqueur, cadres dessinés à la mainEnseignant dessinant en expliquant, processus et causes/conséquences
chalkTableau vert foncé, lignes de craie, cadre en boisTableau en classe, expliquer des problèmes, formules, étapes
neonNuit violet foncé, lignes lumineuses, grille de perspectiveTech, jeux, musique électronique
terminalFond noir, texte vert, police à chasse fixe, curseur clignotantCode, ligne de commande, outils de développement
paperPapier beige, grand titre avec empattements, rougeCritique, lecture, sujets humanistes
inkPapier de riz, montagnes lointaines, sceau rougeCulture traditionnelle, poésie, histoire
boldNoir et blanc en gras, coupes franches, un rougePoints de vue, slogans, classements

Les aperçus sont dans SKILL/assets/themes.jpg. Si l'utilisateur veut d'autres couleurs, utilisez colors.

Mises en page

Chaque scène en choisit une, ou vous en dessinez une. Une scène ne raconte qu'une seule chose.

layoutQuand l'utiliserObligatoireNon écrit par défautLimites
customÉléments visibles du sujet : objets, processus, structuresmodule, secondscues, dataVoir references/custom-scenes.md
titleDébuttitlesubtitle, kickerTitre max 12 caractères
barsComparer des taillesitems (2 à 6 éléments, chaque label et value numérique)title, unit (suit chaque nombre), highlight (numéro de la barre à mettre en valeur, 1-indexé ; par défaut la plus haute)label max 8 caractères
stepsÉtapes successives, processusitems (2 à 5 étapes)titleChaque étape max 12 caractères
compareComparaison de deux chosesleft, right (chacun avec title et 1 à 4 items)titleChaque item max 12 caractères
numberUne quantité réelle, une fois par vidéovalueunit, label, notevalue écrit comme "25", "80%", "1,280"
statementUne phrase à retenir, max une fois par vidéotexthighlight (mot à colorer dans text)24 caractères max
bulletsPlusieurs points parallèles, max une fois par vidéoitems (2 à 5 lignes de texte)titleChaque ligne max 18 caractères
quoteCitation réelletextby40 caractères max
endFintitlesubtitle, cta (texte du bouton)Titre max 14 caractères
  • unit fait partie du nombre, écrivez-le si nécessaire. Le label de number n'est écrit que si le nombre et l'unité ne suffisent pas à identifier la quantité.
  • Chaque mise en page peut ajouter say (sous-titre) et seconds (durée fixe de cette scène).

Si l'utilisateur fournit des séquences vidéo (prises de vue réelles, captures d'écran, vidéos existantes), il existe également un type clip : insérer un extrait de la séquence et le mélanger avec les mises en page ci-dessus. Une vidéo entièrement composée de clip est un montage. Syntaxe : { "layout": "clip", "file": "素材/采访.mp4", "from": 12.4, "to": 18 }. Comment visualiser la séquence et déterminer quel extrait prélever, voir references/editing.md.

Pour aller plus loin

BesoinLire
Dessiner une scène personnalisée : objet, processus, structure (nécessaire pour chaque vidéo)references/custom-scenes.md
L'utilisateur veut une ambiance, une histoire, une scène, des personnages, ou la vidéo entière est conçue sur mesurereferences/film.md (vous écrivez comment chaque image est dessinée, le script gère les plans, la musique, la production et l'auto-vérification ; nécessite de voir les images)
Tous les champs, changer les couleurs, les polices, fixer la durée d'une scènereferences/video-json.md
Ajouter une voix (le doublage doit être fourni par l'utilisateur via TTS ou enregistrement), utiliser son propre fichier de musiquereferences/voice.md, references/video-json.md
L'utilisateur fournit des séquences vidéo à intégrer, ou veut monter une vidéo existantereferences/editing.md
L'utilisateur veut continuer le montage dans Final Cut Pro ou CapCut (ajouter --project à la commande de production)references/editing.md
Les thèmes et packs de style existants ne conviennent pas, il faut un tout nouvel ensemblereferences/style-packs.md (écrire un pack de style, nécessite d'écrire des centaines de lignes de code de scène et de les modifier visuellement, assurez-vous d'abord de pouvoir le faire)
Échec d'installation, polices en carrés, erreur ffmpegreferences/troubleshooting.md
L'utilisateur demande explicitement des scènes 3D, des paysages naturels à plein écran que le canevas ne peut pas dessinerreferences/pipelines.md (se référer aux pipelines de production, nécessite d'écrire du code, assurez-vous d'abord de pouvoir le faire)
L'utilisateur a Blender, GarageBand, ou une clé API pour Doubao Voice, et veut un rendu réaliste, des musiques d'instruments réels, des voix naturellesreferences/external-tools.md (aide d'outils externes, pour les modèles puissants, assurez-vous d'abord de pouvoir le faire)

Ce que cette compétence ne peut pas faire : générer des images de personnes réelles ou de prises de vue réelles à partir de rien (les images réelles ne peuvent être que celles fournies par l'utilisateur) ; effectuer des retouches avancées comme l'étalonnage ou le détourage (exporter le projet vers un logiciel de montage). Si ces besoins se présentent, informez-en honnêtement l'utilisateur.

Skills associés