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
Library location ref
generatedversioned — location_sheet_variantsoptional — when a location is linked to the librarylocation_library.referenceInputHashThe library location as a sequence sees it: the location sheet draws from it and folds its hash in.
Counts
The check compares these. Change one upstream and this goes stale.
- Library location description
- Reference photo hashes
- Style config
- Image model
Does not count
Change these freely. Nothing goes stale.
- Name
Regenerate this and these go stale
- in the input hash
- via Location sheet — the selected sheet version id
Goes stale when any of these change
- in the input hash
- in the input hash
- in the input hash
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 + videos — Also re-renders a clip whose prompt or still changed in this run, or whose manifest already diverged. Never renders a first clip.
- 4.Everything, incl. music — Also rewrites a stale music prompt, then the track if one exists. Never a first track.