CommunityImagegithub.com

FilmForge Contrôle d'Image

Inspecte chaque image à pleine taille par rapport aux fiches personnages et au registre de continuité, mesure les règles de couleur, la palette et l'exposition à l'aide d'outils, la note selon neuf critères et décide : accepter, corriger dans le code (en nommant le module et les paramètres exacts) ou repeindre (avec la cause racine et l'invite corrigée complète). Utilisez cette compétence lorsque des peintures, des images fixes, des images clés, des fiches personnages ou des pages de livre reviennent d'un modèle d'image, ou lorsque l'utilisateur demande si...

Qu'est-ce que FilmForge Contrôle d'Image ?

Cette compétence automatisée pour les agents IA (comme Claude Code, Cursor, Codex) fournit un processus d'assurance qualité rigoureux pour la production cinématographique générée par IA. Elle analyse chaque image à pleine résolution, compare visages et costumes aux fiches personnages, mesure la palette et l'exposition par rapport au script couleur, puis note l'image selon neuf critères (identité, anatomie, échelle, style, couleur, continuité, narration, composition, propreté). Le verdict attribué est l'un des trois suivants : accepter, corriger dans le code (via des modules comme `grade.py` ou `fix_s22.py`) ou repeindre (facturant 2,75 crédits avec une invite corrigée). La compétence génère des entrées dans un fichier `qa.yaml`, reconstruit la planche contact avec des badges, et assure qu'aucune image n'est acceptée sur la base d'une vignette seule. Elle inclut des règles strictes pour éviter les corrections coûteuses inutiles et des exemples concrets de productions réelles.

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

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

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 FilmForge Contrôle d'Image ?

Rien n'entre dans le film sur une vignette. Chaque peinture est lue à pleine taille par rapport à ses fiches, mesurée par les outils, notée et se voit attribuer l'un des trois verdicts suivants. Le verdict indique toujours ce qui se passe ensuite et son coût : accepter (gratuit), corriger dans le code (gratuit, avec l'appel exact) ou repeindre (2,75 crédits, avec l'invite corrigée).

Chemins : les dossiers 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.

