A six-page graphic novel featuring a human apprentice and a kitsune fox spirit — and the case study where the drift gate's honesty matters more than the artifacts.
A young apprentice lantern-maker named Kai meets a nine-tailed kitsune fox spirit named Suzume. Six pages, two recurring characters, one consistent visual style. This brief is harder than the live-action film — anime cel-shaded panels with named distinguishing marks (Kai's blue kimono with white crane embroidery, Suzume's nine tails and amber eyes) are exactly what diffusion models drift on the hardest.
Same one-call surface as the cinematic short: generate_project with six scenes, character_anchor: "auto", anime-style prompts. The server fanned out, the drift gate ran on every page.
Viewer URL: storyboard.daydream.monster/v/proj_979196233b01
Page 5 — the apprentice lighting the spirit lantern — is the emotional pivot of the spread. Animating it gives the page a webtoon-style motion-comic beat: the lantern flares, ember sparks drift, Suzume's tails sway. One create_media action=animate model_override=seedance-i2v call, 5 seconds, 1 retry (the first run hit a transient worker abort and was retried; second attempt succeeded). Cost: ~$0.30.
Motion comic — Lantern Apprentice page 5, seedance-i2v, 5s, seed 2037346203 (after 1 retry).
The drift gate's final average — 0.27 — is honest about what happened. The kitsune was the hardest part: a multi-tailed fox spirit with a specific palette is exactly the kind of subject diffusion models hallucinate around. The gate logged it explicitly:
"The fox character in the scene is entirely different from Suzume in the anchor image, appearing as a different species or color." — drift_check, score 0.08
"The fox character, Suzume, is a completely different color and lacks her distinguishing multiple tails, while both characters appear different." — drift_check, score 0.14
Pages 1, 4, and 6 (where Suzume is partially obscured or off-frame) scored well. Pages 2, 3, and 5 (where Suzume is the focus) scored badly. The system kept retrying within its 5-retry budget but couldn't pull the score above 0.70 — and instead of pretending it had, it surfaced the score in the response payload for the agent to act on.
For a 6-page comic where Suzume must look the same in every panel, the published anchor-and-retry pipeline is the wrong tool. The right tool — and the one the Z4 design accounts for — is a per-character LoRA trained from a curated set of Suzume reference images. The MCP already has the substrate:
submit_lora_train takes a ZIP of training images and returns a weights_url + trigger word.create_media takes a lora field with that weights_url and bakes the character into every generation.lora_training_ready bucket — the start of an auto-LoRA pipeline.This case study deliberately shows the workflow's failure mode and the upgrade path. A vendor that only ever publishes its happy-path demos is hiding where the workflow actually breaks. The Storyboard MCP surfaces the drift score in the response so the creator's agent can decide — ship, retry, or escalate to LoRA training.
| Capability | Storyboard MCP | Midjourney Niji | NovelAI | Krea / Recraft |
|---|---|---|---|---|
| Character anchor across multiple panels | Partial — anchor sheet + drift gate; LoRA path exists, auto-train pending | Manual --cref per shot | Character locks via tags | References per shot |
| Honest drift reporting | ✓ Per-shot 0–1 score + sub-scores + reasons | None | Tag-coverage estimate only | None |
| Multi-panel batch with parallel render | ✓ One generate_project call | Discord one-at-a-time | API queue | UI per-shot |
| LoRA training accessible to agents | ✓ submit_lora_train MCP tool | No | Yes (own training UI) | No |
| Public shareable viewer page | ✓ Auto-published | Discord-only | NovelAI gallery | UI export |
| Cost for 6-page anime spread | ~$0.30 | ~$0.55 (Standard) | ~$0.40 (Anlas) | ~$0.70 |
For a 6-page spread of recurring named characters with distinguishing marks, the right pipeline is:
generate_project + character_anchor: "auto". Cheap, fast, gives you the layout.consistency_log drift scores. Identify the characters that scored below 0.70 — those need LoRA.lora_training_ready bucket's captured URLs as the starter dataset. Top up with manual reference images if needed.submit_lora_train. Wait 5–15 minutes.generate_project with the LoRA attached. The drift scores climb back into the 0.85+ range.This is the workflow honest indie creators want — the system grades, surfaces, suggests, then lets them upgrade tools as the brief gets harder. No magic, no oversell.
Submit your own pages: mcp__storyboard__generate_project with character_anchor: "auto" + a style like "anime cel-shaded panel illustration, Studio Ghibli warmth". Read the drift scores. Decide whether you need LoRA.