Communitygithub.com

renoise-ai/renoise-skills

Créez des vidéos promotionnelles pour des produits, marques ou services : analyse des assets utilisateur, recommandation de style et durée, storyboard, et rendu MP4 avec Remotion.

Qu'est-ce que renoise-skills ?

Cette compétence permet à un agent IA de produire des vidéos promotionnelles professionnelles en analysant les assets fournis par l'utilisateur (texte, images, logo, site web) et en déterminant le secteur d'activité, le public cible, le style visuel et la durée optimale. Elle prend en charge deux modes principaux : le mode 'film cinématographique' pour des productions de qualité supérieure avec animations 3D, démonstrations d'interface utilisateur et effets visuels complexes, et le mode 'template' pour des vidéos explicatives rapides ou des publications sur les réseaux sociaux. La compétence gère l'ensemble du flux de travail : de la rédaction du storyboard à la sélection typographique, en passant par le choix de la musique de fond (bibliothèque intégrée, musique utilisateur ou synthèse de secours) et le rendu final au format MP4. Elle inclut également des étapes de vérification de la qualité : détection des coupures brusques, des problèmes audio, des fautes de typographie et des défauts de rendu. L'agent peut aussi produire des formats spécialisés comme des showreels de motion design, des boucles d'animation UI ou des vidéos de comparaison de modèles.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/renoise-ai/renoise-skills/tree/HEAD/skills/promo-video

Demander à votre IA préférée

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

Documentation

Vidéo promotionnelle

Convention de chemin : <skill> désigne le répertoire contenant ce SKILL.md ; scripts/, references/, assets/, templates/ s'y trouvent. Dans les commandes, remplacez <skill>/scripts/… par le chemin absolu de ce répertoire avant d'exécuter.

Valeurs par défaut

  • Format 16:9 (1920×1080, 30 ips). Si l'utilisateur spécifie une taille, suivez-la ; 16:9, 9:16, 1:1, 4:5 sont pris en charge. Pour les plateformes verticales comme TikTok, Xiaohongshu, WeChat Video, Reels, utilisez 9:16.
  • Langue : celle des assets utilisateur. Pas de voix off en phase 1. Si les textes à l'écran sont porteurs d'information, les sous-titres sont désactivés par défaut.
  • Police : ne pas utiliser par défaut DM Sans / SF Pro / PingFang. Suivez references/typography.md pour proposer une sélection typographique basée sur le site officiel ou le guide de marque, avec 3 paires adaptées au ton, illustrées via fonts.py specimen avec le texte réel de la vidéo. Une fois choisie, écrivez-la dans la ligne 5 de la fiche de sélection.
  • Transitions : pas de coupure brutale, pas de silence numérique, vérifiez les détails du texte. Avant la livraison, passez en revue references/detail-pass.md (checklist des points de transition → rn sheet --around → rn qa / rn cuts → typo_lint.py / font_check.py). Les problèmes de 'brutalité', 'problème audio' ou 'manque d'élégance' viennent souvent de là.
  • Logo : fourni par l'utilisateur. Sinon, utilisez le nom de la marque en texte, et ajoutez une clause de non-responsabilité dans brand.disclaimer, comme 'Marque d'exemple, utilisée à des fins de démonstration uniquement'. Les données statistiques non fournies par l'utilisateur sont considérées comme fictives.
  • Musique : priorité à celle de l'utilisateur > bibliothèque intégrée pick_music.py (par défaut, évite les morceaux récents) > bibliothèque open source en ligne > synth_bgm.py en synthèse de secours.

Dépendance : rn (renoise-kit)

L'image et le mixage sont rendus par Remotion. rn gère toutes les étapes mécaniques et sujettes aux erreurs : extraction d'images à la frame près, lecture audio (loudness / beats / tempo), encodage et mastering, vérification de livraison, audit des cuts / silence / pics. render.py est déjà intégré ; en manuel, utilisez rn <commande> --help.

brew install ffmpeg-full && export PATH="$(brew --prefix ffmpeg-full)/bin:$PATH"   # macOS : rn utilise ffmpeg système
apt install ffmpeg                                                                 # Debian / Ubuntu
winget install Gyan.FFmpeg                                                         # Windows (redémarrer le terminal après)
uv tool install "renoise-kit[all]"                                                 # fournit la commande rn