Procédure

  1. Planche contact du lot, pour le voir comme une séquence (les voisins se coupent-ils ensemble ?) : python3 scripts/contact_sheet.py build art/film --shotlist shotlist.yaml --out out/contact_sheet.jpg
  2. Vue complète de chaque peinture (lire l'image elle-même, pas la planche).
  3. Recadrages à 100 % de ce qui compte : visages, mains, le sujet critique pour l'échelle, tout ce qui est petit. python3 scripts/contact_sheet.py zoom art/film/s03_x.png --out-dir out/zoom --grid 2x2 ou --box x0,y0,x1,y1. Un lecteur d'images réduit les grandes images ; les recadrages montrent les pixels réels.
  4. Mesurer les règles de couleur, la palette et l'exposition : python3 scripts/ledger.py palette continuity.yaml --paintings art/film --shotlist shotlist.yaml Il signale la palette de chaque peinture, sa distance (delta E) par rapport au script couleur de la scène, la part de chaque règle de couleur interdite dans le cadre et les sauts d'exposition en stops entre les voisins d'une même scène.
  5. Noter selon la grille (ci-dessous) : neuf critères, de 0 à 2.
  6. Décider le verdict selon les règles ci-dessous.
  7. Écrire l'entrée dans qa.yaml (format ci-dessous), puis reconstruire la planche contact avec --qa qa.yaml pour les badges.
  8. Rapporter : le décompte des verdicts, chaque correction et chaque repeint en une ligne, les crédits qu'un repeint coûterait.

Grille d'évaluation (templates/qa-rubric.md contient les ancres de score)

CritèreCe que vous vérifiez
identitévisages et marqueurs de costume par rapport aux fiches
anatomiemains, yeux, membres sur le sujet principal
échellechaque verrou d'échelle et chaque décompte (mesurer les pixels dans les recadrages)
stylele verrou d'apparence : médium, trait, couleur, texture
couleurle script couleur et les règles interdites (depuis ledger.py palette) et l'exposition par rapport aux voisins
continuitéchaque accessoire et état que le registre liste pour ce plan, et rien en dehors de sa portée
narrationle battement se lit en deux secondes
compositioncadrage tel que listé, l'œil atterrit sur le sujet, la zone de texte calme
propretépas de texte peint, filigrane, bavure ou figure parasite

Mesurer l'échelle : dans un recadrage, mesurer le sujet et sa référence en pixels et comparer le rapport avec le verrou d'échelle. L'exemple du moteur : la phalène couvre 20 px sur un doigt de 60 px, alors que son verrou indique une main entière ouverte (120 px ou plus à ce cadrage) : un sixième de sa taille, échelle 0, repeindre.

Règles de verdict

  • accepter : aucun critère à 0, total de 15 sur 18 ou plus, aucune violation mesurée.
  • corriger : chaque défaut a une correction dans le code (tableau ci-dessous) et rien à 0 sur identité, échelle ou narration.
  • repeindre : identité, échelle ou narration à 0 ; anatomie à 0 sur le sujet principal ; style à 0 ; ou trois défauts ou plus.

Corriger dans le code avant les crédits (modules de painted-film-pipeline)

DéfautModule et appel
un objet dans une teinte erronée (une écharpe qui fait passer un personnage secondaire pour le héros)grade.py IN OUT recolor:x0:y0:x1:y1:lo:hi:new_hue:sat
une couleur interdite qui fuit (du bleu avant la fin)grade.py IN OUT blue:0.3 (tire la bande vers l'argent ; keep=0.3) ou recolor vers une teinte autorisée
une figure parasite dans une zone propreun patch provenant d'une région propre décalée (le motif fix_s22.py)
mauvais recadrage, tangente, mauvaise marge hautele crop: [x0, y0, x1, y1] du plan en pixels source
exposition ou contraste décalé par rapport aux voisinsautomatique : la correspondance de niveau mappe la luminance aux 0,5 et 99,5 centiles de chaque plan vers des cibles partagées
détail douxautomatique : suréchantillonnage Lanczos 4K avec netteté uniquement sur les bords
une image sans viemouvement dans le code (forge-motion), jamais un repeint

Chaque correction écrit un nouveau fichier (_g), est remesurée et reçoit done: true uniquement lorsque la mesure passe. Détails et significations des paramètres : references/code-fixes.md.

Repeindre : diagnostiquer, puis corriger

Nommer la cause comme un emplacement d'invite ou une référence : « verrou d'échelle manquant dans l'emplacement 4 », « fiche attachée dans le mauvais ordre », « apparence paraphrasée ». Écrire l'invite corrigée en entier, vérifier le budget et la transmettre à forge-painter. Si la cause affecterait d'autres plans (un verrou manquant dans le registre), le dire : il s'agit d'un changement de moteur, pas d'un seul repeint.

Format d'entrée qa.yaml

  - shot: s02
    file: art/film/s02_last_match.png
    checked: [cadre complet, zoom 2x2 à 100 %, palette ledger]
    scores: {identité: 1, anatomie: 2, échelle: 2, style: 2, couleur: 0, continuité: 2, narration: 2, composition: 2, propreté: 2}
    total: 15
    max: 18
    measured: {no_gold_pct: 4.4, script_dE: 5}
    verdict: corriger
    notes: Une lueur dorée de l'allumette couvre 4,4 % du cadre (la règle autorise 2 % avant s05) et teinte la capuche.
    fix:
      problem: lueur dorée, teinte 38 à 58
      module: painted-film-pipeline pipeline/grade.py (recolor)
      call: python grade.py s02_last_match.png s02_last_match_g.png recolor:250:250:700:650:38:58:22:0.8
      params: {box: [250, 250, 700, 650], hue_band: [38, 58], new_hue: 22, sat: 0.8}
      why_not_repaint: une bande de teinte dans une boîte
      verify: ledger.py palette montre no-gold sous 2,0 % sur le fichier _g ; la capuche se lit rouge à 100 %
      done: false

Une entrée de repeint a repaint: {cause, prompt_changes, credits, corrected_prompt} au lieu de fix.

Résultats concrets de productions réelles

  • Échelle (repeint) : cinq images Simorgh ont dessiné la huppe trop petite à côté de la fille (s21, s25, s33, s36, s39). Le code ne peut pas agrandir un sujet peint de manière convaincante ; elles ont été programmées pour un repeint à sa vraie taille, et la cause (aucun rapport d'échelle dans les invites ou sur les fiches) est devenue une règle moteur.
  • Couleur (corriger) : du bleu s'est glissé dans les images avant la fin ; un tirage de bande vers l'argent les a corrigées dans le code.
  • Identité par couleur (corriger) : l'écharpe d'un personnage secondaire correspondait à la couleur du héros, donc il se lisait comme elle ; un recolor de bande de teinte à l'intérieur d'une boîte l'a déplacée.
  • Figure parasite (corriger) : une figure peinte supplémentaire dans une image calme a été supprimée par patch à partir de régions propres décalées.
  • La porte du livre d'images : les visages correspondent aux références ; le bon aspect et les couleurs du script couleur ; la zone de texte vraiment calme ; le motif de la page présent ; cela vous fait ressentir la ligne de texte qu'il accompagne. Un échec, refait.

Ne jamais

  • Accepter à partir d'une vignette ou d'une planche contact seule.
  • Repeindre ce que le code peut corriger, ou « corriger » dans le code ce qui rend l'histoire incorrecte.
  • Laisser passer une peinture dont la règle mesurée échoue, même si elle semble correcte.

Liste de vérification de porte (pour le lot)

  • Chaque peinture lue à pleine taille, avec recadrages des visages, mains et sujets critiques pour l'échelle
  • ledger.py palette exécuté ; chaque erreur expliquée dans un verdict
  • Chaque peinture a une entrée qa.yaml avec scores, verdict et action suivante
  • Planche contact reconstruite avec badges et examinée

Références

  • references/code-fixes.md : les paramètres de chaque correction, comment les choisir et comment vérifier

Individual skills in this repo

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

gallowforge/forge-director

FilmForge director: runs an AI film production end to end (story, style lock, score, paintings, frame QA, motion in code, sound, delivery, archive) through stage gates, so no credit is spent before its gate passes. Keeps the production state file (production.yaml) and the credit ledger, prices the plan against the credits, and always names the one next action. Use this skill whenever the user wants to make, plan, budget, continue or check on a short film, painted film, animated story, music...

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