# Webtoon pilot chapter — agent playbook ⭐ flagship

> Paste this whole file (with the BRIEF filled in) into Claude cowork, chat, or Code. **This is the no-LoRA flagship for Webtoon / vertical-scroll comic creators.** Build a Webtoon-spec pilot chapter in one sitting — 12 vertical 9:16 panels, dialogue, a cover, and a single-scroll image ready to upload to Tapas or Webtoon Canvas the same evening.

## What you'll get

A Webtoon-spec chapter package, structured the way a Tapas creator's first chapter ships:

- **12 vertical 9:16 panels** — protagonist holds across all 12 by reference-image anchoring, reading-direction composition (focal moves down-and-right for natural scroll pacing), top-third dialogue clearance.
- **Per-panel dialogue placement** — speech-bubble-style overlays that clear focal characters, placed by skill rule not by random chance.
- **Cover at 1080×1620** — protagonist hero pose, rendered separately at premium quality. This is the catalogue thumbnail; the discovery hinges on it.
- **Single-scroll image at 1080 × ~24000** — the 12 panels stitched vertically into Webtoon Canvas / Tapas native upload format. No manual stitching, no panel-gap math.
- **30-second 9:16 social teaser** — the first 4 panels with subtle motion, scored to a brand cue. Posts to TikTok / Reels / IG Stories.
- **Chapter HTML** — single shareable page with the cover, the scroll, the teaser, dialogue script, brand reference. Send to a colleague or post to your own blog.

**Time**: 60-90 min agent-driven, 30 min review. **Cost**: $3-6 end to end. *This is the easy-mode webtoon flagship* — no LoRA training, no week-long production, just a single character reference + an evening.

## Tell the agent about the chapter

```yaml
webcomic_title:      # e.g. "The Tea-House Detective". Used in cover banner + chapter card.
chapter_number:      # e.g. 1. Used in chapter card overlay.
chapter_title:       # e.g. "Chapter 1 — The Vanishing Steam". Used in chapter card.
protagonist_name:    # The lead. Becomes the entity_name in the registry.
protagonist_ref:     # ONE clean reference image of the protagonist.
protagonist_brief:   # 1-2 sentences describing the lead — visual identifiers (scar, jacket, hair, etc.).
chapter_synopsis:    # 1-paragraph synopsis of THIS chapter's narrative arc.
visual_style:        # e.g. "watercolour manga", "minimal black-and-white indie", "western YA comic", "ghibli pastoral".
reading_direction:   # ltr (default; English, Korean Webtoon) / rtl (Japanese manga). Tunes panel composition.
dialogue_language:   # en (default) / ko / ja / zh-tw / th / id. Loads the per-locale font + bubble shape.
brand_kit_slug:      # kebab-case for the chapter's brand kit. e.g. teahouse-detective-ch1.
chapter_slug:        # kebab-case for HTML output filename. e.g. teahouse-detective-ch1.
```

---

## Quality controls (auto-applied)

- **Cost upfront.** Before any panel renders, the agent surfaces the plan: 12 panels × $0.25 + cover × $0.40 + scroll assembly + teaser = ~$4 total.
- **Webtoon-vertical skill loaded.** Composition rules from the `webtoon-vertical` skill apply per panel: rule-of-thirds for vertical scroll, top-third dialogue clearance, focal-moves-down-and-right for natural reading pacing.
- **Per-panel critique.** The cross-asset critic runs after each panel; identity drift below 0.85 pauses for triage.
- **Auto-page-assembly.** The 12 panels stitch into the single vertical scroll via `ffmpeg-grid` (1-column layout) — no manual gap math, no pixel-precise alignment work.
- **Brand chain on all three exports.** The cover, the scroll, the teaser all run through the same brand kit so they read as one chapter.

> **Why the no-LoRA route works for Webtoon pilots:** 12 panels is short enough that reference-image identity holds. The moment you commit to monthly chapters with a recurring cast, train LoRAs (see playbook `manga-monthly-chapter.md`). For a pilot, this playbook is the right cost / quality / time tradeoff.

