H3 Studio Scenes
A Wire From Inside the Loop Would Be a Cycle, So It Doesn't Have One
- link
- scene
- count
- picked
Rendering a film in one queue means putting H3 Studio inside a loop. Which leaves an obvious question the minute you try it: how many passes should the loop run? The answer lives in the studio's project - but a wire from the studio would close a cycle, because the studio is already inside the loop.
H3 Studio Scenes sits outside the loop, names the studio instead of being wired to it, and publishes the counts.
Inputs and outputs
One optional input, link - the H3 Studio it follows, picked from the node's dropdown. The docs suggest picking rather than wiring: hovering an entry outlines that studio on the canvas, and the crosshair button pans to it. With only one studio in a workflow it's chosen for you.
Three outputs, and which one you use depends on what you're doing:
scene- a list of each scene's index, 0 up. Into Start Loop'slistin List mode, so the loop makes one pass per scene.count- a plain INT: how many scenes. Into Start Loop's iteration count, if you prefer simple mode.picked- a list of only the scenes this run renders. Every scene for a full render; just the selected ones for a partial one.
The two loop shapes
Simple, one pass per scene:
H3 Studio Scenes.count ─▶ Start Loop (simple).num_iterations
Start Loop.iteration_index ─▶ H3 Studio Setup.scene
List mode, which self-documents better:
H3 Studio Scenes.scene ─▶ Start Loop (List).list
And the one for partial renders, where you only want the loop to visit scenes that actually render:
H3 Studio Scenes.picked ─▶ Start Loop (List).list
Start Loop.list_item ────▶ H3 Studio Setup.scene
Note the last one carefully: wire list_item, not iteration_index, into Setup's scene. The passes no longer count from scene 1, so the iteration number stops being a scene number. That's the single most likely mistake with this node, and the reason it exists as three outputs instead of a count.
Keeping the loop in step
The node shows the studio's scene count and keeps it in step, because that's what tells ComfyUI the loop changed when you add a scene to the timeline. At run time the count comes from the studio's project in the same prompt - the node isn't caching a number it read once, it's reporting live.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Nynxz/ComfyUI-NynxzH3
Restart, ComfyUI 0.30.0+. It comes with the pack; there's no model or dependency of its own.
Gotchas
The count is wrong. The node follows the studio it's linked to. If you have more than one studio in the workflow, check the dropdown - with a single studio it auto-picks, with two it might not pick the one you meant.
A partial render renders more than you asked. A scene that isn't picked still renders when a picked scene continues from it and it has no clip to continue from. That's deliberate: you can't continue from nothing. Render those, or accept the extra pass.
"Cycle detected" when you try to wire it. You wired it from the studio instead of linking it. Pick the studio on the node; don't run a link from inside the loop.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| linkopt | NYNXZH3_H3_STUDIO_LINK | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| scene | INT | Each scene's index, 0 up: into Start Loop's `list` (List mode). |
| count | INT | How many scenes: Start Loop's iteration count. |
| picked | INT | Only the scenes a Render ▸ scene renders (every scene for a full render): into Start Loop's `list`, with its list_item — not iteration_index — into H3 Studio Setup's scene. The loop then makes one pass per scene that renders. |