Developer Guide
Dependency graph
Interactive map of the generation graph: pick anything you can edit and see which prompts, sheets, stills and clips go stale.
Every generated artifact stores a hash of the inputs it was made from. Staleness is never a flag we set: on every read we recompute the hash from the current inputs and compare. A mismatch is stale. A row with no stored hash is untracked and never stale. Versioned things (green border) keep every generation as a row and a pointer picks one. Renders record which version of a prompt or sheet they used, so selecting a different version is what makes them stale, not editing the text.
- tracked
- not tracked — a gap
- not tracked, by design
- seeded once, then yours
- versioned
- optional
- goes stale
- makes it stale
Element
you editoptional — when the shot references oneA prop, effect, sound or clip referenced by @token. Detected in the script at the Script stage or added by hand, then yours to edit.
Counts
Change one of these and what depends on it goes stale.
- Token and description (prompts). The token reaches the model, so a rename re-stales every prompt, still and clip that names it
- Image (still)
- Audio or video clip: sent as a reference when the video model takes one
- Its media URL, stamped on a clip it was sent to (referenceKeys). A later compare skips the key when the motion prompt no longer names the element
Does not count
Change these freely. Nothing goes stale.
- Consistency tag
Edit this and these go stale
- in the input hash — an element this prompt names. A motion prompt with a start frame adds the scene-tagged elements too (#2012)
- in the input hash — an element this prompt names. A motion prompt with a start frame adds the scene-tagged elements too (#2012)
- in the input hash — the image URL
- in the input hash — its media URL is stamped in referenceKeys when the motion prompt names it. A re-upload then flags the render; a key for an element the prompt no longer names is not compared (#2012)
- via Clip — the selected clip URL
Connected, but not tracked
- seeded once, then yours — the bibles call detects elements at the Script stage
What "Update all" regenerates
The depth picker is cumulative. Each rung includes the ones above it, and no rung ever creates an artifact that does not exist yet.
- 1.Prompts only — Rewrites stale visual and motion prompts. Nothing renders.
- 2.Prompts + images — Also re-renders a still that is stale, or whose prompt was just rewritten. Never renders a first still.
- 3.Prompts, images + dialogue — Also re-records a dialogue reading whose voice or lines moved. Never a first recording. Video stays for the next tick so the new take can be reviewed.
- 4.Prompts, images, dialogue + videos — Also re-renders a clip whose prompt, still, or dialogue changed in this run, or whose manifest already diverged. Never renders a first clip.
- 5.Everything, incl. music — Also rewrites a stale music prompt, then the track if one exists. Never a first track.