Nodes/Continuity Director/CD · Execution Plan
ComfyUI Node

CD · Execution Plan

Which takes can run in parallel, in what order

By xinjian0101·Created 3 months ago·Updated 2 months ago· 0
CD · Execution Plan
  • shot_chain
  • execution_plan
  • execution_plan_json
  • wave_count
max_parallel4

A batch of 40 takes is not 40 independent jobs. Some takes depend on others - shot two needs shot one's first take as a reference - and running everything at once is how you waste VRAM on tasks that can't even start. CDExecutionPlan is the node that reads your shot chain's dependencies and produces a deterministic schedule: which takes can run together, in which waves, respecting both the dependency graph and your parallelism budget.

It's from Continuity Director, a 20-node pack for repeatable AI video production, and it's the first of the "runtime" nodes - the planning layer that sits between CDBatchDirector's expansion and the actual generation.

What you feed it

  • shot_chain - a CD_SHOT_CHAIN wire from CDBatchDirector. It carries every take plus its depends_on declarations.
  • max_parallel - 1 to 64, default 4. Your concurrency ceiling, which you'd normally set from your GPU's memory and your worker setup.

How the scheduling works

The node builds a dependency graph from the takes, then repeatedly finds every take whose dependencies are all satisfied and batches them into "waves," up to max_parallel per wave. It detects cycles and unknown dependencies and refuses to plan rather than guess. The output is execution_plan (a CD_EXECUTION_PLAN wire for the reliability nodes), execution_plan_json (the full schedule - every wave, every task, readable as text), and wave_count (an integer; the number of sequential steps the batch will take).

Wave_count is the number worth watching: it tells you how many round-trips your batch actually needs. A plan with 8 waves on max_parallel 4 means your dependencies are serializing you; a plan with 2 waves means you've got headroom to raise the ceiling.

Installing it

The whole pack installs clean because it has nothing heavy: no model downloads, no API keys, and requirements.txt is literally a comment saying "No mandatory third-party Python dependencies." Pure standard library. Search "Continuity Director" in ComfyUI Manager and restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/xinjian0101/continuity-director.git ComfyUI-ContinuityDirector

Restart ComfyUI - nodes show up as CD · ..., plus a Continuity Director sidebar with an "Add starter chain" button for the full scaffold. Update with git pull.

Where people get burned

The plan is a plan, not an execution. This node computes the schedule deterministically - it does not run the generation, lease workers, or manage a queue. That's the job of whatever you wire it into (the pack's CDQueueCheckpoint handles checkpointing against this plan), so don't expect this node alone to parallelize your batch. The other common surprise: dependencies must point at existing take ids in the chain, using the take_id format like shot-001-take-01. Reference an id that doesn't exist and the plan refuses with "Unknown dependencies: ..." - which is a much better failure than a deadlocked queue later.

CategoryContinuity Director/04 Runtime

Inputs (2)

NameTypeDefaultDescription
shot_chainCD_SHOT_CHAIN
max_parallelINT41–64

Outputs (3)

NameTypeDescription
execution_planCD_EXECUTION_PLAN
execution_plan_jsonSTRING
wave_countINT