Skip to content

Rerunning Failed Nodes

When a generation didn't land — all 4 candidates have problems, or the node errored entirely — you can rerun just that single node instead of the whole workflow. Cheap, fast, no need to re-do the work that already succeeded.

When you'd rerun

Situation What to do
All 4 candidates have minor issues, same problem Re-roll the seed (same prompt, new seed)
All 4 candidates have the same structural problem Edit the prompt, then rerun
One specific candidate has an AI tell that other 3 don't Pick the others — no rerun needed
Node failed entirely (in errors.json) Diagnose the error, fix, rerun

Re-rolling the seed

The fastest fix. Same prompt, different random seed, 4 fresh candidates.

You: rerun the image gen for Scene 03 — none of the candidates landed.
     Same prompt, different seed.

Claude: [invokes regen-nodes.py on the Scene 03 image node,
         produces 4 new candidates, updates the Approve node]

Most workflows have at least one scene that needs a re-roll on first pass. This is normal — generation has variance.

Editing the prompt then rerunning

When the problem is the prompt itself — wrong wardrobe color, wrong pose, contradictory instructions — re-rolling won't help. You need to fix the source.

You: Scene 05's image gen — the avatar's wearing a blue shirt but all
     4 candidates are in a white shirt. Looking at the prompt, it just
     says "casual top." Add explicit "blue cotton t-shirt" to the prompt
     and rerun.

Claude: [edits the prompt text in the .nbflow, saves, invokes regen-nodes
         on that image node, produces 4 new candidates with blue shirts]

Errors in errors.json

If a node errored entirely during the Generation Runner pass, it appears in errors.json next to the output file. Each entry has:

  • The node ID
  • The error type (content_policy, timeout, connection refused, etc.)
  • The attempt count
  • The error message

Common error types and the right rerun:

Error Cause Rerun strategy
content_policy A word in the prompt tripped a safety filter Tweak the prompt language, rerun
timeout Single node took too long Rerun the node — usually succeeds on retry
connection refused G-Labs dropped Restart G-Labs and rerun the whole workflow
api_error Generic upstream API failure Rerun; if it persists, check the G-Labs console

The per-node rerun mechanism

Behind the scenes, the rerun is done by regen-nodes.py — a script that takes a .nbflow and a list of node IDs, calls G-Labs for just those nodes, mirrors fresh output to R2, and updates the downstream Approve nodes.

You don't run it manually. Just tell Claude which node(s) you want rerun:

You: rerun nodes 14, 23, and 45 from XYZG3-V0-1.nbflow

Claude: [invokes regen-nodes, reports new candidates per node]

Bulk re-rolls

If many scenes need re-rolls (e.g., the whole workflow's first pass was disappointing), it's faster to rerun the entire workflow than to call out 8 separate nodes. The Generation Runner uses cache where possible, so unchanged nodes don't redo work.

You: rerun the entire workflow — most scenes need re-rolls

Claude: [invokes the Generation Runner again on the source .nbflow]

Rerunning vs. bumping V0-N

Two related but distinct ideas:

Rerunning
Same .nbflow, same prompts, fresh generations. Output goes to a new timestamped -generated.nbflow next to the old one.
Bumping V0-N
You changed something about the workflow (prompt edit, schema fix). The source .nbflow gets a new version (V0-N → V0-N+1) and the old version is moved to backups/. Then you regenerate.

If you're just re-rolling seeds with no prompt change, you don't need to bump V0-N. If you edited a prompt, bump V0-N first, then generate.

Detailed rules in Chapter 3 — Lvl 1-2 Variants.

When you're ready

Next: Manual B-roll Generation — handling B-roll clips, which run separately from the main .nbflow.