Community이미지github.com

gallowforge/forge-frame-qa

FilmForge 프레임 QA: 모든 페인팅을 원본 크기로 캐릭터 시트 및 연속성 원장과 대조하여 검사하고, 도구를 사용하여 색상 규칙, 팔레트 및 노출을 측정하며, 9개 기준 루브릭으로 점수를 매겨 '수락', '코드 수정'(모듈 및 정확한 매개변수 명시), 또는 '다시 그리기'(근본 원인과 완전히 수정된 프롬프트 포함) 중 하나를 결정합니다. 이 스킬은 페인팅, 스틸, 키프레임, 캐릭터 시트 또는 책 페이지가 이미지 모델에서 반환될 때 사용하세요.

forge-frame-qa란 무엇인가요?

이 스킬은 FilmForge 파이프라인에서 생성된 모든 프레임의 품질을 보장하는 자동화된 QA 에이전트 역할을 합니다. 각 페인팅을 원본 해상도로 검사하고, 캐릭터 시트와 일치하는지 확인하며, 색상 스크립트 및 금지 색상 규칙과 같은 색상 규칙을 측정하고, 근접 샷 간의 노출 차이를 평가합니다. 평가는 identity, anatomy, scale, style, colour, continuity, story, composition, clean의 9개 기준을 각각 0-2점으로 채점한 후, 총점과 측정된 위반 사항에 따라 'accept'(수락), 'fix'(코드 수정), 'repaint'(다시 그리기)라는 명확한 결과를 제공합니다. 'fix' 결과는 수정할 정확한 모듈과 매개변수를 명시하여 코드를 통한 수정 비용을 최적화하고, 'repaint' 결과는 다시 그리기를 위한 완전히 수정된 프롬프트와 신용 비용(2.75 크레딧)을 제공합니다. Claude Code에서 사용하도록 설계되었으며, 실제 프로덕션의 예시를 포함하여 이 스킬의 효과를 입증합니다.

지원 대상~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

