Community画像github.com

gallowforge/forge-frame-qa

FilmForgeフレーム品質チェック:各絵画をフルサイズでキャラクターシートおよび連続台帳と照合し、ツールを使って色ルール、パレット、露出を測定。9つの基準で評価し、「承認」「コード修正(モジュールと正確なパラメータを指定)」「再描画(根本原因と修正済みプロンプトを完全記載)」のいずれかの判定を下します。このスキルは、画像モデルから絵画、静止画、キーフレーム、キャラクターシート、書籍ページが返ってきたとき、またはユーザーが...の可否を尋ねたときに使用します。

forge-frame-qa とは?

FilmForge Frame QAは、AI生成画像を厳密に品質評価し、自動フィルム制作の最終出力品質を保証するスキルです。各画像をフル解像度でチェックし、キャラクターシートや連続台帳と比較、ツールで色ルール・パレット・露出を測定し、9つの基準(識別、解剖、スケール、スタイル、色、連続性、ストーリー、構図、クリーン)で0~2点のスコアを付けます。判定は「承認(無料)」「コード修正(無料、正確な関数呼び出し付き)」「再描画(2.75クレジット、修正済みプロンプト付き)」の3通り。Sketch、Ledger、Paintなどの画像モデルと連携し、各判定の根拠と次アクションを明確に示します。連絡先シート、ズームクロップ、パレット計測、カラースクリプト比較、露出ジャンプ分析を自動実行。コード修正では具体的なモジュールとパラメータを指定し、再描画では根本原因と修正プロンプトを完全記載。サムネイルのみでの承認や、コード修正で対応可能な問題の再描画は禁止され、測定基準違反は一見問題なくても通過させません。これにより、手動レビューと同等以上の一貫した品質保証を、高速かつ再現性高く実現します。

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

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

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

FilmForge フレーム QA

サムネイルだけでフィルムに採用されることはありません。すべての絵画はフルサイズでシートと照合され、ツールで測定され、スコア付けされ、次の3つの判定のいずれかが下されます。判定は常に次に何が起こり、そのコストがいくらかを示します:承認(無料)、コード修正(無料、正確な呼び出し付き)、再描画(2.75クレジット、修正済みプロンプト付き)。

パス:このスキル内の scripts/、templates/、config/ は、読み込み時に表示されるベースディレクトリ以下のフォルダで、./install.sh によって配置されます。リポジトリのクローンから作業する場合、これらはルートにある tools/、templates/、config/ になります。

手順

  1. コンタクトシート バッチ全体のシーケンス表示(隣接フレームがうまくつながるかを確認): python3 scripts/contact_sheet.py build art/film --shotlist shotlist.yaml --out out/contact_sheet.jpg
  2. フルビュー 各絵画を(シートではなく)画像自体を読む。
  3. 100%クロップ 重要な部分:顔、手、スケールが重要な被写体、小さなもの。 python3 scripts/contact_sheet.py zoom art/film/s03_x.png --out-dir out/zoom --grid 2x2 または --box x0,y0,x1,y1。 画像リーダーは大きな画像をダウンサンプリングするため、クロップで実際のピクセルを確認する。
  4. 測定 色ルール、パレット、露出: python3 scripts/ledger.py palette continuity.yaml --paintings art/film --shotlist shotlist.yaml これにより、各絵画のパレット、シーンのカラースクリプトからの距離(デルタE)、各禁止色ルールがフレームに占める割合、および同一シーン内の隣接フレーム間の露出ジャンプ(ストップ単位)が報告されます。
  5. スコアリング ルーブリック(下記参照):9つの基準、0~2点。
  6. 判定 下記のルールに従って判定。
  7. 書き込み qa.yaml にエントリを記述(下記形式)、その後、バッジ表示のために --qa qa.yaml を付けてコンタクトシートを再構築。
  8. 報告:判定の件数、各修正と再描画を1行で、再描画にかかるクレジット数。

ルーブリック(templates/qa-rubric.md にスコア基準あり)

基準確認内容
identityシートとの比較による顔と衣装のマーカー
anatomy焦点被写体の手、目、手足
scaleすべてのスケールロックとカウント(クロップ内のピクセルを測定)
styleルックロック:媒体、線、色、テクスチャ
colourカラースクリプトと禁止ルール(ledger.py palette から)、および隣接フレームとの露出比較
continuity台帳にこのショット用にリストされているすべての小道具と状態、およびその範囲外のものがないこと
storyビートが2秒で読み取れること
compositionリスト通りのフレーミング、視線が被写体に留まり、テキスト領域が静かであること
clean描かれたテキスト、透かし、スミア、余分な人物がないこと

スケールの測定:クロップ内で、被写体とそのリファレンスをピクセル単位で測定し、スケールロックと比率を比較します。エンジンの例:蛾の大きさが指60pxに対して20pxで、スケールロックでは開いた手全体(そのフレーミングで120px以上)とされている場合:サイズは6分の1、スケール0、再描画。