## How this works

Eight stages. The first two — brand kit + protagonist anchor — set up the chapter's visual identity. The next three plan + render the panels. The last three assemble dialogue, scroll, and the teaser. The cover renders parallel to the panel batch so it's ready by the time you're picking.

## The steps

### Step 0 — Confirm the brief

The agent reads back the BRIEF and asks two taste questions:
- "Is the chapter a self-contained one-shot, or chapter 1 of a longer arc you'll continue?"
- "Discovery-first (cover does heavy thumbnail work) or paid-reader-first (cover is more atmospheric, less hooky)?"

The answers tune the cover composition + the chapter card overlay.

**STOP**: "Brief approved? (approve / edit [field] [new value])"

### Step 1 — Brand kit + reading direction (~1 min, ~$0.05)

The agent extracts a palette from the protagonist reference + the visual_style keywords. Builds a brand kit named after `brand_kit_slug` with: palette swatches, the visual_style keywords, the chosen reading_direction, the dialogue_language font + bubble-shape conventions, the chapter card overlay style. The kit's finishing chain handles: cover render → scroll assembly → teaser export.

**STOP**: "Brand kit + reading direction shown. Approve, or tune one element? (approve / tune [palette/font/bubble-style] [direction])"

### Step 2 — Protagonist anchor lock (~30 sec)

The agent registers the protagonist reference as the character anchor for the chapter. From here every panel auto-binds to this anchor.

**STOP**: "Anchor locked. Continue to panel planning? (continue / refine the reference)"

### Step 3 — Panel planning (~2 min, ~$0.02)

The agent reads `chapter_synopsis` and proposes a 12-panel structure with reading-direction-aware composition cues: which panels are wide establishing shots (panel 1, panel 6 mid-chapter reset), which are tight emotional beats (panels 3, 9), which carry dialogue (most), which are silent (1-2). For each panel: a 1-sentence shot description + a 1-sentence dialogue line.

> **For the agent**: bias toward the visual_style. Watercolour-manga lingers (more silent panels, slower pace). Western YA indie pushes plot (more dialogue, faster cuts). The webtoon-vertical skill encodes the rule: a 12-panel chapter has a focal-density curve — light at panels 1, 6, 12; heaviest at panels 4, 9.

**STOP**: "12-panel plan + dialogue lines shown. Approve, refine, or rewrite a panel? (approve / refine [#] [direction] / rewrite [#] [new]"

### Step 4 — Render the 12 panels + cover (parallel, ~10 min, ~$3.40)

The agent runs the 12-panel batch via `generate_project({ aspect_ratio: "9:16", consistency_priority: "high" })` with `protagonist_ref` passed as the quality anchor on every panel so the lead holds across all 12. The cover is a separate `create_media(action:"generate", model_override:"gpt-image")` hero-pose render at premium quality (1080×1620).

> **For the agent**: render panels with `gpt-image` (best comic/manga stylization + legible in-panel text) or `nano-banana` for clean paneling; pass `protagonist_ref` as the anchor URL on each scene. Per-panel composition follows the webtoon-vertical skill's focal-positioning rule for the panel's index. Cover renders at `quality_threshold: 0.9` with one retry. Surface the cross-asset critic verdict; pause on drift below 0.85.

**STOP**: "12-panel batch + cover + critic verdict shown. Approve all, redo specific, or accept drift on [#]? (approve / redo [#] [direction] / accept [#])"

### Step 5 — Dialogue placement (~2 min, ~$0.20)

For each panel that carries dialogue, the agent overlays speech-bubble-style text using the `comic-typography` skill. Per-panel: identifies the focal face, places the bubble in a clear quadrant (default top-right for ltr, top-left for rtl), sizes the bubble + font for legibility on a phone screen. The dialogue_language brand kit setting loads the right font.

