Communitygithub.com

gallowforge/forge-director

FilmForge director : gère une production de film IA de bout en bout (histoire, style, musique, peintures, contrôle des plans, mouvement dans le code, son, livraison, archivage) via des portes d’étape, afin qu’aucun crédit ne soit dépensé avant que sa porte ne soit franchie. Maintient le fichier d’état de la production (production.yaml) et le registre des crédits, chiffre le plan par rapport aux crédits, et indique toujours la prochaine action unique. Utilisez cette compétence chaque fois que l’utilisateur veut créer, planifier, budgétiser, continuer ou vérifier l’avancement d’un court métrage, film peint, histoire animée, musique…

Qu'est-ce que forge-director ?

FilmForge Director (forge-director) est le chef d’orchestre d’une production de film IA de bout en bout, intégré dans l’écosystème Forge. Il orchestre les étapes de production (brief, histoire, style, score, peinture, contrôle des plans, mouvement, son, livraison, rétrospective) en utilisant des « portes d’étape » : aucun crédit n’est dépensé avant que la porte d’une étape ne soit validée. Il maintient un fichier d’état unique (production.yaml), un registre des crédits, et exécute les vérifications via des scripts Python (scripts/production.py, budget.py, ledger.py, etc.). L’utilisateur n’a jamais besoin de décider quoi faire ensuite : le système indique toujours l’action unique à entreprendre. Utile pour les développeurs et créateurs qui veulent planifier, budgétiser ou exécuter une production de film d’animation ou film peint sans dépasser les crédits, avec des règles strictes (histoire d’abord, style verrouillé, musique d’abord, mouvements dans le code, corrections dans le code avant de dépenser des crédits). Prend en charge les interactions via l’outil forge-director et les compétences associées (forge-story, forge-style-lock, forge-painter, forge-motion, forge-sound, forge-deliver). Le flux de travail commence par un brief, se termine par une rétrospective qui met à jour le moteur, et chaque étape est vérifiée par des portes définies.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/gallowforge/filmforge/tree/HEAD/skills/forge-director

Demander à votre IA préférée

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

Documentation

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)

  1. D’abord l’histoire. Un scénario et une liste de plans existent avant qu’un crédit ne soit dépensé.
  2. 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.
  3. D’abord la musique. La partition est générée et mesurée battue par battue, puis chaque coupe est placée dessus.
  4. 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.
  5. 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
ÉtapeCompétencePeut dépenserLa porte passe quand
briefforge-directorrientitre, format, plafond de crédits approuvé par son propriétaire, livrables listés
storyforge-storyrienbible, scénario et liste de plans existent ; la liste de plans se valide ; le plan tient dans les crédits
styleforge-style-lockfiches, planches, 2 à 4 preuves de plansverrouillage de style terminé ; chaque personnage a une fiche ; le registre est cohérent ; fiches et preuves passent la QA ; validé
scoreforge-scorela partition (1 à 2 prises par indicatif)brief rédigé ; partition mesurée ; plan de coupe réalisé ; chaque plan recalé sur la musique
paintforge-painter, forge-frame-qapeintures, par lots de quatrechaque 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
motionforge-motionvidéo seulement si prévuechaque plan a un plan de mouvement ; une prévisualisation avec son existe ; validé
soundforge-soundvoix seulement si prévuela narration correspond à ses plans ; le mix existe
deliverforge-deliverrienlivrables encodés et vérifiés ; archive construite et vérifiée COMPLÈTE ; validé
retroforge-directorrienleç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

  1. Lire l’état. python3 scripts/production.py status production.yaml affiche les étapes, les crédits (disponibles, dépensés, restants, le total du plan) et la porte actuelle, puis NEXT : avec l’action unique et sa compétence.
  2. Faire cette action en chargeant la compétence nommée. Une action à la fois ; la porte vous dit quand une étape est terminée.
  3. 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.
  4. Fermer l’étape. production.py gate jusqu’à 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, puis production.py advance.
  5. 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 scale par personnage dans le registre, une barre d’échelle sur chaque fiche, et ledger.py prompts refuse 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 forbid qui 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 prompts passe 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ômeCorrectif
Crédits épuisés en cours de filmLe 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 ellesL’étape de style est passée trop tôt : relire les preuves à 100 %, resserrer le verrouillage de style, reverrouiller
Les coupes semblent aléatoiresL’é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 cessePas d’entrée de rétrospective, ou son changement dans le moteur n’a jamais été fait
Personne ne sait quoi faire ensuiteExé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 une
  • references/production-state.md : production.yaml champ par champ
  • references/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.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

gallowforge/forge-frame-qa

FilmForge frame QA: inspects every painting at full size against the character sheets and the continuity ledger, measures colour rules, palette and exposure with tools, scores it on a nine-criterion rubric and decides: accept, fix in code (naming the module and the exact parameters), or repaint (with the root cause and the full corrected prompt). Use this skill whenever paintings, stills, keyframes, character sheets or book pages come back from an image model, when the user asks whether...

gallowforge/forge-motion

FilmForge motion: plans each shot's life in code instead of credits (painted holds brought alive with drifting fog, ash, snow, rain, embers, glints, light sweeps, firelight flicker, heat shimmer, shake, lightning, glass cracks, transitions, golden threads, handwritten words and titles), maps every effect to the painted-film-pipeline renderer's exact parameters, applies frame-QA code fixes, exports the edit timeline and renders the preview; decides when paid video is worth its credits. Use...

gallowforge/forge-painter

FilmForge painter: writes every shot's image prompt from the shot list, the character sheets and the style lock, on a fixed twelve-slot order with continuity anchors (handles, anchors, scale locks, props, states, forbidden-colour clauses); keeps the continuity ledger; lints every prompt before a credit is spent; paints in batches of four and hands each batch to frame QA. Use this skill whenever the user wants image prompts for a film's shots or a picture book's pages, storyboard frames,...

gallowforge/forge-style-lock

FilmForge style lock: fixes one image model and setting, one look sentence (or two when the drawing itself carries the story), the palette and colour rules, the line, brush and lens language, the character-sheet specs with scale bars, and the prompt grammar every shot must follow, so every painting in a film or book matches. Use this skill whenever the user starts the visual side of a film, music video or picture book, wants consistent characters or one consistent look across many images,...

Skills associés