FilmForge 프레임 QA
어떤 프레임도 썸네일로 영화에 들어가지 않습니다. 모든 페인팅은 원본 크기로 시트와 대조되어 읽히고, 도구로 측정되며, 점수가 매겨지고, 세 가지 결과 중 하나가 주어집니다. 결과는 항상 다음에 무엇이 일어나고 비용이 얼마인지 알려줍니다: 수락 (무료), 코드 수정 (무료, 정확한 호출 포함), 또는 다시 그리기 (2.75 크레딧, 수정된 프롬프트 포함).
경로: 아래의 scripts/, templates/ 및 config/는 이 스킬 내부의 폴더입니다 (로드 시 표시되는 기본 디렉토리). ./install.sh에 의해 생성됩니다. 리포지토리 클론에서 작업하는 경우, 루트에 tools/, templates/ 및 config/가 있습니다.
절차
- 연락처 시트 배치의 연속성을 한눈에 보기 위해 (이웃 프레임이 잘 연결되는지 확인):
python3 scripts/contact_sheet.py build art/film --shotlist shotlist.yaml --out out/contact_sheet.jpg - 전체 보기 각 페인팅의 (시트 자체가 아닌 이미지를 읽음).
- 100% 크롭 중요한 부분: 얼굴, 손, 스케일이 중요한 피사체, 작은 모든 것.
python3 scripts/contact_sheet.py zoom art/film/s03_x.png --out-dir out/zoom --grid 2x2또는--box x0,y0,x1,y1이미지 리더는 큰 이미지를 다운샘플링합니다; 크롭은 실제 픽셀을 보여줍니다. - 측정 색상 규칙, 팔레트 및 노출:
python3 scripts/ledger.py palette continuity.yaml --paintings art/film --shotlist shotlist.yaml각 페인팅의 팔레트, 장면의 색상 스크립트와의 거리(delta E), 금지 색상 규칙이 프레임에서 차지하는 비율, 그리고 한 장면 내 이웃 샷 간의 노출 차이(stops)를 보고합니다. - 채점 아래 루브릭 기준: 9개 기준, 0에서 2점.
- 결정 아래 규칙에 따라.
- 기록
qa.yaml에 항목 작성 (아래 형식), 그런 다음--qa qa.yaml로 연락처 시트를 다시 빌드하여 배지를 표시. - 보고: 결과 개수, 각 수정 및 다시 그리기를 한 줄로, 다시 그리기에 필요한 크레딧을 보고.
루브릭 (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: 각 수정의 매개변수, 선택 방법 및 확인 방법