# Webtoon Panel Breakdown

> 웹툰 대본을 50+ 패널 샷리스트로 분해하고, 작화 스타일 가이드와 캐릭터 일관성 토큰을 정제하는 비주얼 프로덕션 방법론. 패널 분해, 샷리스트, 웹툰 콘티/연출, 세로 스크롤 구성, 카메라 앵글/구도 어휘, 스타일 가이드(스타일 바이블), 캐릭터 시트, 일관성 토큰을 만들 때 사용한다. art-director가 style-bible/character-sheets를 만들 때, panel-director가 script_final을 샷리스트로 쪼갤 때 트리거. 후속 작업(다시/재실행/패널 추가/구도 수정/스타일 보완/일관성 토큰 업데이트/샷리스트 재분해)에도 반드시 이 스킬을 다시 사용한다. codex-image 프롬프트 작성(렌더)은 webtoon-panel-render, 말풍선/조립은 webtoon-assembly 소관.

- Skill: `revfactory/webtoon-panel-breakdown` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add revfactory/webtoon-panel-breakdown`
- Raw SKILL.md: https://api.skillmd.com/api/skills/revfactory/webtoon-panel-breakdown/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: revfactory (https://skillmd.com/u/revfactory)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/revfactory/webtoon-panel-breakdown

---


# webtoon-panel-breakdown — 대본을 패널로, 스타일을 일관성으로

웹툰의 흡인력은 "무엇을 그리느냐"보다 "어떻게 끊고 어떻게 보여주느냐"에서 나온다.
이 스킬은 두 가지 비주얼 프로덕션 작업을 다룬다.

1. **패널 분해(샷리스트)** — 대본 한 회차를 50개 이상의 패널로 쪼개고 각 패널의 구도/카메라/감정/연출을 규정한다.
2. **스타일 일관성** — 작화 스타일을 스타일 바이블로 고정하고, 캐릭터 외형을 패널·회차 간 흔들리지 않게 잡아주는 "일관성 토큰"을 만든다.

두 작업 모두 목적은 하나다: **독자가 스크롤을 멈추지 않게, 그리고 같은 캐릭터가 매 패널 같은 사람으로 보이게.**

---

## 왜 이렇게 하는가 (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. 분해 원칙 (한 비트 → 여러 패널)

1. **비트를 먼저 식별한다.** 대본을 읽고 "독자 감정이 바뀌는 지점"마다 비트 경계를 긋는다. 한 회차는 보통 12~20개 비트.
2. **각 비트를 패널로 펼친다.** 비트 1개당 최소 2~4패널. 평균 비트가 15개라면 자연히 50패널 근처에 도달한다. 부족하면 아래 규칙으로 더 쪼갠다.
3. **긴장 고조 구간은 더 잘게.** 클라이맥스·반전·대치 장면은 비트당 5~8패널까지. 표정 클로즈업 → 손/소품 인서트 → 반응샷 → 정적(여백) 순으로 분해하면 긴장이 늘어난다.
4. **대사 합(주고받기)은 패널을 나눈다.** 한 패널에 말풍선 3개를 몰지 말고, 화자가 바뀌면 패널을 끊는 것을 기본으로 한다(계약 §9: 대사 위주). 단 빠른 티키타카는 한 패널에 2말풍선까지 허용.
5. **반전 패널은 독립시킨다.** 반전이 터지는 컷은 앞뒤로 여백(빈 패널 또는 큰 여백)을 두고 단독 대형 패널로. 충격을 위한 "시간 정지".
6. **복선은 인서트 패널로 미리 심는다.** 나중에 회수할 소품/표정을 작은 인서트 컷으로 앞 비트에 끼워 넣는다.

### 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)

트렌드 브리프의 타깃 독자·장르 톤을 작화 언어로 번역한다. 다음 섹션을 채운다.

1. **작화 스타일** — 선화 톤(클린/거친), 채색 방식(셀/소프트/반사실), 렌더 디테일 수준, 참조 무드(예: "한국 로맨스 판타지 웹툰, 부드러운 셀 셰이딩").
2. **색감/팔레트** — 메인 팔레트(HEX 3~5색), 장면별 무드 팔레트(낮/밤/회상/긴장), 채도·명도 방향.
3. **분위기/톤** — 장르 무드 한 문단(예: 차갑고 긴장된 도시 누아르). 조명 성향(역광/림라이트/하이키 등).
4. **화면비/캔버스** — 웹툰 세로 스크롤 기준. 패널 기본 종횡비(예: 정사각 1:1, 와이드 3:2, 세로 컷 2:3, 풀블리드 9:16). codex-image에 넣을 사이즈 가이드 포함.
5. **일관성 토큰 규약** — 모든 프롬프트에 공통 주입할 "글로벌 스타일 토큰" 한 줄(아래 B-3). 캐릭터 토큰은 character-sheets에 분리.
6. **장소 고정 토큰(LOC_*)** — 배경 연속성용. 아래 B-5.
7. **말풍선 시각 규약** — in-image 베이크용 말풍선 종류별 스타일 + 한글 레터링 톤. 아래 B-6.
8. **금지/주의** — 워터마크 금지, 화풍 일탈 금지, **씬과 무관한 배경/장소 급변 금지**, 부정 프롬프트는 `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. 일관성 토큰 만드는 법 (핵심 기법)

1. **불변 vs 가변 분리.** 외형에서 절대 안 바뀌는 것(머리색/길이, 눈 모양, 체형, 식별 표식)을 **불변 토큰**으로 묶는다. 표정·포즈·의상·조명은 **가변**으로 따로.
2. **고밀도 명사구로.** 문장이 아니라 키워드 나열. "그는 키가 크다" ✗ → "tall, broad shoulders" ✓. 생성 모델이 가중치를 잡기 쉽다.
3. **식별 표식을 1~2개 박는다.** 흉터/점/안경/머리핀/이색 헤어스트릭 등 고유 표식 하나가 인물 동일성을 크게 끌어올린다.
4. **영문 토큰 권장.** codex-image 프롬프트는 영문 키워드 반응이 안정적. 단 한국적 외형은 "Korean" 명시.
5. **글로벌 스타일 토큰 + 캐릭터 토큰 = 합성.** 모든 프롬프트 = [글로벌 스타일 토큰] + [등장 캐릭터 토큰] + [패널 고유 묘사]. prompt-smith가 이 조립 규칙을 그대로 따른다.
6. **충돌 방지.** 한 패널에 여러 캐릭터가 나오면 각자의 식별 표식이 또렷이 구분되도록 토큰을 배치(예: 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에 토큰 세트 추가, 글로벌 규약은 유지.

## 품질 체크리스트 (제출 전)

- [ ] 샷리스트 패널 수 50 이상, 번호 panel_001부터 연속 3자리
- [ ] 긴장 고조/반전 구간이 더 잘게 쪼개졌는가
- [ ] **모든 패널에 scene_id/location(LOC_*) 기재, 같은 씬은 같은 장소(배경 연속성)**
- [ ] 대사 있는 패널마다 dialogue_ref 기재 + 인접 패널 대사 흐름 자연스러운가
- [ ] 각 패널에 size/camera/composition/emotion 명시
- [ ] 스타일 바이블에 화면비·팔레트·톤·일관성·**장소 토큰·말풍선 시각 규약** 8섹션 완비
- [ ] 캐릭터마다 불변 일관성 토큰(고밀도 명사구) + 식별 표식 1~2개 + **레퍼런스 시트 사양**
- [ ] 출력 경로가 계약 §3과 정확히 일치