macOS, Linux, Windows : le skill utilise des scripts Python, aucune dépendance bash. python3 ci-dessous devient python (ou py -3) sur Windows ; les chemins / ou \ sont acceptés.

ActionCommande
Voir les assets / prévisualisation / dossier d'images fixesrn sheet <video ou dossier> [--fps 4 | --around temps,.. --span 4 --diff]
Lire la musique : loudness, beats, BPMrn listen bgm.wav --json out/music.json
Luminosité / mouvement / bandes de fréquence / kicks / pics par framern signal <fichier> -o out/signal.png --json out/signal.json
Encodage final, mastering, changement audio, sortie 1080prn finish raw.mp4 -o out.mp4 [--audio mix.wav] [--height 1080]
Vérification livraison (format, loudness, true peak, silence, sauts, pics, black frames, figés, framerate)rn qa out.mp4 [--accept CHECK@seconde]
Liste des cuts + images avant/aprèsrn cuts out.mp4 --sheet out/audit/cuts.jpg
Comparaison avec version précédente / référencern compare nouveau.mp4 ancien.mp4 --cuts
Texte à l'écran (vérification ortho, sous-titres de référence)rn text out.mp4

Sélection du mode et routage du style

Pour chaque vidéo, suivez references/style-router.md pour quatre niveaux de sélection : ① Mode ② Ton visuel ③ Structure narrative ④ Couche d'effets (≤ 2), puis ⑤ Police (typography.md). Écrivez une fiche de sélection en cinq lignes au-dessus du storyboard pour validation par l'utilisateur. En cas de conflit : ordre explicite de l'utilisateur > enregistrement de succès dans la table de routage > valeur par défaut du secteur. Tableau pour ① Mode et extensions :

