Nodes/IAMCCS-nodes/IAMCCS MultiTimeline Take Picker
ComfyUI Node

IAMCCS MultiTimeline Take Picker

Choose take 3 of chunk 7, get the audio timeline to match

By IAMCCS·Created 11 months ago·Updated 7 days ago· 113
IAMCCS MultiTimeline Take Picker
  • cine_linx
  • cine_linx
  • active_take_json
  • take_audio_timeline_json
  • report
generation_index_json
take_index1
take_track_layoutcollapse_to_lane_1

In the multi-timeline world, a "take" is one generation attempt for one chunk of the project - and after you've generated a dozen of them, the problem is picking which one ships. IAMCCS_MultiTimelineTakePicker is that selector: feed it the generation_index_json produced by IAMCCS_MultiTimelineBridge, set a take_index, and it hands back the chosen take's details and its audio timeline, so the video you render and the audio you composite stay aligned.

It's the selection step in IAMCCS-nodes' Cine/Multigeneration pipeline (from the same author behind the Shotboard/AudioBoard project tooling). If the bridge is the planner, this is the editor's "pick the good one" button.

How it works

The node reads the takes array out of generation_index_json, clamps your take_index into the valid range (so take 9 on an 8-take chunk silently picks take 8 rather than erroring), and deep-copies that take as the new active_take. Then it writes that back into the generation index and exposes it through active_take_json - the exact take contract downstream generation nodes consume.

The take_audio_timeline_json output is the part that matters for real production: it carries the audio segments tied to this take, so whatever you render from this take can be composited against the right audio without a manual sync step. That's the "timeline identity" the README talks about keeping aligned - the whole point of the take system is that video and audio don't drift apart.

take_track_layout mirrors the bridge's setting (collapse_to_lane_1 / preserve_bus_tracks) - keep it consistent with what you used upstream or the track structure won't line up. The optional cine_linx carries chain context through.

Inputs and outputs

  • generation_index_json (STRING) - the index from MultiTimelineBridge.
  • take_index (INT, default 1, 1–64) - which take to activate.
  • take_track_layout (enum, collapse_to_lane_1) - must match the bridge's layout.
  • cine_linx (optional) - chain context.

Outputs: cine_linx, active_take_json, take_audio_timeline_json, report.

How to install

Part of IAMCCS-nodes. ComfyUI Manager search "IAMCCS", or:

cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

Restart. No model downloads. Pack floors: ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8.

Gotchas

The clamping is friendly but can hide mistakes: ask for take 40 of a 12-take chunk and you'll quietly get take 12, so if your "good" take keeps coming back wrong, check the report - it's the only place you'll see the clamp. Feeding a non-index JSON (or empty string) produces a synthetic single-take index rather than an error; that's forgiving, but it means a broken upstream connection can look like a valid single take instead of a problem. And this node selects and exposes - it doesn't generate. Wire its outputs into your sampler/compositor branch, keep the layout consistent end to end, and the take you pick is the take you ship.

CategoryIAMCCS/Cine/Multigeneration

Inputs (4)

NameTypeDefaultDescription
generation_index_jsonSTRING
take_indexINT11–64
take_track_layoutCOMBOcollapse_to_lane_12 options: collapse_to_lane_1, preserve_bus_tracks
cine_linxoptIAMCCS_SUPERNODE_LINX

Outputs (4)

NameTypeDescription
cine_linxIAMCCS_SUPERNODE_LINX
active_take_jsonSTRING
take_audio_timeline_jsonSTRING
reportSTRING