vigen(AI 비디오 제작 보조)
하나의 아이디어나 대본을 AI 비디오 생성 도구에 바로 복사하여 사용할 수 있는 완전한 비디오 제작 패키지로 변환합니다. 영상 제작 경험이 없는 사용자를 대상으로 합니다: 스토리보드, 카메라 워크, 조명, 프롬프트 엔지니어링은 이 스킬이 모두 채워주며, 사용자는 핵심 확인 지점에서만 결정을 내리면 됩니다.
산출물: 프로젝트 디렉토리 아래의 파일 세트 — 스크립트, 앵커 테이블(캐릭터/씬/소품/스타일), 이미지 프롬프트, 비디오 프롬프트, 음성 대사 테이블, 편집 목록; 시리즈 프로젝트는 에피소드 간 스토리 상태 파일을 추가로 생성합니다. 6가지 문제를 해결합니다: AI 느낌 제거, 4계층 일관성, 물리적으로 타당한 동작, 카메라 워크와 트랜지션의 표현력, 완전한 스토리, 모델에서 실행 가능한 구조.
이 파일의 위치 (읽기 전에 이해하세요)
이 파일은 "언제 무엇을 할 것인가"만 기록하며, "구체적으로 어떻게 쓸 것인가"는 기록하지 않습니다. 모든 규칙의 유일한 집은 아래 표에 있으며, 이 파일은 판단 가능한 요점 + 포인터를 제공합니다.
⚠ 요점만으로는 적격한 프롬프트를 생성할 수 없습니다 — 슬롯, 예문, 매개변수는 해당 집을 읽어야 하며, 이 파일의 기억에 의존하여 작업하지 마십시오.
규칙 소속표 (각 규칙의 유일한 집)
| 개념 | 집 |
|---|---|
| 골격 A/B 슬롯, 소품 6가지 판정, L1-L4 등급별 이미지 생성, 참고 이미지 6가지 하드 기준, 참고 이미지 선택 순서, 초 단위 타임라인, 금지 시퀀스, 발성 설명 공식, 검증 규칙 | references/prompt-rules.md |
| 4계층 앵커링, 스타일 바이블, 머리-몸통 분리, 캐릭터 라우팅, 참고 이미지 가중치 규율, 기준 참조법, 최소 참조 세트, 음색 자가 추출, 시리즈 메모리, 무효화 전파 | references/consistency.md |
| 40가지 카메라 워크, 8가지 생성 측 트랜지션 + 5가지 편집 측 트랜지션, 카메라 위치 의미, 세그먼트 길이 구분, 기능 결정표, 피크와 강조 수단, 리듬 템플릿 | references/cinematography.md |
| 16가지 스타일 라이브러리 (Pixar 3D 포함), 컬러 팔레트, 스타일 추출 해몽 카드, 프로젝트 스타일 격리 | references/styles.md |
| AI 느낌 제거, 긴장감 4가지 방법, 표면 2단계와 형태 제약, 왕조 규율, 텍스트 물리화 | references/realism.md |
| 모델 능력, 생성 경로, 참고 이미지 상한, 길이 상한 | references/models.md |
| 7가지 주요 버그 자가 점검, 후크-서스펜스 규율, 스토리 3계층 분리, GATE1.5 규칙, 스토리보드 4칸, 형태 B 커버 규칙 | references/screenwriting-craft.md |
| 플랫폼 숏드라마 프로젝트 입안, 티어/에피소드 수, 40개 트랙, 장르/감정 계약, 유닛 체인, 6가지 증거, 페이월, 처음 3화 | references/short-drama-market.md |
| 콘텐츠 규정 준수 (등록 분류/11개 레드라인/민감어 대체) — '프롬프트 차단'과는 별개 층위 | references/content-compliance.md |
| 네거티브 프롬프트 효력 단말 판정 | references/knowledge-index.md |
| 00-06 파일 구조와 빈칸 슬롯 | assets/templates.md |
중복은 결함입니다: 동일한 규칙이 두 파일에 기록되면 결국 불일치가 발생합니다 — V2.4에서 수정된 "동작 용량은 길이에 따라 확장됨" 규칙이 세 개의 복사본으로 존재하여, 두 개의 오래된 복사본이 V2.8까지 표류했습니다. 중복 발견 시 소속표에 있는 집을 유지하고 나머지는 포인터로 변경합니다.
디렉토리 구조 (Module Map — 필요시에만 읽고, 한 번에全部 읽지 마십시오)
| 파일 | 읽는 시점 |
|---|---|
| references/screenwriting-craft.md | 단계1a 대본 작성 시 필독 |
| references/short-drama-market.md | GATE0에서 '서사 형태=세로 화면 숏드라마'로 판정된 후 한 번에 읽음 (플랫폼/티어/에피소드 수/트랙/장르/감정 계약/유닛 체인/페이월/처음 3화); 영화적 프로젝트는 읽지 않음 |
| references/content-compliance.md | 세로 화면 숏드라마 프로젝트 단계1a 작성 전 + GATE1.5 전 필독 (등록 분류/11개 레드라인/민감어 대체); 영화적 프로젝트는 읽지 않음 |
| references/prompt-rules.md | 이미지/비디오 프롬프트 작성 전 (4가지 기본 인지 포함) |
| references/models.md | 요구 사항 설문 후 모델 결정 시; 모델 변경 시 |
| references/cinematography.md | 스토리보드 설계 시 (카메라 워크/8가지 생성 측 트랜지션+5가지 편집 측 트랜지션/샷 크기/카메라 위치/조명 선택 라이브러리/피크 할당/단일 샷 길이와 리듬/세로 화면 구성 안전 영역/7가지 유형 씬 샷 시퀀스) |
| references/styles.md | 단계1 스타일 결정 시 |
| references/consistency.md | 앵커 테이블(02) 작성 시 및 샷/에피소드 간 일관성 문제 시 |
| references/realism.md | 캐릭터/씬/상황 이미지 프롬프트 작성 시 |
| references/examples.md | 전체 예시가 필요할 때 |
| references/knowledge-index.md | 단계1 스타일/스토리보드 결정 시 먼저 이 인덱스 읽음 — 필요에 따라 확장 지식(FACS 미세 표정/액션 장면/영화급 매개변수/감독 스타일/다중 뷰/감정 방법론/UGC 질감/2D를 실사로 변환)을 찾고, 해당하는 경우에만 해당 파일을 읽음; 액션 프로젝트는 action-combat.md 필독. expressions.md 읽는 시점이 앞당겨짐 (V2.9): 단계5까지 기다리지 않음 — 단계2-4 상황 이미지의 연기 상태 지문/연기 시간 메모 작성 시 읽음 (화면 속 캐릭터 표정과 신체 자세는 이미지 측에서 이미 발생함); 실측 교훈: 연기 규범을 단계5로 미루면, 화면에 연기 시간 메모 작성 시 근거가 없어 자체 연구해야 함 |
| references/content-safety.md | 프롬프트가 심사에서 차단된 후 필독 — 다운그레이드 사다리에서 해결책 찾기 (표현 수준 해결책 라이브러리/구성 수준 패턴 표/2분할 위치 결정). 고위험 소재 작성 전에는 "등록된 패턴에 해당하는지"만 확인 (해당 파일 2·3절 + 프로젝트 03 규범 절) — 반응형 다운그레이드 (V2.9 사용자 판정): 등록되지 않은 콘텐츠는 정상적으로 작성하며, 예방적 감도 저하를 하지 않음 |
| references/execution-pitfalls.md | check.py가 로컬/샌드박스에서 실행되지 않을 때 (6절 처리); 또는 사용자가 실행 측 작업 함정에 대해 물을 때; 일상 링크에 포함되지 않음 |
| assets/templates.md | 프로젝트 파일 생성 시 |
⚠ references/_archive-suspended-claims.md는 중단된 주장 아카이브로, 어느 단계에서도 읽지 마십시오; 그 내용은 규칙 근거로 사용되지 않습니다. ⚠ references/learning-guide.md (자체 결함 목록/사용 경계/자료 흡수 대장) 일상 프로젝트 실행 링크에 포함되지 않음 — ①사용자가 새로운 학습 자료를 제공할 때 ②사용자가 스킬 결함/경계/학습 상태를 물을 때만 읽음; 그때 첫 번째 섹션의 4단계 학습법에 따라 처리하고 대장을 업데이트합니다.
GATE0: 요구 사항 수집 설문 (트리거 후 첫 번째 단계, 모든 생성보다 먼저)
사용자에게 적극적으로 질문하고, 한 번에 모두 열거하며, 사용자 메시지에 이미 설명된 것은 반복해서 묻지 않습니다:
- 콘텐츠 출처: 한 줄 아이디어 / 대략적인 대본 (제가 세부화) / 완전한 대본 (제가 직접 스토리보드)
- 단일 에피소드 또는 멀티 에피소드 시리즈: 멀티 에피소드인 경우 예상 에피소드 수, 각 에피소드가 연속 스토리인지 여부
- 목표 길이: 단일 에피소드/단일 영상의 예상 길이 (15초 / 30초 / 60초 / 더 길게)
- 생성 모델: 이미지 생성 (기본값 gpt-image-2.5) / 비디오 (happyhorse-1.1 / MiniMax-H3 / 기타) — 길이와 참고 이미지 상한 결정, references/models.md를 읽고 사용자에게 기능 목록 제공; 동시에 공급업체/게이트웨이 확인 (동일 모델 이름의 다른 provider는 기능이 다를 수 있음 — 잠글 때 명시, 생성 전 실제 측정 탐지, "기능 실제 측정 우선" 절 참조)
- 화면 비율: 9:16 세로 화면 / 16:9 가로 화면
- 음성: 비디오 모델 기능에 따라 선택 — happyhorse는 자체 음성 사용 (오디오 참고 없음); H3·Seedance·Jimeng 계열은 자체 음성 또는 음색 참조 자체 추출 사용; 엄격한 음색 일관성 필요 또는 직접 출력이 만족스럽지 않을 때만 cosyvoice 대사 싱크 (경로 3선택과 테스트 구간 타임라인은 consistency.md 4절 참조)
- (비디오 모델이 H3일 때 필수 질문) 생성 경로: 플랫폼/App (H3-Context-IR 포함, 예: Toonflow, Conch, 공식 API) → 중국어 골격 A 직접 사용 가능; 직접 H3-Base 연결 → 매핑 테이블에 따라 구조화된 필드 출력 필요. 판정은 prompt-rules.md 생성 경로 판정 절 참조; 경로가 불명확할 때 기본값은 "IR 포함"으로 처리하고 04 파일 헤더에 명시
- 연기 톤: 절제 (기본값 — 함축/드라마/스릴러/정극류, 표정 폭 작음) / 중립 (일상) / 외향 (코미디/과장된 감정 연기) — FACE LOCK 슬롯과 연기 메모의 폭 기준 결정. 실측 교훈: 이 질문을 하지 않으면, 모델이 기본적으로 미소와 과장된 표정을 제공하여 매 구간 수정 필요
- 서사 형태와 플랫폼 (대사 톤과 에피소드 구성 결정): 영화적 (기본값 — 단편/정극/스타일화된 서사) / 세로 화면 숏드라마 (Red Fruit·Douyin 유료 숏드라마). 세로 화면 숏드라마 선택 시 추가 질문:
- 플랫폼 (Red Fruit/Douyin/기타) 및 티어 (표준 90
120초 / 긴 티어 150195초 / 만화 드라마 60~90초) - 총 에피소드 수 (60/80/100 또는 30/40/50, 사용자 정의 가능) 및 페이월 (표준 3단계 / 광고 선행 / 페이월 없음 광고 수익 분배)
- 트랙 (40개 트랙 메뉴, short-drama-market.md 3절 참조) 및 장르 (감정류/스토리류)
- 경찰/사법/국가 안전/민족/종교/외교 관련 여부 (관련 시 등록 범주=1종) → 세로 화면 숏드라마 선택 후 references/short-drama-market.md 읽음, 입안서를 00(시리즈) 또는 01(단일 비디오)에 작성
- 플랫폼 (Red Fruit/Douyin/기타) 및 티어 (표준 90
정렬 의무 (하드 게이트): 사용자의 아이디어/대본을 분석할 때, 모순, 모호함, 핵심 정보 누락 발견 시 (캐릭터 동기 불명, 플롯 갈등, 길이와 콘텐츠 양 불일치, 씬 설명 누락) → 문제 목록을 작성하여 사용자에게 질문하고, 스스로 추측하여 해결하지 않음. 정렬 후에만 단계1a로 진행합니다.
설문 답변과 정렬 결론 (스킬 보완 항목 포함)을 즉시 01의 "GATE0 정렬 기록" 절에 기록 — 파일이 진실이며, 중단 후 복구는 이것에 의존합니다 (효율 의무 절 참조).
프로젝트 구조:
- 단일 비디오 프로젝트: 현재 작업 디렉토리 아래
<프로젝트명>/(01-06 평면 배치) - 시리즈/멀티 에피소드 프로젝트:
<시리즈명>/00_스토리_상태.md(시리즈 레벨, 에피소드 간 공유) +<시리즈명>/ep01/,ep02/… (각 에피소드 자체 01-06) - 동일 이름 디렉토리 이미 존재 → 의도 라우팅 (속편 / 지시된 수정 / 단계 재실행)
워크플로우 (6단계, 대본 우선)
GATE0 설문+정렬 → 단계1a 대본 작성 ─GATE1.5 대본 확정─→ 단계1b 스토리보드+앵커 ─GATE1─→ 단계2-4 이미지 프롬프트 → 단계5 비디오+대사 → 단계6 편집 목록 → (시리즈: 00_스토리_상태 업데이트)
각 단계의 형식은 동일합니다: 무엇을 할 것인가 → 무엇을 읽을 것인가 → 무엇을 산출할 것인가. 규칙 세부 사항은 읽는 파일에 있으며, 여기서는 반복하지 않습니다.
단계1a 대본 작성 (GATE1.5 이전에는 이 작업만 수행)
사용자 아이디어/대략적인 대본을 장면별 대본으로 세분화합니다. references/screenwriting-craft.md 읽음 — 해당 7대 버그 자가 점검 목록을 항목별로 통과하고, 갈등 장면은 먼저 장면 엔진 워크 카드와 업그레이드 6문 (1·4절)을 통과하고, 분할 에피소드 서사는 다시 해당 에피소드의 이행 (1·5절 5항목)을 통과하고, 분할 에피소드/분할 구간 서사는 다시 후크 서스펜스 규율과 지식 공개 상태를 통과; 사용자 자료를 각색할 때 스토리 3계층 분리로 기록 (GATE1.5 제시 시 "사용자 원문"과 "스킬 보충 항목" 구분).
서사 형태=세로 화면 숏드라마인 경우: 추가로 references/short-drama-market.md + references/content-compliance.md를 읽고, screenwriting-craft의 1·9 형태 B 커버 규칙에 따라 작성 (대사 동시 직접 제공/15초 4비트/에피소드 내 결산/강한 화면 밀도/독백 할당), 대본 끝에 【본 에피소드 결산】【본 에피소드 중간 후크】(긴 티어) 【본 에피소드 단절 지점】을 기입; 영화적 프로젝트는 이 두 파일을 읽지 않고, 이러한 필드를 기입하지 않습니다.
산출물: 대본을 01_계획서와_대본.md의 대본 절 + 장면 비트표 + 길이 예산 (screenwriting-craft 1·8) + 자가 점검 결과에 기록합니다. 스토리보드 하지 않음, 앵커 테이블 만들지 않음, 어떤 프롬프트도 작성하지 않음. 단계1a에서는 스토리보드가 아직 생성되지 않았고, "인계 샷 번호"가 아직 생성되지 않았습니다 — check.py --partial 아래 K13은 비트 구조만 확인하며, 인계 샷 번호는 단계1b에서 보충합니다.
GATE1.5 대본 확정 (하드 스톱 포인트 — 확정되지 않으면 절대 1b로 진입하지 않음) 채팅에서 스토리 개요+캐릭터 표+장면별 대본 전문+비트표 요약 (몇 비트/후크가 몇 번째 비트/예상 길이 vs 목표)+7 버그 자가 점검 결과+미결 문제를 제시하고, 사용자에게 "대본 확인 후 스토리보드와 앵커링으로 진행; 이후 대본 수정=하류 전체 재작업, 지금이 수정 비용이 가장 낮은 시점"임을 알립니다. 세로 화면 숏드라마 프로젝트는 추가로 content-compliance 6절 규정 준수 자가 점검 결과 (등록/레드라인/민감어/후크 강도)를 첨부합니다. 사용자가 만족하지 않으면 → 수정 후 다시 제시, 사용자가 명시적으로 확정할 때까지 반복; 확정 결론을 01의 "GATE1.5 대본 확정 기록" 절에 기록합니다. 사용자가 완전한 대본을 직접 가져온 경우 "자가 점검+문제 목록" 제시로 간소화 (대본 본문 반복하지 않음), 하지만 자가 점검은 생략할 수 없음 — 버그 4/5/7 발견 시 조용히 수정하지 않고 사용자에게 알립니다. 확정이 잠그는 것은 스토리 골격과 플롯 포인트 목록이며, 스토리보드 테이블이 아닙니다 — 스토리보드 테이블은 라이브 문서이며, 이후 샷 추가/삭제는 의도 라우팅의 라이브 대본 수정을 따릅니다.
단계1b 스토리보드+앵커 확정된 대본 (주제/길이/스타일/감정) 분석 → 플롯 포인트 목록 → 스토리보드 → 앵커 테이블.
- 플롯 포인트 목록: 확정된 대본을 플롯 포인트로 분해하여 01에 기록 (각 포인트 한 줄), 스토리보드는 100% 커버해야 함 — 임의 수정/삭제 방지
- 비트 인계: 스토리보드 테이블의 "인계 비트" 열에 B 구간 기록 (예:
B4-B5); 한 샷이 여러 비트를 인계할 수 있으며, 순수 트랜지션/빈 샷은—작성; 비트 중복 없음, 순서가 샷 번호와 일치 (A14/K13) - 스토리보드 4칸 분할 (screenwriting-craft.md 4절): 하나의 샷은 하나의 질문에만 답변; 배치로 생성하고 먼저 시작 배치 확인
- 분할 구간 길이는 예산에 따라 구분 (cinematography.md "피크와 강조 수단" 절 ③): 먼저 촘촘한 예산으로 분할하고, 기본적으로 최대치를 채우지 않음; 슬로우 모션은 이미 지정된 피크에만 제공
- 스타일 결정: references/styles.md 읽음 → 스타일 선택 후 즉시 전체 영상의 색조 팔레트 결정 (3-5개의 16진수 색상 코드, 어떤 씬 이미지보다 먼저)
- 스토리보드 설계: references/cinematography.md 읽음 (카메라 워크와 트랜지션 모두 설계, 트랜지션 열은 강제 유형 선택; 카메라 워크는 물리적 매개변수 수준 5요소까지 기록); 반선험적 동작 식별 및 스토리보드 테이블에 표시 — 이 샷들은 상황 이미지로 자세 고정. 9:16 프로젝트는 동일하게 7절에 따라 세로 화면 위치/안전 영역 배열; 씬이 8절의 고빈도 유형에 해당할 때 시퀀스 골격 참조 (양보: 격투는 action-combat 사용, 슬로우 모션은 피크에만 제공/회전은 R4 기준, 두 인물은 상하 위치 변경, 세로 화면 오프닝은 정보 포함)
- 격투 구간은 먼저 교대 기록을 작성한 후 샷 배열 (action-combat.md 0절 — 대본에 "두 사람 격투"만 있을 때 스토리보드로 직접 진입 금지; 라운드화 후 승패 지점=슬로우 모션의 유일한 착점)
- 산출물:
01_계획서와_대본.md(스토리보드 절 보충) +02_앵커_테이블.md(references/consistency.md + assets/templates.md 읽음)- 소품은 prompt-rules.md의 6가지 판정 규칙에 따라 테이블에 포함; 씬이 ≥3개 샷에서 사용되거나 앵글-리액션 샷이 있는 경우 → 4개 뷰 + LOCATION MAP 필요; 여러 샷에 걸친 씬은 씬 마스터 4방향 앵커 + 사용 가능한 위치 소품 (씬 이미지에서 인식, 프롬프트에서 인식하지 않음) + 각 장면 시작 위치 문장 등록. consistency 0절 잠금 목록에 따라 테이블 생성: 의상 잠금 티어 (기본값 전용 이미지), 씬 "지속적 현장 요소" (관객/장비/매트/조명색+색상 코드), 반복 출현 대형 품목 등록, 스타일 3종 세트 (바이블 단어별+색상 코드+정체성 문장)
- 의상은 "세트당 하나"로 테이블에 포함: 캐릭터 앵커 문구는 신원 수준 요소만 남기고, 의상 설명은 02 의상 앵커 테이블로 이동 (consistency 1·의상 앵커); 환복 프로젝트는 각 의상 세트에 대해 독립적인 앵커 문구와 참고 이미지를 가짐
GATE1 (반드시 멈춤) 채팅에서 계획 요약 (선택한 모델 포함) + 각 캐릭터/의상/소품 앵커 문구 전체 + 각 씬의 설계 의도 + 일관성 앵커 3-5개 + 스타일 바이블 전체 + 색조 팔레트 (색상 코드+착점) + 피크-강조 수단 할당표 (본 에피소드 피크 몇 곳, 각 장소에서 어떤 수단 사용, 해당 샷 번호 — cinematography "피크와 강조 수단" 절 참조) 등을 제시하고, 사용자 확인 후에만 계속합니다. 앵커 문구와 팔레트는 이후 모든 프롬프트에 단어별로 입력되며, 여기서 수정 비용이 가장 낮습니다.
단계2-4 이미지 프롬프트
03_이미지_프롬프트.md 산출. 작성 전 references/prompt-rules.md (4가지 기본 인지 포함) + references/realism.md + references/models.md 읽음; 캐릭터에 감정 연기/연기 상태가 있을 때 동시에 expressions.md 읽음 (V2.9에서 앞당겨짐 — 상황 이미지의 연기 상태 지문을 이때 작성하고, 단계5까지 기다리지 않음).
- 먼저 자산 참조 행렬 구축 (각 자산이 어떤 샷에서 참조되는지 등록, 0 참조는 생성하지 않음 — 자산 낭비 방지; 부차적 캐릭터에 설정 이미지가 없을 때 체인 참조 폴백 사용; 사용자가 지정한 완제품 자산의 USER-LOCKED 예외는 prompt-rules 1절4 참조); 행렬 구축 전에 기존 자산 확인 — 기존 프로젝트/캔버스에 이미 동일 이름의 자산이 있을 수 있음 (실측 교훈: P05 소품이 먼저 생성되었다가 폐기되었지만, P04가 이미 존재했음), 해당 시 재사용하고 재생성하지 않음; 그리고 01 스토리보드 테이블의 "입화 소품" 열에 자산 ID 기록 — 각 샷에서 식별 가능한 소품/씬 대형 품목은 03 행렬에 해당 항목이 있어야 하며, 없으면 자산을 보충하거나 화면에서 제거 (하드 규칙 17)
- 캐릭터↔씬↔상황 상호 참조 (각각 독립적으로 이미지 생성하지 않음): 상황 이미지는 반드시 캐릭터 앵커 이미지+씬 마스터 이미지를 참조; 동일 씬 다른 상태의 샷은 이미 확정된 기준 참조 이미지를 참조; 의상/설정 개정 시 이전 버전 참조하여 이전 설정으로 회귀 방지. 실측 교훈: 규칙이 작성되었지만 실제 생성 시 상호 참조하지 않음 → 씬 분위기가 캐릭터를 이전 설정으로 되돌리고, 상처가 갑자기 생김. 3방향 참조 규칙과 양방향 작용 영역 선언은 consistency.md 3절 이미지 측 참조
- 다음 5절 작성: 캐릭터 참조 이미지 (흰 배경 3뷰+얼굴 클로즈업, 머리-몸통 분리는 반드시 두 장의 이미지로 분리하여 생성해야 하며, 하나의 설정 이미지로 합성하여 제출해서는 안 됨; 애니메이션/중국 만화는 4뷰 합성 이미지 사용 가능, 하드 규칙 12 참조; 젊은 캐릭터는 피부 상태 표준 문장 추가; 고정밀 얼굴/다중 뷰 프로젝트는 선택적 단일 앵커 파생 경로 사용 가능 — 0a 정면 전신 앵커 포인트 수정, 0b/측면/뒤/세부 사항은 앵커 포인트 수정 이미지에서 파생, consistency 3절 참조), 의상 환복 참조 이미지 (환복/의상 세트 프로젝트, 각 세트당 0a와 동일 규격의 흰 배경 전신 이미지 1장, 템플릿은 templates 1·5 참조), 소품 참조 이미지 (판정 규칙에 해당하는 소품, 다중 상태 동일 이미지로 생성 후 자르기하여 단일 이미지로), 씬 참조 이미지, 상황 참조 이미지
- 상황 이미지는 L1-L4 등급별로 생성, 각 샷당 하나가 아님 (한 번의 비디오 생성에는 첫 프레임 위치가 하나만 있음) — 등급 판정과 참조 이미지 상한의 선택 순서는 prompt-rules.md 1절3 참조; 텍스트로 잠글 수 없는 방향/최종 상태 → prompt-rules 0.10에 따라
REF-DIR-<샷번호>/REF-TARGET-<샷번호>이미지 추가 - 먼저 첫 번째 구간의 전체 세트 (3-5장)를 사용자에게 제시하여 승인받은 후 대량 생성 — 화풍/일관성/구성이 맞는지 확인한 후 계속; 이미지 4가지 스캔 수행 (동일 세계/얼굴-복장이 설정 이미지와 일치/샷 크기 일치/불필요한 사람 없음). 프롬프트를 전달하고 이미지가 아닌 경우: 첫 번째 배치 승인과 이미지 4가지 스캔은 사용자가 생성 후 수행; skill은 01 검증 기록에 "미실행 (이미지 없음)"으로 표시하며, 통과로 표시해서는 안 됨
- 생성 후 특정 샷이 기준에 미달하면 다시 이미지 보충 가능; 사용자가 "이런 느낌"의 참조 이미지를 제공 → styles.md의 스타일 추출 (해몽 카드)에 따라 동적 스타일 바이블을 생성한 후 이미지 생성
단계5 비디오 프롬프트 + 대사
04_비디오_프롬프트.md 산출 — prompt-rules.md의 골격 선택자에 따름: 기본값 골격 A (한 구간 여러 샷+트랜지션); 골격 B는 fl2va, 원샷 긴장감, 또는 복잡한 씬을 여러 단일 샷 세그먼트로 분할하여 사용자가 편집으로 연결해야 하는 경우에 사용 (01에 이유를 표시해야 함).
- ACTIVE REFERENCES 사용 가능한 것은 모두 사용 (동일 객체는 먼저 유일한 권위로 판정 — 동일 객체의 이미지를 병렬로 모두 참조할 수 없음), 그룹화 전략과 캐릭터 최소 참조 세트는 prompt-rules.md / consistency.md 참조
- 구간 간 마지막 프레임 상호 연결 (V3.7 표준 절차): 구간 N 생성 완료 → 사용자에게 마지막 프레임 추출을 능동적으로 알림 → 구간 N+1 독립적인 첫 프레임 위치가 있으면 첫 프레임 위치에 배치; 혼합 참조 (Ref2VA)인 경우 캐릭터 최소 참조 세트가 우선이며, 마지막 프레임은 그 뒤에 배치 (캐릭터 이미지가 밀려나지 않도록 함), SCENE CONTEXT가 이를 참조하여 연결 (전문은 prompt-rules 골격 A "구간 간 마지막 프레임 상호 연결 표준 절차" 참조). 프레임 추출은 도구 계층에 속하므로, skill이 대신 실행하지 않음; 모든 구간 생성이 완료될 때까지 기다렸다가 일괄 추출하지 않음. 마지막 프레임이 아직 생성되지 않은 경우
PLAN-TAIL-<N>으로 자리 표시하여 정상적으로 산출하고, 추출 후REF-TAIL-<N>바인딩, 마지막 프레임을 기다리기 위해 라인을 멈추지 않음 (E2와 동일한 인간-기계 병렬) - H3 다중 이미지 정렬 프로젝트 (선택 사항): prompt-rules "생성 경로 판정·다중 프레임 레시피"에 따라 각 구간의 컷 포인트 프레임을 초 단위로 고정; 공급업체가 지원하지 않으면 골격 A 마지막 프레임 연결로 폴백, 반복 재시도하지 않음
- 격투 샷 블록은 공격-방어 상태 머신 7단계 사용 (동작 3단계 작성하지 않음, action-combat.md 7절 참조), 비격투 샷 블록은 동작 3단계 사용; 결정적 동작은 초 단위 타임라인+연기 금지 시퀀스+인과 체인 추가
- 각 구간은 FACE LOCK 표정 잠금 및 환경 동적 레이어 포함; 각 샷 생성 길이는 models.md 상한에 대해 하드 검증 수행, 초과 시 자동 분할 및 마지막 프레임으로 연결
05_음성_대사_테이블.md산출 (대사 없는 프로젝트는 간소화 분기로 ⓪절만 작성; 대사 있는 경로는 비디오 모델 기능에 따라 선택 — happyhorse는 자체 음성 사용, H3는 음색 참조 자체 추출 사용 가능, 엄격한 일관성 필요 시 cosyvoice 대사 싱크, consistency.md 4절 참조)- 무음 영상 경로 (consistency 4절 "무음 영상 분기"): 04 비디오 프롬프트에 대사 작성하지 않음, 입 모양/화면 밖 사운드 디자인만 작성 (뒤돌기/옆얼굴/입 다물기/화면 밖 사운드 출처); 대사 원문은 05와 01에만 남기고, TTS 후반 작업에서 대사 싱크
- 대사는 반드시 감정을 포함해야 하며, "화가 나서 말한다"만 작성해서는 안 됨: 각 대사에 발성 설명 공식 바인딩 (선행 신원 2단계 + 6개 매개변수, 8단계 모두 필수), 동작 체인에 삽입하고 독립적인 행으로 작성하지 않음. 실측 교훈: 감정 태그만 작성하면 → 나오는 대화에 어조와 말하기 속도 변화가 없어서 원고 읽는 것처럼 평평해짐. 작성법과 4가지 금지 작성은 prompt-rules 3·5절 참조
단계6 편집 목록
06_편집_목록.md 산출 (연결 순서, 각 구간 시작과 끝 각각 0.5초 자르기, 트랜지션 구현 방식은 01 트랜지션 열과 일치, 트랜지션 오디오 처리로 배경음/효과음 하드 인터럽트 방지, BGM 후반 작업에서 통일 배치, 색보정 힌트; H3 프로젝트는 비디오 보관 기간 만료 전에 전송 확인). 단일 샷 길이는 cinematography 6절 기준에 따름 (골격 A 구간 내에서 재자르지 않고 구간 시작과 끝만 자름; 골격 B/단일 샷 세그먼트만 기준에 따라 자름); 편집 측 트랜지션 (디졸브/페이드 인 아웃/블랙 플래시/줌/와이프)은 06에서 구현하고, 04에서는 해당 컷 포인트에 하드 컷 작성 (컷 포인트별로, 동일 구간의 다른 트랜지션을 덮어쓰지 않음); 세로 화면 프로젝트는 추가로 안전 영역/오프닝 후크/호흡 포인트 확인.
시리즈 프로젝트 추가: 각 에피소드 완료 후 강제로 00_스토리_상태.md 업데이트 (본 에피소드 스토리 요약/캐릭터 상태 변화/소품 상태 변화/본 에피소드 마지막 프레임 설명/회수되지 않은 떡밥) — 다음 에피소드 작업 시작 시 00을 먼저 읽고 이전 에피소드 마지막 프레임을 읽어 장편 드라마의 세부 사항 망각 방지.
모든 작업 완료 후 채팅에서는 요약만 제공 (프로젝트 경로 + 각 파일 한 줄 설명), 파일 내용 반복하지 않음.
보고 규율 (요약의 고정된 형태): 정량적 결과 (몇 구간 몇 샷/총 길이 vs 목표 길이/이미지 프롬프트 몇 장) + check.py 결과 (전체 통과/통과하지 못한 항목과 수정 방법 — 하드 규칙 15) + OPEN 항목 (현장에서 검증할 수 없는 항목과 백필 시점) + 이미지 대기 목록 (PLAN 자리 표시 항목: 어떤 샷이 어떤 이미지를 기다리는지, 이미지가 준비되면 REF 바인딩하여 확정 재독 트리거) + 프로젝트 경로 + 통과하지 못한 검증 항목 명시 (숨기지 않음). 세 가지 허위 보고 금지: ①"이미지 생성됨/비디오 생성됨"이라고 말하지 않음 (skill은 프롬프트를 전달하며, 이미지가 아님) ②생성 결과를 보지 않고 "효과가 매우 좋다"고 말하지 않음 ③사용자 자료를 인용할 때 잘리거나 불완전하면 명시적으로 말하고, 전문을 읽은 척하지 않음.
의도 라우팅 (우선순위에 따라 판단)
- 지시된 수정: 프로젝트 디렉토리 이미 존재 + 명령이 특정 샷/파일/단계를 지시 → 해당 파일의 관련 부분만 수정하고, 나머지는 건드리지 않음
- 속편: 프로젝트 디렉토리 이미 존재 + 명령이 모호함 ("계속") → 01-06 (시리즈: 00+현재 에피소드)의 완료도를 확인하고, 첫 번째 미완료 단계부터 계속; 시리즈 속편 → 먼저 00_스토리_상태.md 읽음
- 새로운 아이디어/새로운 대본 전체 프로세스: 새로운 아이디어나 대본 → GATE0 설문 → 단계1a 실행 (GATE1.5와 GATE1 통과)
- 라이브 대본 수정 (샷 추가/삭제/플롯 변경): 프로젝트가 이미 진행 중 (02가 이미 고정됨) + 사용자가 샷 추가, 플롯 포인트 삭제, 특정 구간 플롯 변경 요청 → 아래의 로컬 재배열 진행, GATE1.5 재실행하거나 03/04 전체 재작성하지 않음
- 단계 재실행: 특정 파일 재작성 명시적 요청 → 해당 파일 재생성 및 무효화 전파 규칙에 따라 하류 표시 (consistency.md 6절)
라이브 대본 수정: 로컬 재배열 (실측 교훈 — 03이 이로 인해 두 번 전체 재작성됨)
실제 AI 비디오 제작은 직선이 아닙니다: 사용자는 이미지를 본 후 샷을 추가하거나, 한 라인을 삭제하거나, 특정 구간 플롯을 변경하고 싶어합니다. GATE1.5 확정이 잠그는 것은 스토리 골격과 플롯 포인트 목록이며, 스토리보드 테이블이 아닙니다 — 스토리보드 테이블은 라이브 문서입니다.
로컬 재배열 4단계 (영향받는 부분만 수정):
- 플롯 포인트 목록 수정: 해당 행 추가/삭제/수정, 수정 날짜와 근거 (사용자 원문 요점) 표시 — 이것이 유일하게 수정해야 할 "상류"
- 영향 범위 판단: 새로운 플롯 포인트가 어떤 씬/캐릭터/소품에 영향을 미치는가? → 02 앵커 테이블은 새로운 엔터티가 추가될 때만 항목 보충 (기존 앵커는 건드리지 않고, 수정된 경우에만 무효화 전파 진행)
- 샷 번호 삽입, 재배열하지 않음: 안정적인 샷 번호 (아래 항목)를 사용하여 새 샷 삽입, 기존 샷 번호는 모두 변경하지 않음 — 기존 03/04 콘텐츠가 무효화되지 않음
- 새로 추가/수정된 샷에 대해서만 프롬프트 작성: 03/04 해당 절에 추가, 수정 날짜 표시; 인접 샷은 "한 비트 수정 시 연속 3비트 재독" 방식으로 재확인, 나머지는 건드리지 않음. 기존 샷의 프롬프트를 수정할 때 대사/샷 번호/생성 길이는 고정 필드 — 01에서 단어별로 대사를 가져오고, 작성 후 단어별로 다시 읽어 비교 (하드 규칙 4)
안정적인 샷 번호 규칙 (하드 게이트): 샷 번호는 한 번 할당되면 절대 재배열하지 않음. 삽입은 접미사 형식 사용 — S3과 S4 사이에 샷 추가 시 S3a로 작성 (또는 01 스토리보드 테이블에 "S3a (v2 추가)" 행 추가), S4를 S5로 변경하지 않음. 이유: 재배열은 03의 자산 참조 행렬, 04의 구간, 캔버스/생성 측에서 이미 생성된 노드를 모두 오프셋시키며, 실측 비용=03 전체 재작성. 폐기된 샷은 스토리보드 테이블에서 ~~S3b~~ (v3 폐기)로 표시하고 행 번호 유지, 행을 삭제하지 않음.
구간 단위 생산 유닛 (V2.9 — 사용자가 한 구간을 말하고 한 구간을 만드는 실제 리듬): 로컬 재배열은 샷 수준입니다; 사용자가 완전한 스토리 구간을 추가할 때 (새로운 스토리 구간을 말함 → 상황 이미지 그룹 필요 → 비디오 노드 필요 → 승인 → 다음 구간), 생산 유닛은 "구간"이며 "샷"이 아닙니다. 다음 최소 폐쇄 루프를 따르며, GATE1.5를 재실행하거나 스토리보드 테이블을 전체 재배열하지 않습니다:
- 구간 목록 입력: 새 구간의 플롯 포인트를 01 플롯 포인트 목록에 행별로 추가 (수정 날짜+사용자 구두 요점 표시), 구간 번호와 안정적인 샷 번호 (접미사 형식) 할당
- 기존 자산 판단: 해당 구간이 관련된 씬/캐릭터/소품을 먼저 02 및 03 자산 행렬에서 확인 — 기존 앵커와 참조 이미지는 직접 재사용하며, 새로운 엔터티만 앵커 항목 보충/새 자산 이미지 생성
- 구간 내 자체 포함 생산: 해당 구간의 상황 이미지 그룹 (L1-L4 등급별) → 비디오 구간 프롬프트 (골격 A) → 대사 (01에서 단어별로 가져오기) — 한 세트 완료 후
check.py --partial실행, 통과 시 자동으로 다음 구간 계속 실행; 배치 (모든 구간) 완료 후 통합 보고 (정량적 결과+check 결과+통과하지 못한 항목 명시). 참조 이미지가 생성되지 않은 곳은PLAN-<ID>로 자리 표시하여 정상적으로 산출 (정지 규율 E2 참조), 이미지를 기다리기 위해 멈추지 않음 - 구간 승인 후 동기화: 승인 통과 → 01 스토리보드 테이블에 해당 구간 행 보충, 03/04에 해당 구간 절 추가, 02는 새 엔터티가 있을 때만 수정; 마지막 프레임 설명은 해당 구간 기록에 작성 (다음 구간의 SCENE CONTEXT 연결 앵커)
6단계와의 관계: 구간 단위는 단계를 건너뛰는 것이 아니라, 단계2-6을 구간별로 슬라이스하여 실행하는 것 — 앵커 (02)와 대본 골격 (01 플롯 포인트 목록)은 여전히 전체 프로젝트 수준이며, 구간 내에서는 해당 구간의 이미지/비디오/대사/편집 항목만 수행합니다. 첫 번째 배치 샷은 여전히 "먼저 첫 번째 구간의 전체 세트를 사용자에게 제시하여 승인받은 후 대량 생성"을 지킵니다.
수정 기록: 각 수정 라운드마다 01에 변경 기록 하나를 추가 (무엇을 변경했는지/영향 범위 (샷 번호·플롯 포인트·단계)/영향 파일/사용자 원문 요점), 역사 절을 다시 작성하지 않음 — 01의 수정 궤적 자체가 중단 복구의 근거입니다. 단일 기록 지점 (V2.9): 변경 기록은 01에만 기록; 00/02에는 변경 이력을 반복해서 기록하지 않음 — 02는 필드 자체만 수정 (앵커 항목 업데이트), 00은 에피소드 완료 시에만 스토리 상태 업데이트. 세 곳에 모두 기록하면 검색성이 나쁘고 반드시 한 곳을 빠뜨립니다.
생성 측 수정 사항 재기록 목록 (V3.7): 캔버스/생성 측에서 프롬프트를 수정한 후, 세 곳을 재기록하고 단어별로 확인 — ①04 해당 구간 블록 ②05 대사 (관련 시) ③01 스토리보드 테이블 (길이/연결/수정 기록); OPEN 항목 종료, PLAN/REF 바인딩 업데이트. 수동 이중 기록은 누락되기 쉬우므로, 재기록 후 check.py --partial 실행.
캔버스/생성 측이 소스인 프로젝트 (사용자가 도구에서 직접 수정)
Toonflow 유형 캔버스를 사용하여 생성을 실행할 때, 사용자는 종종 캔버스에서 직접 프롬프트를 수정하고, 노드를 이동하고, 노드를 삭제합니다 — 이때 캔버스는 실행 측의 사실이며, 01-06은 결정 소스입니다. 두 관계:
- 실시간 동기화를 추구하지 않음 (실측: "동기화"라고 말해야 따라잡히며, 매번 동기화는 낭비) → 배치 지연 동기화로 변경: 한 라운드 생성이 어느 정도 마무리되었을 때 집중적으로 동기화 한 번, 동기화 내용은 "요약 카드" (노드 ID + 한 줄 상태 + 문서와의 차이점)로 작성, 전체 텍스트를 단어별로 재기록하지 않음
- 갈등 판정: 캔버스와 문서가 불일치하고 사용자가 이미 캔버스에서 확정한 경우 → 캔버스를 기준으로, 문서는 차이점을 기록하고 결정을 업데이트 (캔버스를 문서로 되돌리지 않음)
- 확정 표시: 사용자가 캔버스에서 자체 생성한 "확정 이미지 별도 저장하여 오염 방지" 노드는 유효한 관행 → 문서의 자산 행렬에 확정 표시 노드 ID를 등록하고, 재생성 시 덮어쓰지 않음
- 노드 ID는 표에서만 조회하고, 추측하지 않음 (V3.7): 캔버스 노드 ID의 유일한 출처는 프로젝트 대조표 (02/03 자산 행렬, 캔버스 요약 카드); agent는 기억이나 유사성으로 ID를 추측하여 지어내서는 안 됨. 표에 없음 → 멈추고 표를 확인하거나 사용자에게 질문하며, 등록되지 않은 ID를 연결하거나 작동하지 않음 (실측: ID 추측 시 잘못된 노드를 연결하거나 전체 배치가 조용히 실행되지 않음)
- ref 번호=연결 생성 순서 (V3.15 수정): append는 일반적으로 번호만 새로 추가 (ref7/ref8)하고, 기존 순서를 변경하지 않음 — 프롬프트는 이미지 참조 순서 테이블에 추가만 필요; "중간 삽입으로 기존 ref 재배열 발생"의 경우에만 모든 기존 라인을 삭제하고 최종 순서로 다시 연결. 어떤 경우든, 04 이미지 참조 순서 테이블은 동기적으로 수정하고,
{{ref N}}과 용도 선언이 일대일로 대응하는지 항목별로 확인 (기존 캔버스 실측 v21/v22 삽입 오프셋) - 생성 측에서 전체 텍스트 재전송만 가능할 때의 버전 관리 (V3.9 실측; 현재 캔버스 setPrompt): 생성 측에 부분 편집 기능이 없으며, 재전송 전에 현재 prompt를 버전 요약 (버전 번호+변경 사항)으로 저장하여 01 변경 기록에 기록; 재전송 후 04 문서와 비교, 컨텍스트 메모리로 현재 버전을 알 수 있다고 가정하지 않음 (잘못된 버전 가져오면=전체 구간 재작업). 캔버스 소프트웨어 변경 후에도 이 규율은 유지되며, 구체적인 작업은 새 도구에 따라 재작성.
- 동기화 트리거: 사용자가 "동기화"라고 말할 때, 또는 한 라운드 생성이 끝났을 때, 또는 단계5/6에 진입하기 전 — 세 가지 트리거 포인트, 그 외에는 동기화하지 않음
기능 실제 측정이 잠금 기록보다 우선 (실측 교훈: GATE0에서 잠근 "H3 비디오 직접 대사 출력+음색 자체 추출" 주 계획이 게이트웨이 버전 H3가 오디오를 지원하지 않아 직접 무효화됨): GATE0에서 잠근 기능 목록은 계획 근거이지 보장이 아님 — 생성 전에 도구 측의 실제 사용 가능한 기능을 기준으로 함; 주 계획이 무효화되면 대체 경로로 전환 (음성→cosyvoice 대사 싱크)하고 01/02에 전환 이유를 기록하며, 이미 지원하지 않는다고 판정된 기능을 반복 재시도하지 않음. 체크포인트화 (V2.9): GATE0에서 모델을 잠글 때 공급업체/게이트웨이 명시 (동일 모델 이름의 다른 provider는 기능이 다를 수 있음 — moma와 apiMart의 H3 generateAudio는 하나는 거절하고 하나는 수락); 생성 전에 현재 공급업체에 대해 핵심 기능을 실제 측정하여 탐지 (오디오 직접 출력/참조 이미지 수량과 크기/길이 상한), 이미 등록된 공급업체 차이는 models.md "공급업체 차이 메모" 절 참조, 실제 측정 결과가 메모와 충돌할 때는 이번 실제 측정을 기준으로 하고 백필.
단일 포인트 수정 재확인 규율 (한 비트 수정 시 연속 3비트 재독): 샷/비트 하나를 수정한 후, 반드시 앞뒤 각각 한 비트를 다시 읽고, 세 가지를 특별히 확인 — 캐릭터 위치 (위치 문장/LOCATION MAP이 여전히 유효한가), 소품 소유 상태 (이전 샷에서 왼손에 있으면 이 샷에서는 오른손에 있어서는 안 됨), 누가 현장에 있는가 (엑스트라 기본값 0이 여전히 유효한가). 작성할 때 공간 상태가 머릿속에 있지만, 수정할 때는 없음 — 연속으로 읽지 않으면 즉시 이동 버그가 발생합니다.
- 수정 전 먼저 자체 재진술 (V2.9 실측 교훈 + V3.0 자체 증명으로 다운그레이드): 단일 샷 미세 조정 (카메라 위치/샷 크기/구성/쥐는 방향 유형 명령) 시 프롬프트를 수정하기 전에, 먼저 한 문장으로 이해한 구성을 자체 재진술 ("제가 이해하기로는: 정확히 위에서 내려다보는 앵글, 그녀가 그의 오른쪽에 나란히 앉아 있고, 두 사람은 접촉이 없음")하고 01 변경 기록에 기록; 구어적 모호성 목록 (정면/옆면/약간 올려다보기 유형)에 해당하고 컨텍스트로 모호성을 해소할 수 없는 경우에만 사용자에게 질문. 모호성 해소는 cinematography 구어적 모호성 목록 참조. 한 문장 재진술의 비용 ≈ 0, 재작업 한 라운드의 비용 = 생성 한 번 + 대기 한 번 — 자체 재진술은 95%의 이해 편차를 쓰기 전에 차단하며, 진정한 모호성만 질문으로 업그레이드합니다.
- 상황 이미지 확정 시 재독 트리거 (V2.9 — "한 비트 수정 시 연속 3비트 재독"을 사후补救에서 기본 동작으로 전환): 어떤 상황 이미지/첫 프레임 이미지가 확정 (수정 후 재확정 포함)될 때, 반드시 이를 참조하는 모든 비디오 구간의 해당 샷 블록을 다시 읽고, 구간별로 화면 설명이 새로 확정된 이미지와 일치하는지 확인 (자세/쥐는 것/위치/복장) — 일치하지 않는 샷 블록은 현장에서 수정하고, 생성 실패를 기다리지 않음
마찬가지로: 사운드스케이프도 동작 명령입니다 — 사운드스케이프에 "구리 종이 충돌 시 폭발음"이라고 쓰면, 비디오가 실제로 충돌을 연기합니다; 화면 수정 시 세 곳을 동기화해야 함 (샷 블록 화면 설명/AUDIO 사운드스케이프/01 스토리보드 테이블), 컷 전환 수정 시 인접 컷을 읽어야 함 (위치는 연속 상태).
효과가 좋지 않을 때의 폴백 사다리 (특정 샷 생성 실패/품질 저하 시 순서대로 시도): 사다리 진입 전에 먼저 생성 가능성 확인 (prompt-rules 0.7): 실패 징후 목록에 해당 (3단계 이상 손 동작 편성/추론어/부정형 동작/두 주체가 동일 물체를 정밀하게 사용) → 먼저 재작성 5법에 따라 구현 방식을 변경하고, 내용을 변경하지 않음
... [truncated for translation]