DEV Community

Character Consistency Across 24 Pages of a Generated Picture Book

Drift Is Cumulative and Sneaky

Generating one illustration of a child from a reference photo is easy now. Generating twenty-four of them - same child, same style, different scenes, no drift - is where it gets hard. Drift is cumulative and sneaky. Generate each page independently and every one is individually plausible. Put them in sequence and the child ages three years between page 4 and page 11, the hair changes length, the nose shape wanders. Nobody notices a single page. Everyone notices the book. Picture books are consumed as a sequence, so consistency errors compound in a way single-image metrics never capture.

Identity and Style Are Separate Problems

Identity and style are separate problems worth separating early, because the fixes are different:

  • Identity consistency - is this recognisably the same child? Driven by the reference embedding and how strongly it is weighted per generation.
  • Style consistency - do all pages look like one illustrator drew them? Watercolour texture, line weight, palette, paper grain.

Style is the easier of the two: fix the seed contribution for style, use identical style prompt fragments, and keep sampler settings constant. Identity is harder because it must survive pose, expression, and lighting changes across scenes.

What Holds up? Fix Everything You Can

Same base model version, same sampler, same step count, same style tokens across the whole book. Every free variable is a chance to drift. This sounds obvious and is routinely violated by pipelines that let per-page prompts specify their own parameters.

Regenerate the whole book, never one page. If page 9 is wrong and you regenerate only page 9, it will not match its neighbours. Consistency is a property of the set, so the set is the unit of work. This has an ugly implication: a single bad page costs a full regeneration.

Weight identity conditioning higher than feels necessary. The failure mode where the child is unrecognisable is much worse than the one where poses are a bit stiff. Users forgive stiffness; they do not forgive "that is not my kid."

Constrain the scene vocabulary. Wildly varying environments - underwater, then a spaceship, then a forest at night - drag lighting and palette around, which reads as style drift even when identity holds. A constrained palette across scenes hides a lot.

Evaluating a Set, Not an Image

Per-image quality metrics miss the entire problem. What actually correlates with "this looks like one book":

  • Pairwise face embedding distance across all page pairs, not just page-to-reference - variance matters more than the mean
  • Palette distance between pages
  • A human spot-check on the widest-apart pair, since that is where drift shows first

The Voice Layer Has the Same Problem, Differently

Reading aloud in a parent's voice from a short sample means the cloned voice must stay consistent across chapters recorded as separate synthesis calls. Same failure shape as illustration drift: each clip fine alone, the set inconsistent. Fixing speaker embedding and synthesis parameters across the whole book is the same discipline.

This is what I work on at StoryMine - one photo in, a watercolour keepsake book out, same face on every page.

Caveat

Everything here is empirical and model-specific. The failure modes have been stable; the mitigations change with every model generation, so treat the specifics as dated and the categories as durable.

Comments

No comments yet. Start the discussion.