어떤 프레임도 썸네일로 영화에 들어가지 않습니다. 모든 페인팅은 원본 크기로 시트와 대조되어 읽히고, 도구로 측정되며, 점수가 매겨지고, 세 가지 결과 중 하나가 주어집니다. 결과는 항상 다음에 무엇이 일어나고 비용이 얼마인지 알려줍니다: 수락 (무료), 코드 수정 (무료, 정확한 호출 포함), 또는 다시 그리기 (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 각 페인팅의 팔레트, 장면의 색상 스크립트와의 거리(delta E), 금지 색상 규칙이 프레임에서 차지하는 비율, 그리고 한 장면 내 이웃 샷 간의 노출 차이(stops)를 보고합니다.
  5. 채점 아래 루브릭 기준: 9개 기준, 0에서 2점.
  6. 결정 아래 규칙에 따라.
  7. 기록 qa.yaml에 항목 작성 (아래 형식), 그런 다음 --qa qa.yaml로 연락처 시트를 다시 빌드하여 배지를 표시.
  8. 보고: 결과 개수, 각 수정 및 다시 그리기를 한 줄로, 다시 그리기에 필요한 크레딧을 보고.

루브릭 (templates/qa-rubric.md에 점수 기준 있음)

기준확인 사항
identity시트와 대조하여 얼굴 및 의상 마커 확인
anatomy초점 피사체의 손, 눈, 팔다리 확인
scale모든 스케일 잠금 및 개수 확인 (크롭에서 픽셀 측정)
style룩 잠금 확인: 매체, 선, 색상, 질감
colour색상 스크립트 및 금지 규칙 확인 (ledger.py palette에서) 및 이웃과의 노출 확인
continuity원장에 이 샷에 대해 나열된 모든 소품 및 상태 확인, 그리고 그 범위 밖의 것은 없는지 확인
story비트가 2초 안에 읽히는지 확인
composition나열된 대로 프레이밍, 시선이 피사체에 가고, 텍스트 영역이 조용한지 확인
clean그려진 텍스트, 워터마크, 번짐, 또는 떠돌이 인물이 없는지 확인

스케일 측정: 크롭에서 피사체와 그 참조를 픽셀 단위로 측정하고 그 비율을 스케일 잠금과 비교합니다. 엔진의 예: 나방이 60px 손가락 위에서 20px을 차지하는데, 잠금은 전체 펼친 손(해당 프레이밍에서 120px 이상)을 요구하는 경우: 크기의 1/6, 스케일 0, 다시 그리기.

결과 규칙

  • 수락: 어떤 기준도 0점이 없고, 총점 18점 중 15점 이상이며, 측정된 위반 사항이 없음.
  • 수정: 모든 결함에 코드 수정 방법이 있고 (아래 표), identity, scale 또는 story에서 0점이 없음.
  • 다시 그리기: identity, scale 또는 story가 0점; 초점 피사체의 anatomy가 0점; style이 0점; 또는 세 가지 이상의 결함.

크레딧 전 코드 수정 (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에 전달하십시오. 원인이 다른 샷에도 영향을 미치는 경우 (원장에서 잠금이 누락된 경우), 그렇게 말하십시오: 그것은 하나의 다시 그리기가 아닌 엔진 변경입니다.

qa.yaml 항목 형식

  - shot: s02
    file: art/film/s02_last_match.png
    checked: [전체 프레임, 100% 2x2 확대, 원장 팔레트]
    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: 성냥의 금색 빛이 프레임의 4.4%를 덮고 (규칙은 s05 이전에 2%까지 허용) 후드를 물들임.
    fix:
      problem: 금색 빛, 색조 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: 하나의 상자 안에 하나의 색조 대역
      verify: ledger.py palette에서 _g 파일의 금색 비율이 2.0% 미만임을 보여줌; 후드가 100% 빨간색으로 읽힘
      done: false

다시 그리기 항목은 fix 대신 repaint: {cause, prompt_changes, credits, corrected_prompt}를 가집니다.

실제 제작에서 얻은 작업 결과

  • 스케일 (다시 그리기): 다섯 개의 Simorgh 프레임에서 후투티를 소녀 옆에 너무 작게 그렸습니다 (s21, s25, s33, s36, s39). 코드는 그려진 피사체를 설득력 있게 확대할 수 없습니다; 실제 크기로 다시 그리기로 예약되었고, 원인 (프롬프트나 시트에 스케일 비율 없음)이 엔진 규칙이 되었습니다.
  • 색상 (수정): 엔딩 전에 파란색이 프레임에 스며들었습니다; 은색으로 당기는 대역 조정으로 코드에서 수정했습니다.
  • 색상으로 인한 신원 오인 (수정): 조연 캐릭터의 스카프가 주인공의 색상과 일치하여 그녀가 주인공으로 읽혔습니다; 상자 안의 색조 대역 색상 변경으로 이동했습니다.
  • 떠도는 인물 (수정): 조용한 프레임에 추가로 그려진 인물이 이동된 깨끗한 영역에서 패치 아웃되었습니다.
  • 그림책의 관문: 얼굴이 참조와 일치합니다; 올바른 룩과 색상 스크립트 색상; 텍스트 영역이 정말 조용함; 페이지의 모티프가 존재함; 함께 있는 텍스트 줄의 느낌을 전달합니다. 하나 실패, 다시 실행.

절대 하지 말아야 할 것

  • 썸네일이나 연락처 시트만으로 수락하지 마십시오.
  • 코드로 수정할 수 있는 것을 다시 그리지 마십시오, 또는 이야기를 잘못 만드는 것을 코드로 "수정"하지 마십시오.
  • 측정된 규칙을 위반하는 페인팅을, 비록 보기에는 괜찮아 보일지라도 통과시키지 마십시오.

관문 체크리스트 (배치용)

  • 모든 페인팅을 전체 크기로 읽고, 얼굴, 손 및 스케일이 중요한 피사체의 크롭을 확인
  • 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,...

관련 스킬