判定ルール

  • 承認:どの基準も0点でなく、合計が18点中15点以上、かつ測定違反なし。
  • 修正:すべての欠点にコード修正があり(下表)、identity、scale、storyのいずれも0点でないこと。
  • 再描画:identity、scale、storyのいずれかが0点;焦点被写体のanatomyが0点;styleが0点;または3つ以上の欠点がある場合。

クレジット消費前のコード修正(painted-film-pipelineモジュール)

欠点モジュールと呼び出し
オブジェクトの色相が間違っている(サイドキャラクターのスカーフが主人公として読めてしまう)grade.py IN OUT recolor:x0:y0:x1:y1:lo:hi:new_hue:sat
禁止色が混入している(エンディング前の青)grade.py IN OUT blue:0.3(帯域をシルバーに引き寄せる;keep=0.3)または許可された色相への recolor
クリーンエリアに余分な人物ずらしたクリーン領域からのパッチ(fix_s22.pyパターン)
悪いトリミング、タンジェント、ヘッドルームの誤りショットの crop: [x0, y0, x1, y1](ソースピクセル単位)
隣接フレームとの露出またはコントラストのずれ自動:マッチドグレードが各プレートの0.5パーセンタイルと99.5パーセンタイルの輝度を共通のターゲットにマッピング
ディテールの甘さ自動:エッジのみシャープネスを適用したLanczos 4Kアップスケール
命のないフレームコードによるモーション(forge-motion)、再描画はしない

各修正は新しいファイル(_g)を書き出し、再測定され、測定に合格した場合のみ done: true となります。 詳細とパラメータの意味:references/code-fixes.md。

再描画:診断してから修正

原因をプロンプトスロットまたはリファレンスとして特定:「スロット4にスケールロックがない」「シートが間違った順序で添付された」「ルックが言い換えられた」。修正済みプロンプトを完全に書き出し、予算を確認し、forge-painterに渡します。原因が他のショットにも影響する場合(台帳からロックが欠落しているなど)、その旨を伝えます:それはエンジンの変更であり、1回の再描画ではありません。

qa.yaml エントリ形式

  - shot: s02
    file: art/film/s02_last_match.png
    checked: [full frame, zoom 2x2 at 100%, ledger palette]
    scores: {identity: 1, anatomy: 2, scale: 2, style: 2, colour: 0, continuity: 2, story: 2, composition: 2, clean: 2}
    total: 15
    max: 18
    measured: {no_gold_pct: 4.4, script_dE: 5}
    verdict: fix
    notes: A gold glow from the match covers 4.4% of the frame (the rule allows 2% before s05) and tints the hood.
    fix:
      problem: gold glow, hue 38 to 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: one hue band in one box
      verify: ledger.py palette shows no-gold under 2.0% on the _g file; the hood reads red at 100%
      done: false

再描画エントリには、fix の代わりに repaint: {cause, prompt_changes, credits, corrected_prompt} が含まれます。

実際の作品からの作業実績

  • スケール(再描画):5つのSimorghフレームで、ヤツガシラが少女の隣で小さすぎました(s21、s25、s33、s36、s39)。コードで描かれた被写体を説得力を持って拡大することはできません。実際のサイズで再描画するようにスケジュールされ、原因(プロンプトやシートにスケール比がないこと)はエンジンのルールとなりました。
  • 色(修正):エンディング前に青がフレームに紛れ込みました。帯域をシルバーに引き寄せる修正でコード内で修正されました。
  • 色による識別(修正):サイドキャラクターのスカーフが主人公の色と一致していたため、主人公として読めてしまいました。ボックス内の色相帯域の recolour で修正されました。
  • 余分な人物(修正):静かなフレームに描かれた余分な人物が、ずらしたクリーン領域からのパッチで除去されました。
  • 絵本の門:顔はリファレンスと一致。正しいルックとカラースクリプトの色。テキスト領域は非常に静か。ページのモチーフが存在。それが配置されているテキスト行の雰囲気を感じさせる。1つの失敗はやり直し。

絶対にしないこと

  • サムネイルやコンタクトシートだけで承認しない。
  • コードで修正できるものを再描画しない、またはストーリーを間違えるものをコードで「修正」しない。
  • 測定ルールに違反している絵画を、見た目が良くても通過させない。

ゲートチェックリスト(バッチ全体)

  • すべての絵画をフルサイズで読み込み、顔、手、スケールが重要な被写体のクロップを含む
  • ledger.py palette を実行し、すべてのエラーを判定で説明
  • すべての絵画にスコア、判定、次のアクションを含む qa.yaml エントリがある
  • バッジ付きでコンタクトシートを再構築し、確認済み

参考文献

  • references/code-fixes.md:各修正のパラメータ、その選び方、検証方法

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,...

関連スキル