목차
prompts/ — 실제로 적용된 최종 프롬프트 (기계 판독용)
- 범위: 영상 5편(1편 S-RANK PULL · 2편 AGENT SHOWCASE · 3편 로판 OP · 4편 HYPER EDIT · 5편 로판 OP EN)에서 최종 결과물에 실제로 쓰인 프롬프트만
- 원문은 원본 파일에서 그대로 복사(요약·의역·수정 0),
verify_prompts.py로 바이트 대조 - 경로 기준: 모든 경로는
<PROJECT_ROOT>/기준 상대경로(원본 프로젝트 폴더). 키트에는 이미지·영상·음원 파일이 없음 - 비밀값 없음: API 키는 환경변수
ELEVENLABS_API_KEY이름만. voice_id·song_id는 공유 라이브러리·생성 기록의 공개 식별자
파일
| 파일 | 행 수 | 내용 |
|---|---|---|
images.jsonl |
33 | codex $imagegen(gpt-image-2) 이미지 프롬프트. 캐릭터 정본 3 · 1편 프레임 7 · 의상 7 · S6 재생성 1 · 3편 장면 15 |
flow_jobs.jsonl |
35 | Google Flow(Gemini Omni Flash) 영상 잡. 첫 프레임 32(v4 10 포함) · 첫+끝 프레임 1 · 참조(Ingredients) 2 |
audio/music.json |
5편 | 편별 채택 곡 요청 원문(composition_plan 전체) + 후처리(자르기·이어 붙이기) 기록. 2편은 1편 곡 재사용 |
audio/tts.jsonl |
9 | ElevenLabs eleven_v4 대사. 1편 4줄 + 3편 5줄(5편이 같은 파일 재사용) |
audio/sfx.jsonl |
48 | ElevenLabs eleven_text_to_sound_v2 효과음. 1편 19 · 3편 21 · 4편 8 |
templates/ |
— | 조립 공식 템플릿 + 블록 원문 카탈로그 + 채운 예시(아래) |
verify_prompts.py |
— | 무결성 검사 스크립트 |
주요 필드
images.jsonl:id·batch·used_in(편·컷) ·model·size·quality·refs(참조 이미지, 1번 = 머리 정본 · 2번 = 의상 정본) ·prompt·final_file(지금 실제 파일명) ·generated_as(생성 당시 output_path) ·rename·source(원본 파일·줄)flow_jobs.jsonl:id·batch·mode(first_frame | first_last | ingredients) ·first_frame·last_frame·refs·video_ref·seconds·resolution720p ·aspect9:16 ·model·prompt·result_file·credits(재생성 포함 실사용) ·verdict(LOG 판정) ·used_in·source- 재생성 3건(
R1·R4는 제외됨,V3_F4_C12포함): 같은 프롬프트로 다시 제출,result_file은 채택된_r2, 1차 탈락 사유는regenerated - 참조 모드 프롬프트의 첫 단어
@Malfoy는 Flow 캐릭터 칩(02_frames/turnaround.png등록)으로 바뀌어 들어감 tts.jsonl:line_id·used_in(편·렌더 배치 시각) ·voice_name·voice_id·model·settings(stability · similarity_boost 0.8 · seed) ·text_with_tags·raw_take(API 출력) ·final_file(렌더가 쓴 파일) ·postprocess·text_sourceS3_hmph원문 끝 공백 1칸("[smug] Hmph. ")은 실제 명령 인자 그대로sfx.jsonl:id·episode·prompt·duration·prompt_influence·final_file·used_in·sourcemusic.json: 편마다adopted·request(원본*.request.json파싱 객체 그대로) ·request_sha256·raw_output·final_file·song_id·measured·postprocess[](단계·내용·근거 스크립트)
포함 기준과 제외 개수
| 단계 | 전체 | 포함 | 제외 | 제외 내역 |
|---|---|---|---|---|
| 이미지 | 프롬프트 35 | 33 | 2 | B_slick(올백 시안, 정본 머리 3종에서 빠짐, 참조·Flow 사용 0) · S6_point(1편 S6이 드레스+드릴 S6_rococo로 바뀌어 사용 0) |
| Flow | 생성 46회(360p 테스트 2 + 본편 잡 41 + 재생성 3) | 잡 35 | 테스트 2 · 1차 탈락 3회 · 렌더 미사용 잡 6 | 테스트 T1·T2(360p, jobs json 원문 없음, 본편 미사용) / 1차 탈락 R1·R4·V3_F4_C12(배경 붕괴, 같은 프롬프트로 r2) / 판정은 채택이나 1~5편 최종 렌더 미사용: X_O4_laugh·X_O1_pout·X_S4_walk·R1_orbit_blue·R4_refmotion_blue·V4_S4_hairflip(07_render 전체 검색 → v4 shots.json 후보 풀에만 있고 edl.json·build 목록에 없음) |
| 곡 | 후보 44곡(1편 7 · 3편 21 · 4편 4 · 5편 12) | 채택 5곡(요청 원문 4종) | 39 | 3편은 song_K9 본체 + song_K5 꼬리, K9·K5·K3 요청은 바이트 동일 → 원문 1개 |
| TTS | 오디션·테이크·재시도 다수 | 렌더 사용 9줄 | 1편 예비·대안 4 · _rejected 3 · hmph_try 재시도 13 중 렌더 미사용 11 · 오디션 5 / 3편 vo/ 15테이크 중 미사용 10(렌더에서 뺀 V5 흥! 3 seed 포함) · Anna Kim 대안 10 · _rejected 12 · 오디션 6 |
탈락 이유: [scoffs]·[sighs]가 웃음·한숨으로 바뀜, 「gems」가 「gens」로 들림, 흐, 흥! 반복 생성 (설명/_prompts/P3_오디오.md §3.2) |
| SFX | 48 | 48 | 0 | 탈락 없음. 변형 2개씩 만들고 편집 때 골라 씀(_01 위주) |
파일명 교정 반영 (final_file)
- 원인: 이미지 러너가 codex 공용 폴더에서 "가장 최근·미회수 PNG"를 집어 감 → 4개 병렬일 때 이름 엇갈림 → 메인이 컨택트시트로 내용 대조 후 교정
- 근거:
설명/_prompts/P1_이미지.md§1-1~1-6,설명/03_파이프라인_그래프.md(결과 파일명·⑥ 함정 표)
| 배치 | 처리 | final_file |
|---|---|---|
design_r1 |
생성 당시 r1_<id>.png → 내용 기준 개명 |
D_pony→canon_pony · C_drill→canon_drill · A_straight→canon_straight (rename.applied: true) |
frames_r1 |
S3_closeup·S5a_fan·turnaround 내용 교환 후 교정, 현재 파일명 = 프롬프트 id | id 이름 그대로 |
outfits_r1 |
O2↔O5, O6↔O7 교정, 현재 파일명 = 프롬프트 id | id 이름 그대로 |
s6_r2 |
단독 실행, 교정 없음 | id 이름 그대로 |
v3_images |
15장 중 8장 교정됐으나 어느 8장인지 목록 없음 | 생성 당시 이름 + "rename_unknown": true |
templates/
- 조립 공식 = 블록을 공백 1칸으로 이은 것. 빈 블록은 건너뜀(
fill.py text)
| 파일 | 자리 | 채운 예시 (원본과 바이트 동일 확인) |
|---|---|---|
image_template.txt |
{STYLE} {CHARACTER} {HAIR} {OUTFIT} {POSE} {BACKGROUND} {TAIL} |
examples/image_example.* = V3_C18_idol |
image_runner_wrapper.txt |
{SIZE} {QUALITY} {PROMPT} — 러너가 프롬프트를 감싸 codex에 넣는 문구(_tools/imagegen_runner.py, 참조 이미지 있을 때 2번째 줄 붙음) |
— |
image_blocks.json |
블록별 실제 문구(화풍 2 · 캐릭터 2 · 머리 3 · 의상 2 · 블루 배경 · 글자 금지 꼬리 · 소년 뒷모습 문장) | 각 문구가 출처 프롬프트에 그대로 있는지 생성 시 검사 |
flow_template.txt |
{CAMERA} {ACTION} {BACKGROUND} {LOCK} {STYLE} {TAIL} {CREST} |
examples/flow_example.* = V1_S4 |
flow_blocks.json |
블루 배경 · 카메라 고정 · 화풍 2 · 꼬리 · 문장 고정 · 카메라 예 | 위와 같음 |
music_plan_template.json |
청크 {TEXT} {DURATION_MS} {POSITIVE_STYLES} {NEGATIVE_STYLES} + 규칙(_chunk_rules) |
examples/music_plan_example.* = bgm_A_swing 요청 |
tts_template.txt + tts_request_template.json |
[{TAG}] {LINE} / {TEXT} {STABILITY} {SEED} {VOICE_ID} |
examples/tts_example.* · tts_request_example.json = 3편 V3_father |
- 사용 예
python3 templates/fill.py text templates/image_template.txt my_vars.jsonpython3 templates/fill.py music templates/music_plan_template.json my_chunks.jsonpython3 templates/fill.py tts templates/tts_request_template.json my_tts.json- 규칙(프롬프트 밖): IP 단어(해리포터·말포이·슬리데린·호그와트) 쓰지 않음, 이미지에 글자 넣지 않음, Flow는 텍스트만으로 생성 금지(항상 codex 이미지 기반), Flow 매번
x1·720p확인
검증 결과 (python3 verify_prompts.py --root <PROJECT_ROOT>)
- 결과 PASS: jsonl 전 행
json.loadsOK, 이미지 33 · Flow 35 · SFX 48 원문 바이트 동일, 곡 4개 요청 sha256·값 일치(K5·K3 요청 바이트 동일 포함), 모든final_file·result_file·참조 경로 존재, 템플릿 예시 4종 재조립 = 원본 - TTS: 4줄(
V1·V2·V3·V6)은04_audio/v3/_work/vo_lines*.tsv원본과 바이트 동일. 나머지 5줄(1편 4 ·V4_shutup)은 대사가 파일이 아닌tts.py명령줄 인자였음 → 키트 생성 때 세션 실행 기록의 명령과 대조, 5/5 바이트 일치(텍스트·stability·seed). 세션 기록 자체는 키트에 넣지 않음 - 비밀값·이메일·서명 URL·절대경로 패턴 스캔 0건