tokenstore

Keeping Characters Consistent Across an Adult Script

How a 剧本 pins its named cast so faces, bodies, and tattoos stay the same across every stitched shot — and how to keep that consistency while you edit.

3 min read

A three-minute adult scene is a dozen shots stitched together, and the fastest way to break the illusion is for the woman in shot 2 to have a different face — or a different tattoo — in shot 9. A good 剧本 fights that drift from the first line by naming the cast and pinning who they are, so every shot renders the same people.

Consistency is a script-level decision before it is a render-level one. Here is how the 剧本 holds a cast together, and how to keep it holding when you edit.

Why characters drift

Left to render each shot independently, an image model reinvents the person every time — a new face, a new body, markings that flicker in and out. Across a multi-shot scene that reads as a cast change mid-act. The fix is a shared identity every shot references, and that starts in the script.

The named cast

Every generated 剧本 comes back with a characters array — names like Mara and Deacon. Those names are not decoration: they tag which people appear in each scene's beat, so the director plans continuity across the whole arc instead of treating each scene as a stranger. When you write your own beats, refer to the cast by those same names.

One reference, every shot

When the storyboard renders, the scene builds a shared character reference and every non-frame shot is rendered against it. That is the mechanism that keeps the same face and body across all the stitched clips. In an edit-mode draft you can even see it — the scene.characterImage preview is the reference the shots will hold to.

Explicit character identity, skin markings, and tattoos are carried across scenes and shots deliberately — a tattoo on one shoulder in scene 1 stays on that shoulder in scene 9, instead of flickering on and off between clips.

Tattoos and skin markings

Distinguishing marks are the easiest continuity tell to get wrong, so they are pinned to the reference and reused. If your cast has a specific tattoo, birthmark, or piercing, name it once and the scene keeps it consistent everywhere it appears — you do not re-describe it per shot, and it will not drift between them.

Keeping it consistent through edits

Editing a draft does not have to break the cast. In a structured edit the shared character (and world and wardrobe) live at the top level of the scene, above the individual beats — change one and every non-explicit scene re-expands against the new value, so the whole storyboard stays coherent instead of one shot going off-model. Leave those alone and edit only beats, and the cast is untouched.

curl -s -X PUT "$TOKENSTORE_URL/api/v3/contents/generations/tasks/cgt-.../plan/structured" \
  -H "Authorization: Bearer sk-..." -H "Content-Type: application/json" \
  -d '{ "character": "Mara: dark bob, sleeve tattoo on the left arm",
        "segments": [
          { "index": 1, "beat": "she leans in the doorway, watching him" }
        ] }'

The shared-style fields are documented under storyboard modes.

Frames override the shared reference

One catch: pinning a shot's first_frame or last_frame renders that shot frame-conditioned, and the frame replaces the shared character reference for that shot — the two cannot combine. So a pinned frame should already show your character. Otherwise leave frames unset and let the shared reference keep every shot on-model.

Where to go next

Open the playground
Keeping Characters Consistent Across an Adult Script — Nureta Guides