FilmForge 스타일 잠금 장치 (Style Lock)
개별 생성으로 만들어진 영화는 모든 이미지가 동일한 방식으로 만들어진 경우에만 하나의 영화처럼 보입니다. 즉, 하나의 모델, 하나의 설정, 단어 그대로 붙여넣은 하나의 룩 문장, 모든 프롬프트에 첨부된 각 캐릭터의 시트, 그리고 다른 모든 것에 대한 고정된 순서가 있어야 합니다. 이 스킬은 style-lock.yaml, 캐릭터 시트 및 continuity.yaml의 캐릭터 섹션을 작성한 다음, 페인트 단계가 시작되기 전에 2~4개의 증명 프레임으로 잠금 장치를 검증합니다.
경로: 아래의 scripts/, templates/ 및 config/ 폴더는 이 스킬 내부(로드 시 표시되는 기본 디렉토리)에 있으며, ./install.sh에 의해 배치됩니다. 저장소를 클론하여 작업하는 경우, 해당 폴더는 루트에 있는 tools/, templates/ 및 config/입니다.
1단계. 하나의 모델, 하나의 설정
한 번 선택하고 영화 내에서 절대 혼합하지 마십시오. 페인팅된 영화의 기본값: GPT Image 2.5, 고품질, 2K, 16:9 (그림당 2.75 크레딧), 코드에서 4K로 업스케일. 그림책은 페이지가 작게 보이므로 중간 품질(약 1 크레딧)을 사용할 수 있습니다. 가격표의 model_id와 함께 model: 아래에 기록하십시오.
룩이 결정되지 않은 경우, 동일한 증명 프레임을 두세 가지 후보 룩으로 페인팅(저렴하게)하고 100%에서 눈으로 선택하십시오. 썸네일에서 잠그지 마십시오.
2단계. 룩 문장 (Look sentence)
모든 프롬프트를 단어 그대로 여는 하나의 문장입니다. 매체, 선, 색상, 질감 및 빛을 명명하고 참조를 가리킵니다: "첨부된 시트의 정확한 스타일로". 실제 영화에서 작업된 룩(자세한 내용은 references/looks.md 참조):
수작업으로 그린 2D 애니메이션 장편 영화의 프레임, 첨부된 이미지의 깔끔한 스타일을 정확히 따릅니다: 자신감 있는 잉크 선, 그림자에만 있는 크로스해칭, 평평한 셀 컬러, 표현력 있는 애니메이션 얼굴. 회화적인 질감 없음, 노이즈 없음.
이것은 시모르그(Simorgh)의 잠금 장치입니다. 버리드 소울(Buried Soul)의 그림책은 그림 자체가 이야기를 전달했기 때문에 두 개를 사용했습니다: 살아있는(LIVING) 룩(카툰 살룬 스타일의 브러시-잉크 윤곽선과 보이는 연필 구성, 평평한 그래픽 모양, 레이어드 수채화 및 구아슈, 켈트족 매듭무늬, 빛나는 황금빛 노래 선)과 얼어붙은(FROZEN) 룩(동일한 스타일이지만 자로 규칙 적용: 직선 목판화 선, 회색 해칭, 평평한 중세 원근법, 슬레이트, 재, 뼈; 소녀들만 색상을 유지). 그림의 변화가 이야기의 일부인 경우에만 두 번째 룩을 사용하십시오.
3단계. 회피 꼬리말 (Avoid tail)
모든 프롬프트를 단어 그대로 닫는 한 줄: 모델이 표류하는 대상입니다. 기본 꼬리말:
피해야 할 것: 3D 렌더링, 사실주의, 텍스트, 워터마크, 여분의 손가락, 왜곡된 얼굴. 이 룩이 표류하는 대상(애니메이션, 플라스틱, CGI, 잘못된 매체)만 추가하십시오. 한 샷에 속하는 부정문은 해당 샷의 LOCKS 슬롯으로 이동합니다.
4단계. 팔레트 및 색상 규칙
palette:에 견본 이름을 지정하고 continuity.yaml에 장면별 색상 스크립트(colour.script)를 지정합니다. 이야기의 모든 색상 규칙을 프롬프트 절이 있는 forbid 규칙으로 전환합니다. 해당 절은 규칙이 적용되는 모든 프롬프트에 들어가고, ledger.py palette는 이에 대해 모든 그림을 측정합니다. 예: 시모르그의 불타는 하늘은 샷 41까지 파란색을 허용하지 않았습니다. 이전의 모든 프롬프트에는 "파란색 절대 금지"가 포함되었습니다.
5단계. 렌즈 및 구성 언어
페인팅된 영화의 경우: 그림은 필름 프레임처럼 유지되므로 구성이 카메라 역할을 합니다. 렌즈 느낌(초점 거리, 높이), 절대 발생하지 않는 상황(어안 렌즈 없음, 틸트 없음), 구성 규칙(피사체는 3분할 법칙, 대사가 있는 샷의 경우 텍스트를 위한 조용한 영역)을 작성하십시오.
6단계. 캐릭터 시트 (templates/character-sheet.md)
캐릭터당 하나의 시트, 해당 캐릭터가 등장하는 모든 프롬프트에 첨부됩니다.
- 정면 패널 (앞, 뒤, 얼굴), 평평하고 그림자 없는 빛, 평범한 중간 회색 배경으로 조명이 베이킹되지 않도록 합니다. 양식화된 캐릭터를 위한 얼굴 및 손 연구; 표정: 중립, 핵심 감정, 그 반대.
- 스케일 막대: 캐릭터가 실제 상대적 크기로 프레임을 공유하는 모든 캐릭터 또는 소품 옆에 그려집니다. 이것은 시모르그의 다섯 프레임에서 너무 작게 그려진 후투티의 교훈입니다. 스케일은 시트와 원장에 존재해야 하며, 추측에 의존해서는 안 됩니다.
- 비인간 캐릭터는 재료 시트를 얻습니다: 무엇으로 만들어졌는지, 잘못된 재료 목록("숯, 털이 아닌, 유리가 아닌"), 어떻게 움직이는지.
- 모든 샷 프롬프트에는 재조명 절이 포함됩니다: "이 장면에 맞게 재조명; 시트의 평평한 빛을 복사하지 마십시오".
7단계. 핸들, 앵커, 스케일 잠금
각 캐릭터에 대해 continuity.yaml에 다음을 작성합니다: 핸들(모든 프롬프트가 사용하는 시각적 이름: "빨간 니트 두건을 쓴 소녀"), 앵커(한 문장으로 된 전체 룩, 단어 그대로 붙여넣기), 스케일 잠금(항상 근처에 있는 것에 대한 비율), 그리고 캐릭터 이름을 names:에 추가합니다. 이름은 절대 프롬프트에 들어가지 않습니다. 모델은 이름을 텍스트로 칠할 수 있으며 이름은 시각적 정보를 전달하지 않기 때문입니다.
8단계. 프롬프트 문법 (모든 그림, 이 순서)
| # | 슬롯 | 내용 |
|---|---|---|
| 1 | LOOK | 룩 문장, 단어 그대로 |
| 2 | REFERENCES | 각 첨부 파일이 제어하는 대상, 첨부 순서; 재조명 절 |
| 3 | SHOT | 프레이밍, 카메라 높이, 렌즈 느낌, 누가 어느 3분할에 앉는지 |
| 4 | SUBJECT AND SCALE | 각 캐릭터의 핸들, 앵커 및 스케일 잠금; 비율로서의 크기; 개수("올빼미 정확히 한 마리") |
| 5 | MOMENT | 비트의 단일 순간; 얼굴과 몸에 표현된 감정 |
| 6 | SETTING | 장소, 날씨, 시간, 배경에 있는 것 |
| 7 | LIGHT | 방향, 품질, 온도 및 세계의 광원 |
| 8 | COLOUR | 장면의 색상 스크립트 단어 |
| 9 | TEXT AREA | "상단 1/3을 조용하게 유지: 텍스트를 위한 창백한 하늘" (단어가 거기에 있을 때만) |
| 10 | CONTINUITY | 소품 및 상태, 원장에서 단어 그대로 |
| 11 | LOCKS | 금지된 색상 절, 단어 그대로; 샷별 부정문 |
| 12 | AVOID | 회피 꼬리말, 단어 그대로 |
ledger.py prompts는 크레딧이 사용되기 전에 슬롯 1, 4, 10, 11, 12를 기계적으로 확인합니다. 세부 사항 및 전체 예제: references/prompt-grammar.md.
9단계. 잠금 장치 증명
시트, 빈 세트 플레이트, 2~4개의 증명 프레임(사람들이 뭔가를 느끼게 해야 하는 샷)을 페인트합니다. 100%에서 forge-frame-qa를 실행합니다. 지금 시트를 다시 페인트하고 나중에 하지 마십시오. 모든 그림이 결함을 상속받습니다. 그런 다음 production.py signoff style --by <당신> --note "<읽은 내용>".
출력 형식
style-lock.yaml(템플릿): 모델, 룩, default_look, avoid, 문법, 참조, 렌즈, 팔레트, max_chars.prompts/의 시트 및 플레이트당 하나의 프롬프트,art/sheets/의 시트 자체.continuity.yaml: 캐릭터 (handle, anchor, scale), names, color script 및 forbid 규칙.- QA 결과와 함께 증명.
게이트 체크리스트
- 가격표 ID와 함께 기록된 하나의 모델 및 설정
- 룩 문장(들) 및 회피 꼬리말 작성; 둘 다 이름 없음
- 모든 캐릭터: 스케일 막대, 핸들, 앵커, 스케일 잠금이 포함된 시트;
names:에 이름 - 컬러 스크립트 및 모든 색상 규칙을 프롬프트 절이 있는
forbid로 변환 - 시트, 플레이트 및 증명을 100%에서 읽고 승인함
- 서명 완료
수리 표
| 증상 | 수정 |
|---|---|
| 그림이 스타일에서 분리됨 | 룩 문장이 모든 프롬프트에서 단어 그대로 사용되지 않았거나 두 모델이 혼합됨 |
| 샷 사이에 얼굴이 변경됨 | 시트가 첨부되지 않았거나 앵커가 의역됨; 첨부 및 붙여넣기 |
| 캐릭터가 잘못된 크기로 나옴 | 프롬프트에 스케일 잠금이 없거나 시트에 스케일 막대가 없음 |
| 이름이나 단어가 프레임에 칠해져 나타남 | 프롬프트에 이름 또는 인용된 텍스트; 핸들 사용; 텍스트는 코드에 속함 |
| 평평하고 스튜디오 조명 장면 | 시트의 평평한 빛이 복사됨: 재조명 절 추가 |
| 금지된 색상이 스며듦 | LOCKS에 절이 없거나 규칙의 임계값이 너무 느슨함; ledger.py palette로 측정 |
참조
references/prompt-grammar.md: 주석이 추가된 전체 프롬프트와 함께 각 슬롯의 규칙references/looks.md: 실제 제작에서 작업된 룩 및 시트 프롬프트와 새 룩을 작성하는 방법