Little Tailor Books · 16 Jul 2026 · Fable 5

Your idea won — and it's now built & proven

Captain Leo / Star Treasure page problem: solved. Tested with 3 different children on 5 page types, then a complete book with zero human QC.
VERDICT: adopt "perfect once → inject each customer". Your master-book idea beats per-order regeneration on every axis that matters: page consistency, QC time and predictability — at the same cheap cost (£0.65/book measured, incl. all retries). Opus 4.8's best-of-N wasn't wasted either: it's now the auto-QC gate that catches the few injections that drift, and the tool that perfects each master once. The two ideas together are the pipeline.
98–100
scene fidelity, all 12 tests
0
pages needing human QC (Kaja book)
£0.65
per customer book, measured

The problem, in plain words

Every page used to be a fresh dice-roll: gold map one roll, brown the next; full moon here, crescent there. Fixing a page for one customer fixed nothing for the next one.

Your idea flips it: draw each story's 13 pages perfectly ONCE (the "master book"), then for every customer just tell the model "same picture, different child". The scene is frozen — only the child changes. A page bug fixed in the master is fixed for every customer, forever.

Proof 1 — same scene, any child

Three very different children injected into Leo's finished pages. Scene fidelity scored 98–100 in every single test; aspect ratio now pinned square (the drift you saw is fixed).

Kaja (9, pink glasses) — cover

Leo master cover
Master (Leo)
Kaja injected cover
Injected (Kaja)

Scene 99 · identity 98 · first try, no retry needed. Same on p02 (99/97) and the wide sailing page p04 (100/98).

Martyna (~3, blonde bun) — blanket fort p02

Leo master p02
Master (Leo)
Martyna injected p02
Injected (Martyna)

Scene 98 · identity 98. Treasure chamber p10: 99/96. Toddlers work.

Amira (dark-skinned) — the hard case, and the safety net

Amira first attempt - skin lightened
1st try — skin lightened ✗ (identity 70)
Amira after strict retry
Auto-retry — fixed ✓ (identity 95)

The model's known weakness showed up exactly where predicted: it lightened Amira's skin and made her younger on 2 of her 3 pages. The auto-judge caught both — no human looked at anything — and a stricter retry prompt ("skin tone must EXACTLY match, do NOT de-age") fixed both within 1–2 retries. Her cave page passed first try (95).

Amira p04 first attempt
Wide page, 1st try ✗ (65)
Amira p04 strict retry
Auto-retry ✓ (95)

Bonus: real clothes still possible

Kaja hero reference
Kaja's hero (real dress)
Kaja with her real dress injected
Injected + her real dress ✓ (98/95)

The injection can swap the master's clothes for the customer child's real outfit in the same call — the "recognition lever" survives the new architecture (decision for you below).

Proof 2 — a whole book, hands-off

I then built the real thing: "Captain Kaja and the Star Treasure" — all 13 pages injected from Leo's masters by the new production tool (inject_book.py), every page auto-judged, failing pages auto-retried. No human touched it.

13/13
pages passed the gate
21
images incl. retries
£0.65
whole book

How the run went: 9 pages passed first try. p01, p03, p05 drifted (the model sometimes returns the master unchanged or keeps Leo's hair) — the judge caught every one and retries fixed them. p11 (sleeping child, eyes closed) resisted 3 generic retries, so it was auto-flagged; one escalation prompt that names the concrete difference ("the child has red curls — WRONG — paint long light-brown hair, glasses folded on the nightstand") fixed it first try, and that escalation rule is now built into the tool. Net human QC for this book: zero pages.

cover
cover
p01
p01 · bathtub bottle
p02
p02 · gold map
p03
p03 · bed→ship
p04
p04 · sailing
p05
p05 · crab throne
p06
p06 · tickle test
p07
p07 · the cave
p08
p08 · bandaged claw
p09
p09 · gold staircase
p10
p10 · chest of stars
p11
p11 · asleep (escalation fix)
p12
p12 · goodnight

What each side got right

ApproachCost / bookPage consistencyHuman QC
Old: regenerate all pages per order£0.53dice-roll~15 min every book
Opus 4.8: best-of-4 on every page~£1.77goodstill per-book
Yours: master once + inject (+ judge gate)£0.65 measuredfrozen sceneflagged pages only

Your cost instinct was right with one nice surprise: premium masters aren't needed. The cheap model already produced 100/100 masters when we let best-of-N pick the winner — so the one-time master cost is pennies (~£0.40–£1.60 per story incl. re-rolls), not premium-model money. Premium stays opt-in for a stubborn page, nothing else.

Found along the way: master bugs are now one-time bugs

The injection copies the master so faithfully that it copies its mistakes — which is exactly what you want, because a master bug fixed once is fixed for every future customer. The current Leo masters have a small punch-list before they're production-ready:

Each is a one-time fix with the best-of-N tool, ~£0.10–£0.30 per page, then never again.

Addendum (same day, while you're away): Star Treasure is now bilingual

You asked what I can do that Opus 4.8 can't, without waiting for you to lock the master pages. Answer: the Polish text — it lives in the story recipe, not in the images, so it waits on nothing. Full rhyming PL translation of Captain {name} and the Star Treasure is done, in BOTH gender variants (Polish past tense forces it: "śmiał się" / "śmiała się"; girls get "Śpij dobrze, Kapitanko"). The renderer picks the right variant from the child's pronoun automatically — new v2.7 scheme text_pl_m/f, old stories untouched.

Sample — p07, the cave (girl version)

„Próba DWA: Jaskinia Ciemnych Szeptów przed tobą. Przejdź przez nią sama. Przejdź przez nią z odwagą." W środku cienie syczały coraz śmielej... Kaja szepnęła: „Boję się — ale idę dalej." Bo właśnie tak wygląda odwaga prawdziwa: iść naprzód, choć strach za rękaw porywa.

Both demo books' HTML rebuilt bilingual for £0 (text-only — no images touched). Treat my Polish as a solid draft: your read-through decides. The other 10 stories get translated after you've read the English versions, so your edits don't orphan the translations.

Decisions for you

What changed on disk: gem.py (aspect-ratio support, additive), inject_hero.py v2 (AR pin + outfit swap + strict retry), inject_validate.py (the test matrix, rerunnable), inject_book.py (the production tool with the auto-QC gate). Snapshot taken first (versions/v2.5b…), all changes additive, VERSIONS.md updated. Evidence: orders/_inject_validation_2026-07-16/ + orders/demo_star_pirates_kaja_injected/. Today's total AI spend: 33 images ≈ £1.02.

Private report — unlisted URL, not linked anywhere. Full-size images on the Synology share.