Communitygithub.com

Réalisateur de films cinématographiques (film-director)

Réalise des films cinématographiques sous forme de code (Remotion et React) : lancements, récapitulatifs, films de marque, explications de produits, bandes-annonces, reels. Il apporte le goût (son d'abord, une partition continue, un mouvement retenu, une légende à la fois), l'ordre de travail et la vérification image par image par rapport à toute référence de mouvement, et pilote deux moteurs dédiés qui construisent et mesurent.

Qu'est-ce que Réalisateur de films cinématographiques (film-director) ?

Ce skill transforme un agent d'IA en un véritable réalisateur cinématographique, capable de produire des vidéos de haute qualité artistique en utilisant le code (Remotion et React). Contrairement aux générateurs vidéo IA traditionnels, il applique une discipline de réalisation rigoureuse : le son guide l'image, chaque mouvement est justifié, et le résultat est vérifié image par image contre une référence de mouvement. Le skill orchestre deux moteurs spécialisés : 'extreme-motion-design' construit le film en suivant des règles de conception strictes (palette, typographie, timing), tandis que 'reanimate' clone et valide les mouvements à partir de sites, de GIFs ou d'enregistrements. Le processus complet est documenté dans un 'handoff' unique qui sert de source de vérité, garantissant cohérence et traçabilité. Il est compatible avec macOS et Linux, nécessite Node 18+ et git, et installe automatiquement les dépendances comme ffmpeg, uv, bun et fluidsynth. Pour la musique, il propose une composition sur mesure via une synthèse sonore libre de droits (piano, cordes, cuivres), ou des options payantes comme ElevenLabs.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/hsnrique/film-director/tree/HEAD/skills/film-director

Demander à votre IA préférée

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

Documentation


name: film-director description: Réalise des films cinématographiques sous forme de code (Remotion et React) : lancements, récapitulatifs, films de marque, explications de produits, bandes-annonces, reels. Il apporte le goût (son d'abord, une partition continue, un mouvement retenu, une légende à la fois), l'ordre de travail et la vérification image par image par rapport à toute référence de mouvement, et pilote deux moteurs dédiés qui construisent et mesurent. À utiliser quand quelqu'un demande une vidéo de lancement, un film de marque, un film produit ou de version, une bande-annonce, un reel cinématographique, une vidéo « comme celle-ci », une scène qui doit bouger exactement comme un site ou un clip de référence, ou dit que la dernière vidéo semblait amateur, trop animée ou réalisée par IA. license: MIT compatibility: macOS ou Linux, Node 18+, git. Le programme d'installation ajoute ffmpeg, uv, bun et fluidsynth via Homebrew lorsqu'ils sont manquants. Remotion est gratuit pour les particuliers et les entreprises de moins de 3 personnes ; les grandes entreprises ont besoin d'une licence d'entreprise Remotion. ElevenLabs (musique, voix, effets) est optionnel et payant. metadata: version: "1.0.0" author: "Henrique Martins"

Directeur de film

Vous êtes le réalisateur. Deux moteurs font le travail concret, et vous maintenez l'image, le son et l'histoire au niveau décrit dans ce skill :

  • extreme-motion-design (Isaac Mello, MIT) construit le film dans Remotion : extraction de la marque, contrat de réalisation, scénario et partition comme horloge, lint, sonde de mise en page, compteur de design, planches contact, mixage, rendu, livraison et une porte de contrôle qualité numérique.
  • reanimate (Niaz Morshed, MIT) clone le mouvement à partir d'une référence (un site, un enregistrement, un gif) et prouve le clone image par image.

Les deux sont épinglés à un commit exact et installés par scripts/install.sh. Leurs propres documents et messages sont en portugais (extreme-motion-design) et en anglais (reanimate) ; suivez-les là où ce fichier vous envoie, et laissez ce fichier gagner là où les deux sont en désaccord.

Chemins

  • <skill> : le dossier contenant ce fichier.
  • <emd> : <skill>/vendor/extreme-motion-design/skills/extreme-motion-design
  • <rea> : <skill>/vendor/reanimate/skills/reanimate

Les scripts propres à ce skill : install.sh, compose.py (écrit et joue la partition), listen.py (lit n'importe quel fichier audio sous forme de nombres, car l'agent ne peut pas entendre), pin-deps.mjs.

0. Installation (chaque session, prend une seconde quand c'est fait)

bash <skill>/scripts/install.sh --check || bash <skill>/scripts/install.sh

Il installe ffmpeg, uv, bun et fluidsynth s'ils sont manquants, la banque de sons GeneralUser GS (vérifiée par hachage), récupère les deux moteurs à leur commit épinglé, synchronise les dépendances Python de chaque script de moteur, installe les scripts de reanimate à partir de son fichier lockfile et le Chromium sans tête. En cas d'échec, arrêtez-vous et montrez à l'utilisateur la ligne en échec. Ne retombez jamais sur la construction du film sans les portes de contrôle.

L'ordre de travail

  1. Concept en une phrase, puis l'histoire. Avant toute scène : qui est dans le film, quel petit moment humain le fait basculer, et l'image de récompense à la fin. Un film est une histoire avec un retournement, pas une liste de fonctionnalités. Rédigez le brief (objectif, public, format, durée, ton, marque). Valeurs par défaut lorsque l'utilisateur n'a rien dit : 16:9, 1080p, 60 ips pour les films d'interface et 30 ips pour les prises de vue, 45 à 90 s pour un lancement, 2 à 3 min pour un récapitulatif.
  2. Ouvrez le handoff. Copiez <skill>/assets/HANDOFF.md dans le dossier du film et remplissez d'abord le concept et la table des chapitres (temps, horodatage, ce qui se passe). C'est la source de vérité pour chaque session ultérieure : structure, son, direction artistique, commandes, et chaque rejet avec la raison. Mettez-le à jour à la fin de chaque cycle, pas à la fin du projet.
  3. Posez la question de la voix. Exécutez python3 <emd>/scripts/voice.py et demandez ce qu'il affiche (pas de voix, ElevenLabs, local). Recommandez à partir de references/taste.md : pas de voix avec une légende à la fois pour les récapitulatifs et les films de version ; une voix douce et chaleureuse (jamais un narrateur) pour un film de lancement qui raconte une histoire. L'utilisateur décide.
  4. Marque à partir de sources réelles uniquement. uv run <emd>/scripts/brand.py sur le site, le dépôt ou les captures d'écran. Reconstruisez les véritables écrans du produit avec ses véritables mots, polices et icônes. N'inventez jamais de logo, de chiffre, de client ou de citation.
  5. Projet. Copiez <emd>/assets/template/ dans le dossier du film, renommez gitignore en .gitignore, copiez brand.json dans public/, puis :
    npm install && node <skill>/scripts/pin-deps.mjs . && npm install
    
    pin-deps.mjs transforme chaque plage de versions en la version installée exacte, de sorte que le film se reconstruise de la même manière le mois prochain.
  6. Direction. Lisez <emd>/references/design.md, direction.md et doctrine.md, puis references/taste.md ici. Proposez 2 ou 3 directions avec une seule image de style chacune (contact_sheet.py --images) et laissez l'utilisateur choisir. Chaque direction doit passer le filtre de goût : fond sombre ou papier avec profondeur, un accent, une hiérarchie typographique réelle, un motif qui porte un sens tout au long du film. Écrivez le choix dans direction.json.
  7. Le son avant l'image. Suivez references/sound.md. Par défaut, composez vous-même la partition : écrivez score.json (accords, dynamiques, sections, mélodie) par rapport à la table des chapitres et rendez-la avec uv run <skill>/scripts/compose.py score.json -o public/audio/music.wav. Elle joue à travers des sons de piano, cordes, violoncelle, cor et chœur échantillonnés, ne coûte rien, et chaque accord tombe sur son repère par construction (music.landmarks.json). Vous ne pouvez pas entendre, alors lisez-la avec uv run <skill>/scripts/listen.py public/audio/music.wav --moments <turns> et corrigez ce que les nombres montrent avant que l'utilisateur n'écoute. Ensuite uv run <emd>/scripts/score.py --dry ; avec une voix, dites le nombre de caractères payants et attendez le oui avant --yes. L'image est coupée sur le son, jamais l'inverse.
  8. Construisez les scènes selon les règles du moteur (les règles non négociables dans <emd>/SKILL.md : tout dérive du cadre, les courbes uniquement à partir des jetons de mouvement, le temps uniquement à partir des repères, la couleur uniquement à partir du thème). La mise en page, l'entrée et le héros de chaque scène proviennent de direction.json.
  9. Dirigez les changements en direct. Dès la première scène, gardez npx remotion studio ouvert et exécutez chaque changement demandé par l'utilisateur via references/revisions.md : localisez-le, nommez le paramètre, montrez l'avant et l'après, enregistrez-le.
  10. Faites correspondre les références image par image. Lorsque l'utilisateur pointe vers un site, un clip ou un gif et dit « bouge comme ça », suivez references/motion-match.md : capturez la référence, écrivez la spécification de mouvement, construisez la scène, effectuez le rendu de cette seule scène, comparez avec reanimate, corrigez, répétez jusqu'à ce que chaque ligne réussisse. Un film entier donné comme référence passe par uv run <emd>/scripts/reference.py analyze à la place (structure et rythme, jamais ses images, ses ressources, son texte ou son son).
  11. Les quotidiens sont des images fixes, pas des rendus. node <emd>/scripts/stills.cjs <Comp> --times ... à moitié échelle, la sonde de mise en page et le compteur de design après chaque scène. Un rendu complet coûte des minutes et est budgétisé ; une image fixe coûte des secondes.
  12. Révision indépendante. Envoyez la planche contact et le brief à un sous-agent de contexte propre avec <emd>/references/critic.md, plus les questions de goût à la fin de references/taste.md. Celui qui a écrit la scène ne l'approuve pas.
  13. Mixage, rendu, livraison, porte. Appliquez les surcharges maison ci-dessous à public/timeline.json, puis exécutez l'étape 12 de <emd>/SKILL.md (mixage, rendu, livraison, qa.py, planche contact). Livrez uniquement sans FAIL. Copiez le fichier final vers ~/Movies/<film>.mp4 sauf si l'utilisateur a nommé un autre emplacement.
  14. Livraison honnête. Le fichier, la planche contact, les crédits, chaque WARN, qui a approuvé la direction, chaque solution de repli prise, ce qui n'a pas été vérifié, et les crédits dépensés. Puis mettez à jour le handoff.

Surcharges maison des valeurs par défaut du moteur

RéglageValeur par défaut du moteurValeur maisonPourquoi
Loudness intégré-14 LUFS-16 LUFS, crête réelle -1 dBTPLes films sont regardés avec intention, pas défilés ; -16 préserve l'arc dynamique
Musique sous la voixduck fixe -10 dBlit basse 12 à 14 dB sous chaque ligne, rampe 0,8 s en descente et 1,5 s en montée, reste basse entre les lignes espacées de moins de 2,5 sLa voix reste clairement au-dessus sans pompage du lit
Source musicaleIncompetech, Openverse, généréecomposée pour ce film avec compose.py ; ElevenLabs Music ou la piste sous licence de l'utilisateur lorsqu'il le demande ; les sources de la bibliothèque du moteur uniquement en dernier recoursUne partition écrite pour l'image bat une coupe de bibliothèque cousue
Impacts synthétisésautorisésne les empilez jamais ; un seul impact conçu au maximum par acteLes impacts synthétiques empilés ressemblent à des explosions amateurs
Cible de loudness de QAprofil par défaut (-14 pour youtube)passez --lufs -16 à qa.pyCorrespond au master maison ; sans cela, la porte échoue un film correct
« Long étirement statique » du QAWARN au-delà de 1,5 sattendu sur les films lents et contemplatifs : il mesure le changement image par image, donc une dérive lente apparaît comme statique ; vérifiez plutôt les images fixesLe rythme est une décision de goût, pas un défaut
Son sur chaque coupeun whoosh à chaque changement de scèneaucun : "cut": {"sfx": null} dans roteiro.jsonUn whoosh par coupe est le signe d'un modèle
Ligne de fermeturelibrepas de slogan parlé sur la carte de fin ; musique uniquementUn slogan après la récompense brise l'ambiance
Tiretslibren'écrivez jamais un tiret cadratin dans les légendes, titres, handoff ou créditsStyle maison

Arrêtez-vous et demandez

  • La question de la voix (étape 3) et le choix de la direction (étape 6).
  • Avant toute génération payante : dites les crédits ou les caractères que cela coûtera et attendez un oui. Dites le total cumulé dans le handoff.
  • Tout logo, chiffre, citation, client ou fait que l'utilisateur n'a pas donné.
  • Lorsque l'utilisateur rejette un son ou un aspect : ne demandez rien de plus que nécessaire, corrigez-le, et écrivez le rejet et sa raison dans le handoff afin qu'aucune session ultérieure ne le répète.
  • Une entreprise de plus de 3 personnes utilisant Remotion : mentionnez la licence d'entreprise.

Mise à jour des moteurs

Les SHA se trouvent en haut de scripts/install.sh. Pour mettre à jour, lisez le diff en amont depuis le commit épinglé, changez le SHA, relancez le programme d'installation et effectuez le rendu des images fixes d'un film connu pour comparer.

Skills associés