| name | webtoon-panel-breakdown |
| description | 웹툰 대본을 50+ 패널 샷리스트로 분해하고, 작화 스타일 가이드와 캐릭터 일관성 토큰을 정제하는 비주얼 프로덕션 방법론. 패널 분해, 샷리스트, 웹툰 콘티/연출, 세로 스크롤 구성, 카메라 앵글/구도 어휘, 스타일 가이드(스타일 바이블), 캐릭터 시트, 일관성 토큰을 만들 때 사용한다. art-director가 style-bible/character-sheets를 만들 때, panel-director가 script_final을 샷리스트로 쪼갤 때 트리거. 후속 작업(다시/재실행/패널 추가/구도 수정/스타일 보완/일관성 토큰 업데이트/샷리스트 재분해)에도 반드시 이 스킬을 다시 사용한다. codex-image 프롬프트 작성(렌더)은 webtoon-panel-render, 말풍선/조립은 webtoon-assembly 소관. |
webtoon-panel-breakdown — 대본을 패널로, 스타일을 일관성으로
웹툰의 흡인력은 "무엇을 그리느냐"보다 "어떻게 끊고 어떻게 보여주느냐"에서 나온다.
이 스킬은 두 가지 비주얼 프로덕션 작업을 다룬다.
- 패널 분해(샷리스트) — 대본 한 회차를 50개 이상의 패널로 쪼개고 각 패널의 구도/카메라/감정/연출을 규정한다.
- 스타일 일관성 — 작화 스타일을 스타일 바이블로 고정하고, 캐릭터 외형을 패널·회차 간 흔들리지 않게 잡아주는 "일관성 토큰"을 만든다.
두 작업 모두 목적은 하나다: 독자가 스크롤을 멈추지 않게, 그리고 같은 캐릭터가 매 패널 같은 사람으로 보이게.
왜 이렇게 하는가 (Why-first)
- 패널은 시간이다. 세로 스크롤에서 패널 크기와 패널 사이 여백은 곧 독자가 그 순간에 머무는 시간이다. 큰 패널·넓은 여백 = 느린 시간(긴장의 정점, 충격). 작은 패널·좁은 여백 = 빠른 시간(대화의 합, 액션의 연쇄). 비트를 패널로 쪼갠다는 건 시간을 설계한다는 뜻이다.
- 50+ 패널은 사치가 아니라 리듬이다. 한 비트를 한 컷으로 처리하면 정보는 전달되지만 감정은 전달되지 않는다. 긴장 고조 구간을 잘게 쪼개야 독자의 심박이 따라 오른다. (계약 §9: 회차당 50+ 패널 보장)
- 일관성 토큰이 없으면 codex-image가 매번 다른 사람을 그린다. 생성 이미지는 프롬프트의 외형 키워드에 강하게 반응한다. 캐릭터마다 고정된 외형 키워드 세트를 모든 프롬프트에 동일하게 주입해야 같은 인물로 보인다. 이 토큰을 만드는 게 art-director의 핵심 산출물이다.
- 스타일 바이블은 협업의 단일 진실원천(SSOT)이다. prompt-smith·panel-artist·letterer가 전부 이 문서를 참조한다. 여기서 정한 화면비·색감·톤이 흔들리면 50장이 제각각이 된다.
작업 A: 패널 분해 (샷리스트 만들기)
입력: _workspace/03_episode/ep{NN}_script_final.md, _workspace/04_visual/style-bible.md
출력: _workspace/04_visual/ep{NN}_shotlist.md
A-1. 분해 원칙 (한 비트 → 여러 패널)
- 비트를 먼저 식별한다. 대본을 읽고 "독자 감정이 바뀌는 지점"마다 비트 경계를 긋는다. 한 회차는 보통 12~20개 비트.
- 각 비트를 패널로 펼친다. 비트 1개당 최소 2~4패널. 평균 비트가 15개라면 자연히 50패널 근처에 도달한다. 부족하면 아래 규칙으로 더 쪼갠다.
- 긴장 고조 구간은 더 잘게. 클라이맥스·반전·대치 장면은 비트당 5~8패널까지. 표정 클로즈업 → 손/소품 인서트 → 반응샷 → 정적(여백) 순으로 분해하면 긴장이 늘어난다.
- 대사 합(주고받기)은 패널을 나눈다. 한 패널에 말풍선 3개를 몰지 말고, 화자가 바뀌면 패널을 끊는 것을 기본으로 한다(계약 §9: 대사 위주). 단 빠른 티키타카는 한 패널에 2말풍선까지 허용.
- 반전 패널은 독립시킨다. 반전이 터지는 컷은 앞뒤로 여백(빈 패널 또는 큰 여백)을 두고 단독 대형 패널로. 충격을 위한 "시간 정지".
- 복선은 인서트 패널로 미리 심는다. 나중에 회수할 소품/표정을 작은 인서트 컷으로 앞 비트에 끼워 넣는다.
A-2. 패널 수 50 보장 체크
- 1차 분해 후 패널 수를 센다. 50 미만이면 다음을 적용해 늘린다(억지 늘리기 금지, 리듬상 타당한 곳만):
- 감정 전환점에 반응샷(reaction shot) 추가
- 중요 대사 앞에 "정적 비트"(인물 정지/배경 인서트) 추가
- 액션을 동작 단계로 분할(준비 → 실행 → 결과)
- 클리프행어 직전을 클로즈업 연쇄로 분할
- 50 이상이면 통과. 70을 넘으면 리듬이 늘어지는지 점검(불필요한 중복 컷 병합).
A-3. 샷리스트 항목 형식
각 패널마다 아래를 기재한다. (prompt-smith가 이걸 codex 프롬프트로 번역하므로 시각 정보가 구체적이어야 한다.)
### panel_007
- scene_id: S3 / location: LOC_ROOFTOP # 같은 씬은 같은 장소 — 배경 연속성
- beat: 3 (대치 시작)
- size: large # large/medium/small/insert/full-bleed
- camera: low-angle, medium shot
- composition: 화면 좌측 1/3 라인의 주인공, 우측 깊은 공간에 적대자(원근 대비)
- subject: 지호(긴장으로 굳은 표정), 배경에 흐릿한 군중
- emotion: 억눌린 분노
- motion/direction: 시선 좌→우 유도 (다음 패널로 흐름)
- dialogue_ref: "여기서 멈춰." (지호) # 레터러가 in-image 말풍선 스펙으로 변환
- fx/note: 속도선 없음, 정적. 반전 복선(반지 인서트는 panel_006)
size와 camera, composition은 §references/composition-grammar.md의 어휘에서 고른다.
scene_id/location(LOC_*)을 모든 패널에 기재한다. 같은 scene_id 패널은 같은 장소·시간대·실내외여야 한다(배경 급변 방지). 장소 전환은 SCENE BREAK에서만. LOC_* 토큰은 style-bible의 장소 토큰(B-5)과 일치시킨다.
dialogue_ref는 letterer가 in-image 말풍선 스펙을, prompt-smith가 베이크 프롬프트를 만드는 근거이므로 대사가 있는 패널엔 반드시 기재.
- 패널 번호는
panel_001부터 3자리 연속(계약 §4).
- 회차 상단에 장소 목록 표(scene_id ↔ LOC_* ↔ 한 줄 배경)를 둔다.
A-4. scene 그룹 힌트(선택)
샷리스트는 렌더 분배 전 단계지만, 장면 전환(시간/장소/시퀀스) 경계를 표시해두면 prompt-smith가 A/B/C 그룹을 균등 분배하기 쉽다. 큰 장면 전환마다 --- SCENE BREAK --- 라인을 넣는다.
세로 스크롤 연출 문법(컷 크기·여백·시선 유도·리듬), 카메라 앵글·구도 어휘 카탈로그는
references/composition-grammar.md 참조. 패널 size/camera/composition을 채울 때 그 어휘에서 고른다.
작업 B: 스타일 바이블 + 일관성 토큰
입력: _workspace/02_story/characters.md, _workspace/02_story/world.md, _workspace/01_research/trend-brief.md
출력: _workspace/04_visual/style-bible.md, _workspace/04_visual/character-sheets.md
B-1. 스타일 바이블 구조 (style-bible.md)
트렌드 브리프의 타깃 독자·장르 톤을 작화 언어로 번역한다. 다음 섹션을 채운다.
- 작화 스타일 — 선화 톤(클린/거친), 채색 방식(셀/소프트/반사실), 렌더 디테일 수준, 참조 무드(예: "한국 로맨스 판타지 웹툰, 부드러운 셀 셰이딩").
- 색감/팔레트 — 메인 팔레트(HEX 3~5색), 장면별 무드 팔레트(낮/밤/회상/긴장), 채도·명도 방향.
- 분위기/톤 — 장르 무드 한 문단(예: 차갑고 긴장된 도시 누아르). 조명 성향(역광/림라이트/하이키 등).
- 화면비/캔버스 — 웹툰 세로 스크롤 기준. 패널 기본 종횡비(예: 정사각 1:1, 와이드 3:2, 세로 컷 2:3, 풀블리드 9:16). codex-image에 넣을 사이즈 가이드 포함.
- 일관성 토큰 규약 — 모든 프롬프트에 공통 주입할 "글로벌 스타일 토큰" 한 줄(아래 B-3). 캐릭터 토큰은 character-sheets에 분리.
- 장소 고정 토큰(LOC_*) — 배경 연속성용. 아래 B-5.
- 말풍선 시각 규약 — in-image 베이크용 말풍선 종류별 스타일 + 한글 레터링 톤. 아래 B-6.
- 금지/주의 — 워터마크 금지, 화풍 일탈 금지, 씬과 무관한 배경/장소 급변 금지, 부정 프롬프트는
no watermark, no English text, no gibberish/garbled/misspelled text(말풍선·한글은 그리므로 no text를 쓰지 않는다).
B-2. 캐릭터 시트 구조 (character-sheets.md)
characters.md의 산문형 외형 묘사를 재사용 가능한 토큰 세트로 정제한다. 캐릭터마다:
## 지호 (주인공)
- identity_tag: JIHO
- 고정 외형 토큰(일관성 토큰):
"20s Korean man, short tousled black hair, sharp single-lid eyes,
slim build, faint scar on left brow, charcoal hooded jacket"
- 표정 변주(상황별): 분노/불안/무표정 (외형 토큰은 고정, 표정만 교체)
- 의상 변주: 기본(후드)/정장/부상 후 — 변주마다 토큰 추가구
- 금지: 머리색·눈매·흉터 변경 금지(일관성 핵심)
- 참조 컷 파일(있으면): _workspace/05_panels/refs/jiho_ref.png
B-3. 일관성 토큰 만드는 법 (핵심 기법)
- 불변 vs 가변 분리. 외형에서 절대 안 바뀌는 것(머리색/길이, 눈 모양, 체형, 식별 표식)을 불변 토큰으로 묶는다. 표정·포즈·의상·조명은 가변으로 따로.
- 고밀도 명사구로. 문장이 아니라 키워드 나열. "그는 키가 크다" ✗ → "tall, broad shoulders" ✓. 생성 모델이 가중치를 잡기 쉽다.
- 식별 표식을 1~2개 박는다. 흉터/점/안경/머리핀/이색 헤어스트릭 등 고유 표식 하나가 인물 동일성을 크게 끌어올린다.
- 영문 토큰 권장. codex-image 프롬프트는 영문 키워드 반응이 안정적. 단 한국적 외형은 "Korean" 명시.
- 글로벌 스타일 토큰 + 캐릭터 토큰 = 합성. 모든 프롬프트 = [글로벌 스타일 토큰] + [등장 캐릭터 토큰] + [패널 고유 묘사]. prompt-smith가 이 조립 규칙을 그대로 따른다.
- 충돌 방지. 한 패널에 여러 캐릭터가 나오면 각자의 식별 표식이 또렷이 구분되도록 토큰을 배치(예: A는 흉터, B는 안경).
B-4. 트렌드 정합성
trend-brief.md의 인기 장르/타깃 연령/플랫폼 화풍 경향을 스타일에 반영한다. 예: 로판이면 화사한 파스텔·반짝임, 누아르 스릴러면 저채도·강한 명암. 트렌드와 어긋나면 독자 진입 장벽이 생긴다.
B-5. 장소 고정 토큰 (배경 연속성)
캐릭터처럼 배경도 흔들린다. 같은 장면인데 도로였다가 갑자기 실내가 되는 식의 급변은 몰입을 깬다. 그래서 작품에 등장하는 장소마다 고정 배경 키워드 세트를 토큰으로 박는다.
### LOC_CLASSROOM
- background token: "Korean high-school classroom, rows of wooden desks, large windows with white curtains, chalkboard at front, late warm afternoon sunlight"
- 시간대/조명: 오후 따뜻한 자연광 (낮 장면)
- 비고: S2에서 사용
- panel-director의
scene_id/location과 1:1 대응(같은 LOC는 같은 토큰).
- prompt-smith가 그 씬의 모든 패널에 이 토큰을 동일 주입 → 씬 내 배경 일관.
- 새 장소가 생기면 LOC_*를 추가한다. 같은 장소의 시간대 변화(낮→밤)는 토큰에 변주구로 명시.
B-6. 말풍선 시각 규약 (in-image 베이크)
이 하네스는 말풍선·대사를 이미지에 함께 그린다. 그래서 말풍선의 시각 스타일을 style-bible이 규정해 letterer·prompt-smith가 일관되게 베이크하게 한다.
- 종류별 스타일: 대사=흰 둥근 풍선+검은 테두리+꼬리(화자) / 생각=점선·구름형(꼬리 없음) / 외침=뾰족 폭발형+굵은 글씨 / 나레이션=사각 박스 / (작품 고유 화자, 예 계약자=잉크블랙 풍선+꼬리 없음+금빛 글자).
- 한글 레터링 톤: 굵은 고딕/둥근 고딕, 고대비(검은 글자/흰 풍선), 충분히 큰 크기, 얼굴·핵심 작화 회피.
- 한글은 생성 시 깨지기 쉬우므로 말풍선당 짧게(어절 수 적게). 긴 대사는 여러 풍선/패널로 분할(letterer 책임).
B-7. 레퍼런스 시트 설계 (ref-sheet-artist 지시서)
패널 렌더 전, 주요 캐릭터의 다각도/표정 레퍼런스 시트를 먼저 만들 수 있도록 art-director가 사양을 정한다.
- 각도: 정면 / 3-4 / 측면 / 후면 전신(턴어라운드) + 표정 3~4종 클로즈업.
- 식별 표식(점/흉터/팔찌 등)과 좌/우 위치를 또렷이 명시(레퍼런스에서 흐리면 패널 일관성 약화).
- 중립 조건: 단색 배경·균일 조명·기본 무표정·연출 색 없음(패널에서 변주할 여지를 남김).
- 레퍼런스만은 텍스트 없이(
no text, no labels) — 깨끗한 외형 도감이어야 기준이 된다.
- 저장:
_workspace/04_visual/refs/(시리즈 자산, 회차 간 재사용). 실제 렌더 절차는 webtoon-panel-render의 "0단계" 참조.
재호출 / 후속 작업
- 샷리스트 재분해: 기존
ep{NN}_shotlist.md를 Read → 패널 수/리듬 점검 → 부족분만 추가하거나 늘어진 구간만 병합. 패널 번호는 재정렬해 연속성 유지.
- 스타일 보완: 기존 style-bible/character-sheets를 Read → 피드백 지점만 수정. 일관성 토큰은 함부로 바꾸지 말 것(이미 렌더된 패널과 어긋남). 불가피하면 변경 사실을 협업 에이전트에 알린다.
- 신규 캐릭터 등장: character-sheets에 토큰 세트 추가, 글로벌 규약은 유지.
품질 체크리스트 (제출 전)