Tutorials
Build a 4-page bedtime story in 10 minutes
The fastest way to feel SteadyShot’s consistency engine working. You’ll create a child-friendly character, lock it, generate 4 coherent illustrated pages, and export to PDF — all from the web UI. Total cost: ~10 credits.
What you’ll build
A 4-page bedtime story starring “Mira the fox”. Same character across all 4 pages — same fur, same scarf, same watercolor style. Last page exported to a downloadable PDF.
Step 1 — Create the character (2 min)
- Go to /dashboard → Create Character.
- Fill in:
- Name:
Mira - Description: A young red fox with bright amber eyes, a soft cream-colored belly, and a sky-blue scarf. Friendly, curious, slightly shy.
- Art style:
watercolor children’s book illustration, soft edges, warm palette - Reference image: skip — we’ll let Claude auto-extract a rich descriptor.
- Name:
- Click Create Character.
Step 2 — Refine identity (1 min, free)
- On the Refine Identity step, click Auto-fill with AI with no instruction. Claude expands your one-line description into a rich identity descriptor (eyes, fur tone, scarf pattern, posture cues).
- Click Continue to References.
Want to tweak the descriptor? Type something like
add a tiny silver star earring in the AI co-pilot before continuing.Step 3 — Generate reference sheet (3 min, 5 credits)
- Pick the default views:
front · left_side · back · happy · sad. - Click Generate 5 Sheets. Front view goes first (~30s) then anchors the others. Total ~3 minutes.
Step 4 — Lock the character (10 seconds)
On the character detail page, click Lock. From now on every scene will anchor against this exact identity.
Step 5 — Generate the storybook (4 min, 4 credits)
Easiest path: use the storybook API endpoint via your terminal — it chains pages automatically so cross-page consistency stays tight.
bash
# Grab MIRA_ID from the character detail URL after locking:
# /characters/<this is the id>
MIRA_ID="<your character uuid>"
curl -X POST https://steadyshot.ai/api/storybook \
-H "Authorization: Bearer ss_live_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d "{
\"character_id\": \"$MIRA_ID\",
\"art_style\": \"watercolor children's book illustration\",
\"consistency_check\": true,
\"export_pdf\": true,
\"pages\": [
\"Mira sits at the edge of a moonlit pond, looking at the reflection of the stars.\",
\"Mira tiptoes through a glowing forest, fireflies floating around her.\",
\"Mira meets a sleepy old owl perched on a low mossy branch. They share a quiet smile.\",
\"Mira curls up under a giant golden mushroom, scarf as a blanket, eyes drifting closed.\"
]
}"Response includes pages[] with the rendered image URLs and a pdf_url for the assembled book.
Step 6 — Open the PDF
Visit the pdf_url in your browser. Save it. Read it to a small human at bedtime.
What just happened
- One character, 4 pages, same identity. The rich descriptor + reference sheet were re-injected on every page so Mira’s fur, eyes, and scarf stayed consistent.
- Chained anchoring. Page 2’s prompt was rendered with page 1 as the visual anchor, page 3 with page 2, etc. That’s why lighting register and stylistic flourishes carried across — not just the canonical references.
- QA scoring.
consistency_check: truemeans each page was scored by Claude Sonnet vision; any page below threshold was auto-retried. - PDF assembly.
export_pdf: truestitched the rendered pages into a downloadable PDF in the same call.
Take it further
- Multi-character story — pass
character_ids: [“mira-id”, “owl-id”]instead. Costs 2 credits per page. - Variation per page — after generation, hover any page and click Vary to produce 4 alternate framings. Useful for A/B testing covers.
- Share the character — list Mira on the marketplace (see Marketplace). Other parents can import her and build their own stories.