Nodes/IAMCCS-nodes/IAMCCS MultiTimeline Bridge
ComfyUI Node

IAMCCS MultiTimeline Bridge

Chop a master audio timeline into chunked generations, automatically

By IAMCCS·Created 11 months ago·Updated 7 days ago· 113
IAMCCS MultiTimeline Bridge
  • cine_linx
  • cine_linx
  • generation_index_json
  • active_take_json
  • concat_plan_json
  • report
chunk_template20s
custom_chunk_seconds20.00
source_busmaster_out
take_source_modeauto_detect_multi_lanes
take_count_modeauto_from_audio
fixed_take_count3
max_takes12
active_take1
frame_rate24.00
take_track_layoutcollapse_to_lane_1
bus_manifest_json
master_out_json
track_1_json
track_2_json
track_3_json
track_4_json
track_5_json
visual_timelines_json

Video generation models work in clips of a few seconds; a project timeline is minutes. Bridging those two scales is the whole job of IAMCCS_MultiTimelineBridge. It takes audio-bus data - the master output or any of five tracks - chops the timeline into generation-sized chunks, and emits a generation_index_json: a structured index of every chunk and take that downstream nodes can iterate over. Think of it as the "plan the whole project before you generate a frame" node.

It's part of IAMCCS-nodes' Cine/Multigeneration subsystem - the production tooling that grew out of IAMCCS' Shotboard/AudioBoard workflow (the README's 1.5.0 release is built around this "Shotboard multigen pipeline" for multi-timeline video work). This node is the front door of that pipeline.

How it works

You feed it bus JSON (via bus_manifest_json, master_out_json, track_1_jsontrack_5_json, or through a connected cine_linx carrying the manifest), pick which bus to plan around with source_bus, and it does the timing math:

  • chunk_template (10s/15s/20s/25s/custom) sets the generation chunk size - custom_chunk_seconds if you pick custom.
  • take_source_mode: auto_detect_multi_lanes finds multiple takes across lanes automatically; chunk_source_bus uses just the chosen bus.
  • take_count_mode: auto_from_audio derives take count from the audio; fixed_take_count forces a number.
  • max_takes caps the total, active_take picks which take is highlighted, frame_rate (24) converts seconds to frames.

The output is the contract everything else consumes: generation_index_json (the per-chunk take index), active_take_json (the currently selected take's details), concat_plan_json (the assembly plan for stitching chunks back into the full timeline), and report. take_track_layout decides whether takes collapse to a single lane or keep their bus tracks - collapse_to_lane_1 for most renders, preserve_bus_tracks when you need per-bus audio identity later.

Inputs and outputs

Key required: chunk_template, source_bus, take_source_mode, take_count_mode, max_takes, active_take, frame_rate, take_track_layout. Optional: cine_linx and the bus/track JSON strings.

Outputs: cine_linx, generation_index_json, active_take_json, concat_plan_json, report.

How to install

Ships in IAMCCS-nodes. ComfyUI Manager search "IAMCCS", or:

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

Restart. No model downloads - this is pure planning logic. Pack floors: ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8.

Gotchas

The JSON inputs are the trap. This node plans from the author's audio-bus contract - if you wire a track_1_json that isn't in the bus_manifest schema, the node falls back to defaults and you get a plan that doesn't match your audio. The report output is the first place to look: it tells you what duration it actually derived. If source_duration resolves to zero, the node just builds a default skeleton (chunk_frames × fixed_take_count), which is a silent way to get a nonsense plan. And remember it's a planner, not a renderer - you still feed the resulting index to the take picker and then to actual generation nodes. The multi-lane auto-detect assumes your audio really has lanes; on a single-lane master bus, chunk_source_bus is the honest choice.

CategoryIAMCCS/Cine/Multigeneration

Inputs (19)

NameTypeDefaultDescription
chunk_templateCOMBO20s5 options: 10s, 15s, 20s, 25s, custom
custom_chunk_secondsFLOAT20.001–300
source_busCOMBOmaster_out6 options: master_out, track_1, track_2, track_3, track_4, track_5
take_source_modeCOMBOauto_detect_multi_lanes2 options: auto_detect_multi_lanes, chunk_source_bus
take_count_modeCOMBOauto_from_audio2 options: auto_from_audio, fixed_take_count
fixed_take_countINT31–64
max_takesINT121–64
active_takeINT11–64
frame_rateFLOAT24.001–120
take_track_layoutCOMBOcollapse_to_lane_12 options: collapse_to_lane_1, preserve_bus_tracks
cine_linxoptIAMCCS_SUPERNODE_LINX
bus_manifest_jsonoptSTRING
master_out_jsonoptSTRING
track_1_jsonoptSTRING
track_2_jsonoptSTRING
track_3_jsonoptSTRING
track_4_jsonoptSTRING
track_5_jsonoptSTRING
visual_timelines_jsonoptSTRING

Outputs (5)

NameTypeDescription
cine_linxIAMCCS_SUPERNODE_LINX
generation_index_jsonSTRING
active_take_jsonSTRING
concat_plan_jsonSTRING
reportSTRING