Panels above are real, unretouched output from one generate_comic call.
"Package Dash" — one call: cover + 2 pages + PDF.



LLM builds the storyboard: characters, pages, panels, dialogue.
FLUX generates each panel image, no text baked in.
Panel frames, speech balloons, and caption boxes composited on.
Cover + pages + PDF + decision-grade metadata.
Most generators forget you the moment they answer. BoredComic remembers.
Register a hero once — canonical look, stable seed, rendered reference sheet. Every future comic that stars them keeps the same design. Your cast lives here.
Every generate_comic with a seriesId becomes the next episode — the story continues from last episode's ending. Run a weekly webtoon on autopilot.
"Make panel 2 a dramatic close-up." One page re-written and re-drawn with the original seed and cast — base rate, not full price. Revisable for 7 days.
SHA-256 of every file, an HMAC-signed receipt, and an explicit commercial license with provenance. Lost the response? get_job re-serves a paid delivery free for 7 days.
Plus: webtoon vertical-strip mode · CBZ output · per-panel images with alt text.
MCP endpoint: POST /mcp
— 9 tools total; paid calls via x402, no free quota.
| Param | Type | Description |
|---|---|---|
| prompt | string | What the comic is about (min 3 chars) |
| genre | enum | horror · romance · action · comedy · manga · fantasy · sci-fi · slice-of-life |
| pages | 1–10 | Number of pages |
| style | enum | manga · western · semi-realistic · chibi |
| aspectRatio | enum | 3:4 · 9:16 · 1:1 (default 3:4) |
| language | string | BCP-47, e.g. en · id · ja · zh (default en) |
| colorMode | enum | color · bw (default color) |
| layoutMode | enum | page · webtoon — vertical strip for scroll platforms |
| characterIds | string[] | Registered characters (create_character) that must star |
| seriesId | string | Continue a series (create_series) from last episode's ending |
{
"jobId": "cg_1784...",
"summary": "3-page action manga 'Neon Pursuit': 11 panels, 2 characters. Language: en. Color mode: color.",
"title": "Neon Pursuit",
"coverUrl": "/comics/cg_1784.../cover.png",
"pageUrls": ["/comics/.../cover.png", "/comics/.../page-1.png", ...],
"pdfUrl": "/comics/.../comic.pdf",
"cbzUrl": "/comics/.../comic.cbz",
"characters": [{ "name": "Kai", "role": "protagonist", "appearance": "young detective, blue spiky hair, tan coat" }],
"perPage": [{ "page": 1, "panels": 4, "storyBeat": "The chase begins...",
"panelDetails": [{ "panel": 1, "imageUrl": "/comics/.../panel-1-0.png",
"altText": "Wide shot of a rain-slicked street at night. Characters: Kai." }],
"evidence": { "model": "@cf/black-forest-labs/flux-1-schnell", "layout": "4p" } }],
"integrity": { "algorithm": "sha256", "files": { "cover.png": "e3b0c4...", "comic.pdf": "a1b2c3..." } },
"receipt": { "payloadSha256": "1f4dd1...", "algorithm": "HMAC-SHA256", "signature": "9c2e4d..." },
"license": { "usage": "...commercial use granted...", "provenance": { "seed": 3048613506, "promptSha256": "11814b..." } },
"evidence": {
"model": "@cf/black-forest-labs/flux-1-schnell",
"pagesGenerated": 3, "panelsGenerated": 11,
"generationTimeSec": 40, "costEstimateUsd": 0.02,
"caveat": "AI-generated. Story coherence and visual consistency are heuristic, not guaranteed."
}
}
Paid via x402 v2 on X Layer (USDT0). No free quota.
revise_page & create_character: base rate (0.5) · create_series, get_job, get_quota, clarify_comic & lookups: FREE