Besoin utilisateurModeLire d'abordExemple
Vidéo promotionnelle produit/service, lancementFilm cinématographique (par défaut)cinematic.md → motion-craft.mdexamples/youware/, examples/renoise/
Explication rapide, publication socialeTemplatestoryboard.md, styles.mdstoryboard.json
Présentation personnelle, promotion de compteVidéo de marque personnellecinematic.md 'Marque personnelle et avatar pixel'—
Concept hardware (téléphone, appareil)Vidéo concept hardwarecinematic.md 'Produit hardware physique'—
Compilation de plusieurs vidéosCompilation de travauxrecap.md—
Showreel de motion design, générique, identité de chaîneShowreel motion designmotion-craft.mdexamples/motion-reel/
Piloté par la musique, fusion liquide, dataviz, voyage infini, révélation en perspectivePack style 01 (superposé au film cinématographique)style-pack-01.md (pour musique, lancer d'abord audio_features.py)—
Plan séquence, pas de cuts brusques, inspiration de référence ; produit avec flux 'entrée → sortie → fonctionnement continu'Pack style 02 : Relais plan séquence (structure narrative, avec voix off)style-pack-02.md (voix off : lancer d'abord narrate_mimo.py, peut cloner la voix de l'utilisateur)src/cinematic/relay/
Icônes animées, emoji dynamiques, éclairage progressif des nœuds de processusIcônes animées (superposables à tout mode)animated-icons.md (emoji : lancer d'abord fetch_noto_emoji.py)examples/animated-icons/
Vidéo de marque, repositionnement, qualité officielle type Claude, humanisme Apple, pas de démonstration fonctionnellePack style 03 : Échelle conceptuelle · Livre d'échantillons (point → ligne → surface → volume → champ, chaque chapitre une valeur, logo en fin ; 60s, piano)style-pack-03.md (échantillons de glyphes : lancer d'abord glyph_outline.py)examples/youware-ladder/
Lancement de modèle/produit, 'qualité ET preuve de force' ; nom jouable ; faits d'ordre de grandeur officiels (merveilles dénombrables)Pack style 04 : Sonnet · Profondeur 3D (scénario = poème, un vers par section ; HUD specs reprend uniquement les citations officielles ; 680 000 traits alignés en étoile de marque)style-pack-04.md—
Compilation 'N styles', un produit raconté en plusieurs styles, pour choix client ; légendes de variété / sticker éducatif / micro-ville isométrique 2.5DPack style 05 : Bibliothèque de styles commerciaux (template catalogue + légendes + stickers + isométrique ; superposable à tout mode)style-pack-05.md (échantillons Three.js pré-rendus en vidéo)examples/style-catalog/
Dessin à main levée / ligne continue / collage / illustration plate / Bauhaus poster / liquide / verre diffus / matrice de lettres 3D / Cyber HUD / pixel / synthwave, ou compilation complète 15 stylesPack style 06 : Deuxième lot bibliothèque styles commerciaux (11 composants graphiques + catalogue 15 cases + prolongement musique par section / musique synthwave rétro)style-pack-06.md (lire absolument la section sur la zone de filtre et le bounding box three)examples/style-catalog/ (Reel15.tsx)
Court métrage de comparaison 'même sujet' pour lancement de modèle : SVG animé des deux modèles / mini-œuvres côte à côte + champ de saisie YouWare et menu modèle + crochet finalVidéo de comparaison de sortie de modèle (lecteur SVG frame-par-frame, isolation des noms, zoom même ratio, musique par section)svg-compare.md (d'abord confirmer nom officiel du modèle, intensité d'inférence, prompt original et source de génération)examples/svg-compare/
Animation UI niveau Dribbble, une forme continue qui se déforme pour raconter tout le flux produitVidéo mono-forme (par défaut version promotionnelle 16:9 ; version boucle 1:1 optionnelle)one-shape.md (d'abord avoir la liste des états, palette de couleurs, musique, puis écrire le code après avoir disposé la grille temporelle)examples/morph-promo/, examples/morph-loop/

Tous les modes partagent les mêmes principes de conception, couche d'effets, bibliothèque musicale et sonore.

Principes de conception (par défaut)

Toutes les vidéos sont réalisées selon references/design-principles.md : une idée par écran (Apple), grands espaces, utilisation sobre des couleurs et matériaux crédibles ; icônes lucide-react uniformes (épaisseur de ligne 1.75, nœuds fonctionnels avec IconTile ; utiliser lucide-animated pour l'animation, jouer une fois au point de contact) ; emoji uniquement Noto dynamique, pas par défaut, pas de placeholders. Chaque image définit d'abord le point focal et l'émotion, la caméra a une motivation (travelling, transfert de focus, traversée, swing, zoom avant). Le son tombe sur l'image de contact de l'action. Avant livraison, vérifiez la checklist 'Master Review'.

Une fois le contenu construit, ajoutez la 'couche d'effets' (references/motion-craft.md) : utilisez d'abord les assets du site officiel, puis superposez particules, déformations, masques (ex : particules formant le slogan sur une capture d'écran du produit). Ne créez pas de section noire sans lien avec le produit. Décrivez les transitions entre les segments (coupe par correspondance de préférence). L'objet d'ouverture revient à la fin.

Flux de travail

Copiez cette liste et suivez la progression :

- [ ] 1. Analyse des assets : produit, secteur, audience, arguments de vente
- [ ] 2. Confirmation unique : objectif, style, durée, format, langue, musique
- [ ] 2b. Proposition typographique : 3 paires adaptées au ton + police existante de la marque (fonts.py specimen) → choix utilisateur
- [ ] 3. Storyboard (incluant colonnes technique principale et transition) → attente validation utilisateur
- [ ] 4. Création du projet → images d'échantillon → attente validation visuelle utilisateur
- [ ] 5. Musique : pick_music.py sélection et calage sur les beats, timeline réorganisée selon BPM
- [ ] 6. Prévisualisation basse résolution → modifications
- [ ] 6b. Revue de détail : checklist points de transition + 4 images avant/après (rn sheet --around) + rn qa / rn cuts + typo_lint.py (faites-le vous-même avant de montrer la preview à l'utilisateur)
- [ ] 7. Livraison et vérification finale

1. Analyse des assets

Lisez tout le contenu fourni par l'utilisateur (texte, PDF, URL, captures d'écran, logo). Si seulement une URL, suivez references/brand-from-website.md pour extraire logo, polices, couleurs et images HD. Résumez :

  • Le produit, en une phrase de valeur (≤ 20 mots)
  • 3–4 arguments de vente, chacun avec une icône associée
  • Données explicitement fournies par l'utilisateur (utilisez-les uniquement)
  • Actifs visuels existants : captures, logo, couleurs de marque, polices
  • Secteur et audience : selon references/industries.md, obtenez le style, les mouvements de caméra et l'émotion musicale recommandés

2. Confirmation unique

Posez toutes les questions en une fois, uniquement pour les éléments que vous ne pouvez pas déduire. Mettez l'option recommandée en premier avec la mention '(recommandé)'. Utilisez un outil de questions à choix si l'hôte en propose un. Sinon, listez les options numérotées dans un seul message :

  • Objectif : lancement produit, démonstration fonctionnelle, image de marque, levée de fonds, publicité sociale
  • Mode de production : cinématographique (démo interface réelle + 3D + effets sonores, recommandé pour lancement/image de marque) ou template (rapide, pour explication/sociale)
  • Style cinématographique : tech sombre / papier découpé / éditorial clair, selon secteur (voir cinematic.md 'Styles')
  • Style : 3 préréglages selon secteur, chacun avec une description visuelle (préréglages dans references/styles.md)
  • Durée : paliers selon objectif (voir references/storyboard.md), indiquez 'plus la durée est courte, moins il y a de texte par écran'
  • Format : ne demandez que si les assets suggèrent un format vertical ou multi-plateforme, sinon utilisez 16:9
  • Langue
  • Source musicale : bibliothèque intégrée (recommandée, donnez 2–3 descriptions de style candidates) / fournie par l'utilisateur / synthèse

Ne reposez pas les questions déjà clarifiées par l'utilisateur.

2b. Proposition typographique

Selon references/typography.md §1 : déterminer le ton → fonts.py pairs --tone <ton> (si le site officiel utilise une police commerciale, d'abord fonts.py similar "<nom police>") → utilisez le vrai titre, sous-titre, corps de texte, chinois/japonais de la vidéo pour générer l'image de proposition, 3 paires + 1 paire avec la police existante :

python3 <skill>/scripts/fonts.py specimen --pair warm-soft --pair editorial-italic --pair bold-youth --combo <titre marque>+<corps marque> \
  --title "..." --sub "..." --body "..." [--zh "..."] [--ja "..."] --out <répertoire projet>/out/type-proposal.png

Envoyez l'image à l'utilisateur pour choix. Une fois choisi, fonts.py fetch <ids> --to <répertoire projet>, puis après écriture du texte, fonts.py subset <répertoire projet> --text-file copy.txt (pour CJK). Licences selon typography.md §8 : les polices Fontshare ne sont pas subsetées, ni transmises à des tiers avec le projet.

3. Storyboard

Si l'utilisateur fournit un script, découpez-le en scènes. Sinon, écrivez selon la structure de references/storyboard.md. Avant le tableau, écrivez la fiche de sélection (style-router.md), puis validez avec un tableau :

#DuréeType de scèneVisuelTexte à l'écranCaméraTechnique principale / Transition

Ne passez pas au rendu sans validation de l'utilisateur. Après modifications, remettez à jour le tableau et confirmez à nouveau.

4. Création du projet et images d'échantillon

python3 <skill>/scripts/setup_project.py <répertoire projet>

Mode cinématographique : storyboard.json fournit uniquement les informations de marque ; le visuel est dans src/Film.tsx selon references/cinematic.md (référence templates/remotion/examples/youware/). Images d'échantillon avec render.py <répertoire projet> film-stills <numéros de frame...> par section, prévisualisation film-preview, final film (sortie out/film.mp4 et vérification loudness). Les validations storyboard et render.py suivantes concernent le mode template.

  • Écrivez le storyboard validé dans <répertoire projet>/storyboard.json (champs dans storyboard.md).
  • Placez les assets dans public/ : brand/ (logo), fonts/ (téléchargé par fonts.py fetch, incluant fonts.json et LICENSES.md), images/ (captures d'écran), music/. Les chemins dans storyboard.json sont relatifs à public/.
  • Validez et rendez les images d'échantillon (frame milieu de chaque scène) :
python3 <skill>/scripts/check_storyboard.py <répertoire projet>/storyboard.json
python3 <skill>/scripts/render.py <répertoire projet> stills
  • Les ERROR doivent être corrigés. WARN Temps de lecture indique un texte trop long : raccourcissez-le ou prolongez la scène.
  • Vérifiez chaque image dans out/stills/scene-N.png (ou out/stills-sheet.jpg pour vue d'ensemble), selon la checklist design-principles.md (focus, espace, débordement, icônes, contraste). Corrigez, puis montrez les images à l'utilisateur (si l'hôte peut envoyer des fichiers, envoyez les images ; sinon, donnez le chemin).
  • Si l'utilisateur veut comparer des styles, changez style, re-rendez les images d'échantillon, et sauvegardez les anciennes dans out/stills-<style>/ pour comparaison côte à côte.

5. Musique

Selon references/music.md. Quelle que soit la source, définissez music.bpm (lu par rn listen) ; la timeline aligne chaque point de montage sur les temps.

Si une voix off est nécessaire, générez-la avec voiceover.py selon cinematic.md 'Voix off' (MiMo TTS ou say local), la timeline est pilotée par la durée de la voix off. Si le loudness final doit être modifié, refaites uniquement l'audio, pas le rendu vidéo : rn finish out/film.mp4 -o out/film-loud.mp4 --copy-video --lufs -12.

6. Prévisualisation

python3 <skill>/scripts/render.py <répertoire projet> preview

Rendu rapide en demi-résolution. Donnez le chemin de out/preview.mp4 à l'utilisateur, modifiez storyboard.json selon le retour, puis re-rendez.

6b. Revue de détail

Avant de montrer la preview à l'utilisateur, passez en revue selon references/detail-pass.md :

rn sheet out/film-preview.mp4 --around <secondes des points de transition,...> --span 4 -o out/seam.jpg                       # 4 images avant/après chaque montage/démontage/changement de paramètre
rn qa out/film-preview.mp4                                                                             # black frames, figés, silence numérique, sauts de niveau, pics (render.py le lance automatiquement)
rn cuts out/film-preview.mp4 --sheet out/audit/cuts.jpg                                                # liste des cuts, une image avant et après chaque
python3 <skill>/scripts/typo_lint.py storyboard.json                             # ou --ts src/film/*.ts* ; --fix corrige automatiquement le JSON
python3 <skill>/scripts/font_check.py public/fonts                               # axes optiques, glyphes de ponctuation réels

Chaque problème est soit corrigé, soit ajouté dans qa-accept.txt (un par ligne : élément ou élément@seconde, # pour la raison) avec mention 'Intentionnel' dans la note de livraison. Les audits suivants ne le signaleront plus.

7. Livraison

python3 <skill>/scripts/render.py <répertoire projet> final

Produit out/final.mp4, out/cover.png, et si caption existe, out/captions.srt. Les fichiers livrés à l'utilisateur doivent toujours être le résultat de rn finish (render.py le fait automatiquement pour film / final : rendu image seul, mixage audio en WAV séparé, puis synthèse avec rn finish --audio). Les MP4 directs de Remotion peuvent n'afficher que la moitié de la durée sur certains lecteurs et plateformes (problème '38 secondes, ouverture 19 secondes' ; voir references/detail-pass.md 'Encodage livraison'). Pour un rendu 4K manuel :

npx remotion render src/index.ts Film out/film-raw-4k.mp4 --muted                # composition en 3840×2160 ; pour 1080p, ajoutez --scale=2
npx remotion render src/index.ts Film out/mix.wav --codec=wav --config=remotion.audio.config.ts
rn finish out/film-raw-4k.mp4 -o out/<nom>.mp4 --audio out/mix.wav
rn finish out/<nom>.mp4 -o out/<nom>-1080p.mp4 --height 1080 --lufs keep                          # pour WeChat / réseaux sociaux
rn qa out/<nom>.mp4                                                                               # tout fichier livré doit passer cette étape

Vérifiez les résultats de rn qa (FAIL doit être 0 ; corrigez les WARN ou ajoutez-les dans qa-accept.txt) et le fichier out/audit/cuts.jpg, examinez l'image de couverture, puis livrez le chemin du fichier et une brève description (style, durée, source musicale et licence, mentions légales, WARN intentionnels). Après évaluation de l'utilisateur (appréciation, préférence, demande de refonte), enregistrez la combinaison 'Composants → Vidéo → Réaction' dans la table de réputation de style-router.md.

Contraintes de rendu

  • Toutes les animations doivent être dérivées de useCurrentFrame(). Interdiction d'utiliser CSS transition/animation, Framer Motion en lecture automatique, setTimeout, ou Math.random() sans seed, sinon le rendu frame-par-frame tremblera ou sera décalé. GSAP peut être utilisé uniquement en seek par frame.
  • render.py doit s'exécuter en dehors du sandbox de commande (Chrome headless a besoin de lire les cœurs CPU et GPU) : si l'hôte sandboxe les commandes shell, autorisez cette commande selon sa méthode.
  • Le rendu complet (preview, final, film-preview, film) et le premier setup_project.py (npm install) prennent plusieurs minutes, dépassant le timeout d'une commande unique de la plupart des hôtes : exécutez-les en arrière-plan (utilisez la capacité d'arrière-plan de l'hôte, sinon la méthode système avec sortie dans out/render.log : macOS/Linux nohup … > out/render.log 2>&1 &, Windows PowerShell Start-Process python -ArgumentList '…' -RedirectStandardOutput out/render.log -NoNewWindow, puis lisez le log). Ne faites pas de polling fréquent. stills, film-stills (quelques frames) peuvent être exécutés en avant-plan, avec un timeout étendu à 10 minutes.
  • Pas besoin de Node global : setup_project.py cherche Node existant, sinon télécharge la version portable dans ~/.cache/promo-video/node. ffmpeg et rn doivent être installés dans le système (voir 'Dépendance'), setup_project.py avertira s'ils manquent.
  • hero3d est le plus lent à rendre ; gardez 1–2 occurrences par vidéo.
  • Outils courants : rn finish (encodage livraison : fixed_frame_rate_flag=1, BT.709 TV range, moov en avant, −14 LUFS et true peak après encodage ≤ −1 dBTP, --audio remplace par mix WAV, --height 1080 pour version petite) ; rn qa (vérification livraison + black frames / figés / silence numérique / sauts de niveau / pics, render.py l'exécute automatiquement) ; rn cuts --sheet (liste des cuts) ; rn sheet (extraction précise de frames en mosaïque, pour sélection et revue, n'utilisez pas ffmpeg -r 1) ; rn listen (BPM, beats, loudness) ; typo_lint.py (apostrophes courbes, points de suspension, --, ponctuation pleine chasse, séparateurs pendants, caractères isolés) ; font_check.py (axes, caractéristiques, glyphes de ponctuation réels dans les fichiers de polices, avertit si opsz manque) ; fonts.py (catalogue / paires / image de proposition / téléchargement / subset / remplacement polices commerciales, voir typography.md) ; audio_features.py (caractéristiques frame-par-frame de la musique, lues par AudioReactive.tsx) ; pick_music.py (sélection et calage) ; narrate_mimo.py (voix off : timbre MiMo prédéfini ou clonage de quelques secondes de l'utilisateur, sortie timings.json pour piloter l'image, --qa pour vérification).
  • Le shell est zsh : for t in $LIST ne coupe pas sur les espaces ; écrivez la liste directement dans for t in 1 2 3. Pour les heredocs contenant des backticks ou ${}, utilisez <<'EOF', sinon le shell les interprétera.

Extension

  • Nouveau type de scène : écrivez le composant dans src/scenes/, ajoutez-le au type union Scene dans src/types.ts et à SceneBody dans src/Promo.tsx, et mettez à jour SCENE_TYPES et scene_text dans check_storyboard.py.
  • Images : utilisez <Img> ; GIF : installez @remotion/gif ; Lottie : installez @remotion/lottie. Les versions des paquets @remotion/* doivent correspondre exactement à celle de remotion.
  • Compléments IA : pour les personnes et scènes que le client ne peut pas filmer, utilisez Renoise pour générer des keyframes et des images vidéo (installation nécessaire du plugin Renoise et connexion). Le style visuel provient des spécifications du client. Le modèle est choisi selon le skill model-routing de Renoise. Pour chaque lot, lancez d'abord estimate_cost pour le nombre et le coût estimé, soumettez pour accord de l'utilisateur avant de soumettre. Le flux, les règles de prompt et les limites sont dans references/ai-footage.md.

Références

  • references/brand-from-website.md : extraction de texte, couleurs, polices, logo et images produit depuis le site officiel
  • references/design-principles.md : principes de conception, normes d'icônes, mouvements de caméra du réalisateur, son et checklist 'Master Review' (par défaut)
  • references/detail-pass.md : Revue de détail : trois principes (continuité / pas de vide / précision), checklist des points de transition, recettes visuelles et sonores pour les transitions clair→sombre, seuils de détection et exemptions de rn qa, encodage livraison, erreurs passées (à faire avant livraison)
  • references/typography.md : Système de polices : flux de proposition typographique, 11 tons → polices prioritaires, 17 paires (CJK), polices des meilleures publicités vérifiées et alternatives open source testées, les fichiers de polices doivent avoir l'axe opsz, règles de mise en page vidéo et paramètres Display, licences (OFL / ITF FFL / accords fabricants), composants de polices animées (src/cinematic/type/ : VarType, OutlineFill, HandReveal, TrackIn, Decode), checklist de détail et de revue
  • assets/fonts/catalog.json : 99 polices sélectionnées (Google Fonts / Fontshare / releases GitHub, latin + chinois + japonais), 17 paires, table de remplacement des polices commerciales, liste des polices fabricants à télécharger manuellement ; lu par scripts/fonts.py
  • references/cinematic.md : Mode Film cinématographique : styles, composants de scène, restitution d'interface et de rapports de produits, 3D, effets et conception sonore
  • assets/sfx/README.md : catalogue de la bibliothèque d'effets sonores libres de droits commerciaux (clavier, souris, UI, transitions, papier, pages), preview.wav pour écouter
  • assets/music/catalog.json : catalogue de la bibliothèque musicale (émotion, BPM, point d'énergie, licence, URL de téléchargement et sha256) ; les morceaux ne sont pas distribués avec le dépôt, pick_music.py les télécharge depuis Mixkit lors de la première utilisation vers ~/.cache/promo-video/music/ et les vérifie
  • references/industries.md : catégorisation secteur → style, mouvements de caméra, musique et conformité recommandés
  • references/styles.md : 4 préréglages de style et règles de surcharge des couleurs de marque
  • references/camera.md : vocabulaire des mouvements de caméra, correspondance des techniques classiques et règles de rythme
  • references/storyboard.md : champs de storyboard.json, paliers de durée, structure narrative et règles de rédaction
  • references/music.md : bibliothèque intégrée et pick_music.py, extension open source, calage sur BPM, synthèse de secours, loudness et licence
  • references/motion-craft.md : couche d'effets : deux niveaux sobre/expressif, carte des techniques, design des transitions, showreel motion design
  • references/recap.md : compilation de plusieurs vidéos (type carrousel Apple)
  • references/animated-icons.md : icônes animées (lucide-animated 467, vérifiées image par image) et emoji dynamiques Noto (fetch_noto_emoji.py), règles de rythme et licence
  • references/style-router.md : quatre niveaux de sélection et table de routage, table de réputation (lecture/écriture par le skill)
  • references/style-pack-*.md : packs de style superposés (documents lus uniquement par le mode et le pack sélectionné)
  • references/svg-compare.md : comparaison de sorties de modèles (lecteur SVG frame-par-frame, isolation des noms, zoom même ratio)
  • references/one-shape.md : vidéo mono-forme (composants SVG réutilisables StopMotion, ShapeMorph, CrossHair, CurveTo, MotionPath, TimedPin ; ordre des opérations)
  • references/recap.md : structure de compilation (chorégraphie des logos, Cellular Automaton, point focal unique, superposition texte/image/vidéo)
  • references/animated-icons.md : icônes animées et emoji dynamiques
  • references/ai-footage.md : compléments vidéo IA (flux, règles de prompt, estimation des coûts, contenu interdit)

Skills associés