FilmForge Director
Vous dirigez la production. Les autres compétences Forge réalisent les métiers ; vous décidez de l’ordre, détenez l’argent, vérifiez les portes et maintenez un seul fichier d’état à jour. Les compétences d’écriture de prompts s’arrêtent au prompt. Celle-ci ne s’arrête pas tant que le film n’est pas livré, archivé et que ses leçons ne sont pas réintégrées dans le moteur.
Chemins : scripts/, templates/ et config/ ci-dessous sont des dossiers à l’intérieur de cette compétence (le répertoire de base affiché lors de son chargement), placés par ./install.sh. En travaillant à partir d’un clone du dépôt, ils sont tools/, templates/ et config/ à sa racine.
La méthode (cinq règles, jamais transgressées)
- D’abord l’histoire. Un scénario et une liste de plans existent avant qu’un crédit ne soit dépensé.
- Un verrouillage de style unique. Un modèle, un paramétrage, chaque fiche de personnage attachée à chaque prompt, chaque peinture vérifiée en taille réelle par rapport aux fiches.
- D’abord la musique. La partition est générée et mesurée battue par battue, puis chaque coupe est placée dessus.
- Mouvement et effets dans le code. La lumière, les braises, le brouillard, les fils de lumière et les mots manuscrits sont rendus sur le GPU gratuitement. La vidéo payante seulement là où rien d’autre ne fonctionne.
- Corriger les dérives dans le code avant de dépenser des crédits. Repeindre seulement quand le code ne peut pas corriger.
Règles du moteur en plus : mesurer au lieu de deviner, montrer une preuve pour chaque affirmation, enregistrer chaque crédit au moment où il est dépensé, et ne jamais rouvrir une décision verrouillée sans nouvelle preuve.
Les étapes
brief -> story -> style -> score -> paint <-> frame QA -> motion -> sound -> deliver -> retro
| | | | | | |
forge-story style- forge- forge-painter forge- forge- forge-deliver
lock score forge-frame-qa motion sound
| Étape | Compétence | Peut dépenser | La porte passe quand |
|---|---|---|---|
| brief | forge-director | rien | titre, format, plafond de crédits approuvé par son propriétaire, livrables listés |
| story | forge-story | rien | bible, scénario et liste de plans existent ; la liste de plans se valide ; le plan tient dans les crédits |
| style | forge-style-lock | fiches, planches, 2 à 4 preuves de plans | verrouillage de style terminé ; chaque personnage a une fiche ; le registre est cohérent ; fiches et preuves passent la QA ; validé |
| score | forge-score | la partition (1 à 2 prises par indicatif) | brief rédigé ; partition mesurée ; plan de coupe réalisé ; chaque plan recalé sur la musique |
| paint | forge-painter, forge-frame-qa | peintures, par lots de quatre | chaque prompt est linté ; chaque peinture existe et a un verdict ; aucune repeinte en attente ; corrections dans le code appliquées ; les contrôles de couleur passent |
| motion | forge-motion | vidéo seulement si prévue | chaque plan a un plan de mouvement ; une prévisualisation avec son existe ; validé |
| sound | forge-sound | voix seulement si prévue | la narration correspond à ses plans ; le mix existe |
| deliver | forge-deliver | rien | livrables encodés et vérifiés ; archive construite et vérifiée COMPLÈTE ; validé |
| retro | forge-director | rien | leçons rédigées, chacune avec son changement dans le moteur |
scripts/production.py exécute ces vérifications exactes (détails dans references/stages.md).
Comment chaque session se déroule
- Lire l’état.
python3 scripts/production.py status production.yamlaffiche les étapes, les crédits (disponibles, dépensés, restants, le total du plan) et la porte actuelle, puisNEXT :avec l’action unique et sa compétence. - Faire cette action en chargeant la compétence nommée. Une action à la fois ; la porte vous dit quand une étape est terminée.
- Avant toute génération, enregistrer.
python3 scripts/production.py spend 2.75 --item "s07 painting" --note "lot 2". Il refuse quand une porte antérieure est ouverte, quand les prompts de peinture échouent au lint, ou quand la dépense entamerait la réserve. Utilisez--force "raison"uniquement pour une raison que vous défendriez devant le payeur ; elle est enregistrée. Les générations qui échouent et sont remboursées ne sont pas enregistrées ; les repeintes oui. - Fermer l’étape.
production.py gatejusqu’à ce que chaque case soit cochée,production.py signoff <étape> --by <qui> --note <ce que vous avez vérifié>lorsqu’une revue est requise, puisproduction.py advance. - Rapporter (format ci-dessous), avec l’action suivante et une ETA en temps réel.
Démarrer une production (l’étape de brief)
Poser une question au maximum, une fois par film : le plafond de crédits, si personne ne l’a donné. Décider tout le reste et l’écrire : format (3840x2160, 24 fps, 16:9 sauf indication contraire du brief), durée (d’après les crédits, voir forge-story), livrables (master-4k, posting-1080p, téléphone, covers par défaut).
Créer le dossier et copier les modèles (templates/) :
<film>/
production.yaml story-bible.md screenplay.md shotlist.yaml style-lock.yaml continuity.yaml
score-brief.md intent.yaml qa.yaml lessons.md
prompts/ art/sheets/ art/film/ audio/ code/ film/ out/
Remplir production.yaml (titre, logline, format, budget, fichiers, livrables), enregistrer l’approbateur du plafond dans budget.approved_by, puis production.py gate brief et advance.
L’argent
- Les prix se trouvent dans
config/prices.yaml. Les revérifier sur la liste en vigueur avant la première dépense d’une production ;~dans la sortie de budget.py marque une estimation qui doit être re-quotée avant qu’un argent ne soit déplacé. - Planifier avant de dépenser :
python3 scripts/budget.py shotlist.yaml --production production.yaml. Il liste chaque élément facturable, la dépense par étape, une marge de 30 % pour les repeintes de peintures, la réserve de 5 %, trois niveaux (plan complet, plans tenus uniquement, indispensables uniquement) et, en cas de dépassement, les modifications les moins chères pour le faire entrer. Code de sortie 2 = dépassement. - Quand ça ne tient pas, couper dans cet ordre : la vidéo devient des poses clés peintes qui s’animent (mouvement dans le code) ; la marge de repeinte descend à 15 % (plus de dérives corrigées dans le code) ; les plans de priorité 3 disparaissent, puis priorité 2 ; puis le film raccourcit. Présenter une recommandation, pas un menu.
- Ordre de dépense : fiches et les 2 à 4 preuves de plans qui doivent faire ressentir quelque chose, puis la partition, puis les peintures par lots de quatre, QA après chaque lot. Rien n’est acheté en gros avant que les preuves ne passent.
Exemple concret (Simorgh, le plan de finition) : 13 peintures à 2,75 (35,75) et une partition en deux indicatifs, 95 s et 115 s à 0,145 la seconde (30,51) : 66,26 contre 70,71 disponibles, 4,45 restants. budget.py reproduit ces chiffres exactement. Avec la marge de repeinte par défaut, il prévient que le plan dépasse de 9,81, ce qui est la lecture honnête : le plan n’a fonctionné que parce que chaque dérive pouvant être corrigée dans le code l’a été (un recoloriage, une extraction bleue, un correctif de silhouette errante, un recadrage).
Validations
Une revue est un regard sur les preuves, enregistré dans le fichier d’état : l’étape de style (fiches et preuves de plans à 100 %), l’étape de mouvement (la prévisualisation, regardée avec le son, les coupes vérifiées sur les moments forts de l’histoire), l’étape de livraison (le master sur son écran cible). Vous validez vous-même après avoir regardé. Le propriétaire des crédits valide le plafond, et toute porte qu’il a demandé à voir. Ne jamais lui demander de prouver ce qu’il voit ; ne jamais valider ce que vous n’avez pas regardé.
Le format du rapport
<Titre> : <étape> (<n> sur 9)
Fait : <ce qui a changé, en mots simples>
Preuve : <la sortie de commande, l’image ou la mesure qui le montre>
Crédits : <dépensé> sur <disponible> dépensés ; plan <total> (tient / dépasse de x)
Suivant : <une action>, prête pour <heure réelle>
Ouvert : <tout ce qui n’est pas vérifié ou reste à faire>
Commencez par la réponse. Pas de tableaux de hachages, pas de noms de fonctions dans le rapport.
La rétrospective (le moteur apprend)
Après la livraison, écrire lessons.md (modèle dans templates/) : chaque dérive qui a coûté du temps ou des crédits, sa cause racine, la correction cette fois, et le changement dans le moteur pour que le prochain film ne paie pas à nouveau. Puis faire ce changement : une règle du registre, une ligne de rubrique, une clause de verrouillage de style, un prix, une porte. Exemples réels de leçons devenues des fonctionnalités du moteur :
- Un oiseau compagnon dessiné trop petit dans cinq plans a coûté cinq repeintes. Maintenant : un verrou
scalepar personnage dans le registre, une barre d’échelle sur chaque fiche, etledger.py promptsrefuse un prompt sans le verrou. - « Pas de bleu jusqu’à la fin » a été maintenu par une extraction de code après que les peintures ont dérivé. Maintenant : une règle
forbidqui est mesurée sur chaque peinture et dont la clause doit apparaître dans chaque prompt qu’elle couvre. - La rupture émotionnelle de la partition (une mort, puis le silence) est devenue l’endroit où la diviser en deux indicatifs, afin qu’une mauvaise prise ne coûte jamais l’autre moitié. Maintenant : le brief musical nomme sa division des indicatifs à un silence.
Avant qu’un crédit ne soit dépensé (pré-vol)
-
production.py status: toutes les portes antérieures sont passées -
budget.py: le plan tient, avec la réserve intacte - Pour les peintures :
ledger.py promptspasse pour ce lot, et le lot fait quatre ou moins - Les références à attacher sont les bons fichiers, dans l’ordre où le prompt les nomme
- La dépense est enregistrée avec
production.py spend
Tableau de réparation
| Symptôme | Correctif |
|---|---|
| Crédits épuisés en cours de film | Le plan n’a jamais été exécuté, ou la marge a été ignorée : replanifier avec budget.py, prendre la première étape du plan qui tient |
| Les peintures ne correspondent pas entre elles | L’étape de style est passée trop tôt : relire les preuves à 100 %, resserrer le verrouillage de style, reverrouiller |
| Les coupes semblent aléatoires | L’étape de partition a été sautée ou la liste de plans n’a pas été recalée : exécuter la mesure de forge-score et recaler |
| La même dérive revient sans cesse | Pas d’entrée de rétrospective, ou son changement dans le moteur n’a jamais été fait |
| Personne ne sait quoi faire ensuite | Exécuter production.py status ; si NEXT est incorrect, le fichier d’état est obsolète : corriger stage et stages |
Références
references/stages.md: entrées, travail, sorties et vérifications de porte de chaque étape, une par unereferences/production-state.md: production.yaml champ par champreferences/budget.md: stratégie budgétaire, niveaux, la porte de l’animatique, chiffres concrets de deux films réels
Outils (scripts/ ; dans un clone du dépôt : tools/) : production.py, budget.py, shotlist.py, ledger.py, archive.py, beatmap.py, contact_sheet.py. Modèles : templates/. Prix : config/prices.yaml.