Reusing work between runs

Most of what a pipeline does costs money or time: transcription, AI editing decisions, generated video, synthesized speech. Puffin Ship can remember what a step produced so you do not pay for the same work twice. This page explains exactly when that reuse happens, and, just as importantly, when it deliberately does not.

The short version

Saved step output belongs to a run group, not to a template.

  • Clicking ▶ Run on a template starts a new run group with nothing saved. Every step runs again, every generated asset is generated again, and nothing from any earlier run is reused.
  • Starting a run from inside an existing run group can reuse that group's saved work.
  • ↩ Re-run from this step on a finished or failed run reuses everything before that step.

Both halves of that are intentional. A new video should not inherit another video's decisions, and a second attempt at the same video should not cost full price.

Starting fresh: no reuse

There is no "reuse from the last run" behavior. Two separate runs launched from a template are independent: the second one does not look at what the first one produced, even if you changed nothing at all in between. It starts a new group, that group has nothing saved yet, and every step executes from scratch.

If you clicked ▶ Run expecting to pick up where the previous run left off, that is why everything ran again. Use one of the two reuse paths below instead.

Reusing work: run from inside the group

Open the run group you were working in and start a run there. That run can reuse any step the group already has saved, so only the steps affected by your change have to run again.

This is the normal way to iterate on one video: adjust a prompt or a parameter, run again inside the same group, and pay only for what actually changed.

See Run groups and variants for how groups work.

Reusing work: re-run from a step

Once a run has finished or failed, each step in the run view gets a control. It starts a new run in the same group beginning at that step, reusing everything before it. Use it when one decision was wrong and everything up to it was fine, for example when the script is good but the b-roll choices are not.

That step and everything after it runs again. Everything before it is reused.

For AI steps that brainstorm concepts first, re-picks the concept from the ones already generated, and the menu beside it offers Generate new concepts (throw the brainstorm out and start over) or Keep same concept (re-run the step with the concept it already chose).

When a saved step runs again anyway

Even inside a run group, a saved step is only reused if nothing it depends on has changed. It runs again when:

  • an input file changed
  • an upstream step produced something different
  • the step's own parameters or prompt changed
  • a step listed under cache_deps changed
  • you re-ran from that step, or from a step before it

Turning saving off for a step

Steps save their output by default. To force a step to run every time, set cache: false on it. In the editor that goes in the YAML tab (there is no Inspector control for it):

- id: transcribe
  processor: generate_transcript
  input:
    - id: source
      file: speaker-footage
  cache: false

Leave it alone for anything expensive.

cache_deps

Sometimes a step depends on another step without reading its output directly. cache_deps makes that dependency explicit so the step is not reused when it should not be:

- id: background
  processor: fill_level
  input:
    - id: source
      file: background-image
  cache_deps:
    - ai_cut           # run again when ai_cut changes, even though we don't read its output
  params:
    duration_step: ai_cut

Without cache_deps, background would keep its old result even after ai_cut produced a shorter timeline.

Clearing saved work

There is no clear-cache button in the template's settings. To clear saved work, ask the AI Assistant: it can clear a template's saved work entirely, or from a chosen step onward. For a single finished or failed run, use the per-step re-run control instead; it starts a new run from that step, discarding the saved result for that step and everything after it.

You rarely need to clear manually: input files are fingerprinted by their contents, so replacing a file (even under the same name) is detected and re-runs the affected steps automatically. Clearing is for the occasional case where you want to force a fresh result that isn't reflected in any tracked input (for example, to re-roll a non-deterministic AI step against the same inputs).

Generated media is remembered separately

Generated and downloaded media, such as AI clips and avatar takes, is kept alongside your project files rather than as part of a step's saved output, and each generated clip records what it was made for. That is why re-running a step usually reuses the clips it already has instead of paying to generate them all over again, and why deleting a generated clip is enough to have it made afresh.

Next