| name | prompt-craft |
| description | 확정된 씬 라인업의 각 씬에 대해 영문 이미지 프롬프트, 한국어 내레이션 텍스트, scene_meta를 작성한다. 시리즈 가이드의 장르 프로필·청중과 knowledge/prompt-style-guide.md를 참조하여 일관된 스타일을 유지한다. 씬 라인업이 확정된 후 자동으로 실행되거나, '프롬프트 만들어줘'라고 요청하면 사용한다. |
씬별 상세 설계
확정된 씬 라인업의 각 씬에 대해 이미지 프롬프트, 내레이션, 메타데이터를 작성한다.
사전 조건
- analyze-chapter에서 씬 라인업이 확정되어야 한다
- 시리즈 가이드 또는 장르 지정이 있어야 한다
참조 문서
knowledge/prompt-style-guide.md — 프롬프트 작성 원칙, 시대별 시각 어휘
- 시리즈 가이드 —
narration_style(tone/person/tempo/chars_per_second), audience, default_model
환각 방지 (최우선)
- 내레이션·자막은 해당 절 원고에 있는 사실만 사용한다. 원고에 없는 사건/지명/인물(다른 단원)을 추가하지 않는다.
- 인물·연도·용어는 원고 표기 그대로. 한국어/영어 외 문자 금지.
- 이미지 프롬프트는 분위기·시대감을 담당하고, 정확한 사실(이름·연도)은
narration_text·scene_meta.subtitle·text_overlay가 담당한다.
청중 맞춤
시리즈 가이드의 audience(예: "중학교 2학년")에 맞춰 내레이션 난이도를 조정한다. 어린 학년일수록: 쉬운 어휘, 친근한 구어체, 어려운 용어는 한 번 풀어서 설명. 톤은 narration_style.tone을 따른다.
작성 절차 (씬당)
1. 원문 시각 요소 추출
해당 씬의 출처 단위에서: 물리적 환경(장소·유물·조명), 인물의 외모/행동, 시대적 단서(연도·복식·건축), 분위기/감정.
2. 영문 이미지 프롬프트 작성
prompt-style-guide.md의 구조를 따른다:
[주요 피사체/배경] + [시대적 디테일(복식·건축·유물)] + [빛/분위기] + [카메라 구도] + [색조/스타일 태그]
규칙:
- 영어, 완전한 묘사 문장 55~85단어. 키워드 나열 금지.
- 시대 톤 적용(prompt-style-guide 시대별 어휘): 고대/고전/중세 = oil-painting texture·weathered stone·warm earth tones·torchlight, 근세/근대 = sepia·oil portrait, 20세기 = 흑백 vintage, 현대 = clean HD.
- 항상
..., documentary style, cinematic quality. 로 끝맺는다.
- 화면 글자 렌더링 금지(자막은 scene_meta.subtitle에).
- 실존 인물은 이름 대신 외모/직업/시대로 묘사(차단 시 prompt-style-guide의 약화 단계 적용 — 구글 정책 차단 건은 사용자가 별도 수동 처리).
3. 한국어 visual_description 작성
프롬프트 핵심 시각 요소를 한국어 1줄로 요약. 예: "여명의 고대 서아시아 평원, 멀리 궁전 실루엣".
4. 모델 선택
시리즈 가이드의 default_model이 기본. 특정 씬에서 다른 모델이 더 적합하면 override 가능(prompt-style-guide 모델 가이드 참조).
5. 내레이션 텍스트 작성 (scene_type별 분량)
| scene_type | 분량 | 비고 |
|---|
| body | 46문장(공백 제외 약 120170자, 4055초) | 핵심 개념을 충실히 전달 |
| part_intro | 2~3문장(2030초) | 새 주제 도입 |
| bridge | 12문장(1522초) | 정리·질문 |
| opening_title / closing / next_preview | 12문장(1522초) | 짧게 |
- 본문이 짧다고 2~3문장으로 끝내지 않는다. body는 충분히 설명한다.
- 원문의 인상적 표현을 활용하되 듣기 편한 영상 내레이션으로 재구성. 너무 학술적이지 않게.
6. 내레이션 시간 추정
narration_seconds = ceil(narration_text의 공백 제외 글자수 / chars_per_second)
chars_per_second: 시리즈 가이드 narration_style.chars_per_second(기본 3.0).
7. scene_meta 작성
{
"era": "BC-6c",
"mood": "tension",
"transition_hint": "fade_in",
"text_overlay": null,
"subtitle": "기원전 6세기, 고대 서아시아",
"bgm_hint": "epic_ambient"
}
transition_hint 규칙:
- 첫 씬:
fade_in / 같은 시대 연속: crossfade / 시대·주제 전환: wipe(또는 가이드 default) / 극적 전환: fade_to_black / 마지막 씬: fade_out
8. 파일명 생성
{prefix}_{SS}_{영문슬러그}.png
- prefix:
_manifest.json의 절 prefix(예: 22). 없으면 장 번호 2자리.
- SS: 씬 번호 2자리(0패딩)
- 영문슬러그: 씬 내용을 영문 소문자+언더스코어 3–5단어
- 예:
22_01_ancient_world_opens.png
출력 형식
2–3씬씩 묶어서 보여준다:
━━━ Scene 2 [body]: 아케메네스 페르시아의 통일 ━━━
📸 이미지 프롬프트:
"An ancient Persian throne hall... documentary style, cinematic quality."
🎙️ 내레이션 (48초):
"기원전 6세기, 키루스 2세는 서아시아를 다시 통일하였습니다..."
📋 메타:
모델: nano_banana | 파일: 22_02_persian_unification.png
시대: BC-6c | 분위기: discovery | 전환: crossfade
자막: 기원전 6세기, 아케메네스 왕조 페르시아
사용자 확인 후 다음 묶음. 전체 완료되면 generate-script로 넘어간다.
사용자 수정 대응
- "프롬프트 수정: [새 내용]" → 해당 씬 재작성
- "내레이션 톤/난이도 바꿔줘" → narration_style·청중 기준 조정
- "이 씬 모델 바꿔" → model override
- "자막 추가/변경" → scene_meta.subtitle 수정