**STOP**: "Dialogue placement shown. Approve, refine specific, or relayout a panel? (approve / refine [#] [direction] / relayout [#])"

### Step 6 — Scroll assembly (~2 min, ~$0.10)

The agent stitches the 12 panels into a single vertical scroll image at 1080 × ~24000 via `create_media(model_override:"ffmpeg-grid", params:{ columns: 1, gap: 24 })` (a 1-column grid = a vertical scroll). The 24 px gap matches the Webtoon Canvas default. Panel 1 gets the chapter card overlay (chapter_number + chapter_title) via `hyperframes-caption`.

> **For the agent**: a Webtoon Canvas upload caps at 30 panels per scroll; 12 panels with default gaps fits well under. The teaser uses the first 4 panels at full bleed.

**STOP**: "Scroll image shown (1080 × ~XXXXX). Approve, refine gap, or restart? (approve / gap [pixels] / restart)"

### Step 7 — Social teaser (~3 min, ~$0.20)

The agent picks the first 4 panels (or the 4 highest critic-scoring panels, host's choice). Adds subtle parallax motion via `create_media(action:"animate", model_override:"seedance-i2v", source_url:<panel>, resolution:"auto", duration:5)` — characters stay still, the camera does slow pushes / pans, 5 sec per panel. `ffmpeg-concat` the 4 clips → ~20-30 sec 9:16 MP4. Score it with `create_media(action:"music", model_override:"music", lyrics_prompt:"[Instrumental]", duration:<≥ teaser length>)`, then lay it under the video with `create_media(action:"mux_audio", model_override:"ffmpeg-mux", audio_fill:"loop")` so the cue covers the full teaser.

> **For the agent**: motion intensity at 30% of seedance's default — these are panels, not action scenes. Over-motion reads as gimmicky on social. The brand kit's end card closes the teaser. `audio_fill:"loop"` prevents a silent tail when the stitched length exceeds the music track.

**STOP**: "Teaser approved? (approve / refine pacing / restart with different panels)"

### Step 8 — Chapter HTML + scorecard

The agent writes `public/chapters/{chapter_slug}.html` containing the cover, the scroll, the teaser, the dialogue script, and the brand reference. Calls the scorecard to surface protagonist on-modelness across all 12 panels.

## Final output

```
✅ Chapter HTML:           public/chapters/{chapter_slug}.html
✅ Cover (1080×1620):      <URL>
✅ Single-scroll (1080 × ~XXXXX): <URL>
✅ Social teaser (30s 9:16): <URL>
✅ Dialogue script:        public/chapters/{chapter_slug}-dialogue.txt
✅ Brand kit (reusable):   ckit_{brand_kit_slug}
✅ Project viewer:         <project URL>

Total spent: $X.XX of $6 ceiling
Total wall-clock: MM:SS
Critic verdict: SHIP — protagonist face consistency 0.XX across all 12 panels
```

## What to do next

- **Upload to Tapas / Webtoon Canvas the same evening.** The scroll is upload-spec; the cover is thumbnail-spec; the teaser is the cross-post to TikTok / Reels driving discovery.
- **Train a protagonist LoRA from these 12 panels** — they're already on-model + in your style; `submit_lora_train` produces a per-character LoRA in ~5 min. Chapter 2 onwards is 50% cheaper per panel + identity locks via training, not reference.
- **Chapter 2 via `manga-monthly-chapter.md`** — once you have a LoRA + an active reader base, level up to the 60-panel monthly. Same brand kit, more panels, higher per-chapter ceiling.
- **For agency / IP pitches**: the chapter HTML is a one-link sample. Hand the URL to a webtoon agency or a comics publisher.
- **For paid Patreon / Substack subscribers**: the scroll + the teaser are the public bait; bonus art (key-art renders from your moodboard) is the paywalled value.

---

> *"A Webtoon doesn't sell on the first panel. It sells on the third — the moment the reader knows you can keep this up."* — every Webtoon Studios producer. This playbook is built around exactly that bar.
