R42/R43 Universal Path → Editor (lazy)
Four Deliverables, One Chosen Lazily
- cine_linx
- video_path
- delivery_ready
- report
Every creative pipeline grows a second pipeline: the delivery variants. Native output, an RTX-passed final, a fast preview route, a master render. Four ways to finish the same film, and the naive graph computes all four and throws three away.
This node picks one - before the expensive work happens. Its check_lazy_status returns only the single path input the active route needs, so ComfyUI evaluates that branch and leaves the other three unbuilt. Same idea as the pack's other lazy routers, scoped to "which finished file reaches the editor."
How the route is chosen
Nothing on this node chooses it. The decision comes from cine_linx - specifically the shotplan's upscale settings. If upscaling is off, the route is off; otherwise it's the plan's upscale mode, and an unrecognised value is a hard error rather than a guess. Then it maps to one of the four optional string inputs:
native_or_windowed_pathfor the plain and pixel-refine routes;rtx_final_pathfor the RTX and pixel-tiled finishes;fast_pathfor the fast and ultimate-tiled routes;master_pathfor everything else, including the LTX master delivery.
You don't need to memorise the mapping. Wire all four, look at report, and it tells you which route it resolved and which path it took.
Inputs and outputs
Required: cine_linx, plus current_segment and total_segments as force-inputs - the segment counters the editor side needs to know where in the film it is.
Outputs: video_path (STRING), delivery_ready (BOOLEAN), report (STRING). delivery_ready is true simply when a non-empty path came back, which makes it a clean gate for whatever comes next; the report distinguishes "ready" from "waiting for native master", so an empty path is legible rather than mysterious.
What the "Editor" suffix changes
The base R42 path router is a terminal output node - it's the end of the line, and it renders a preview of the delivered file when that file lives inside ComfyUI's output directory (deliberately not for paths elsewhere, since ComfyUI can't serve those anyway).
This variant removes that terminal flag. That matters only in the augmented workflows where a later node - the Universal / Viggle selector - is meant to be the sole endpoint. Having two output nodes in one graph means ComfyUI evaluates both, which defeats the laziness you came for. So this is the version to use when something downstream has to make the final call, and the base version is what you want when the router itself is the last stop.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Manager → IAMCCS Nodes, then restart and hard-refresh the browser. Exactly one copy in custom_nodes.
No dependencies of its own - it's pure routing on STRING inputs - but it's meaningless outside a Shotboard-driven H3 workflow, because it needs a cine_linx payload with a shotplan in it. Feed it nothing and it will tell you so.
Why this pattern is worth understanding
If you write your own nodes, the takeaway is bigger than the node. check_lazy_status is the difference between a graph with four options and a graph with four costs. In a pack with this many deliverable variants, laziness isn't an optimisation - it's what makes the options affordable. And if you just use workflows, it's the reason a graph that looks like it renders four films only renders one.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| cine_linx | IAMCCS_SUPERNODE_LINX | — | |
| current_segment | INT | — | |
| total_segments | INT | — | |
| native_or_windowed_pathopt | STRING | — | |
| rtx_final_pathopt | STRING | — | |
| fast_pathopt | STRING | — | |
| master_pathopt | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video_path | STRING | — |
| delivery_ready | BOOLEAN | — |
| report | STRING | — |