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)

  1. Go to /dashboard Create Character.
  2. 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.
  3. Click Create Character.

Step 2 — Refine identity (1 min, free)

  1. 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).
  2. 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)

  1. Pick the default views: front · left_side · back · happy · sad.
  2. 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: true means each page was scored by Claude Sonnet vision; any page below threshold was auto-retried.
  • PDF assembly. export_pdf: true stitched 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.