Nodes/IAMCCS-nodes/IAMCCS AudioBoard Direct -> Shotboard Adapter
ComfyUI Node

IAMCCS AudioBoard Direct -> Shotboard Adapter

The node that keeps your AudioBoard branch honest about the Shotboard's clock

By IAMCCS·Created 11 months ago·Updated 5 days ago· 113
IAMCCS AudioBoard Direct -> Shotboard Adapter
  • cine_linx
  • cine_linx
  • report
duration_seconds20.00
frame_rate24
trim_audio_to_durationtrue
protect_multitimelinetrue

This node exists for one boring-sounding reason: the AudioBoard and the Shotboard must agree on how long everything is, and when you feed them directly they silently don't. In the IAMCCS world, the AudioBoard is your multi-timeline audio editor and the Shotboard is the video planning layer that turns your timeline into per-segment generation. They normally talk through the multigen router, which keeps their metadata in lockstep. This adapter is the boundary you drop in when you're driving an AudioBoard branch by hand - it re-clamps the whole thing to the Shotboard's duration contract so the planner doesn't plan a 24-second video around 18 seconds of audio.

Mechanically it's an honest, boring piece of plumbing, and that's a compliment. It takes your cine_linx bus (the IAMCCS_SUPERNODE_LINX envelope every Cine node carries around), deep-copies it, and rewrites the timing fields: duration_seconds and frame_rate become a target frame count, visual frames get rounded to LTX's 8n+1 grid (because that's what the LTX backends actually want), and the audio tree - cine_audio_tracks, the bus-out lanes, the track JSONs - gets clamped so nothing overruns. Segments that start past the end are dropped; segments that run long get clipped. It reports every one of those decisions to you in the JSON report output, which is where you go when something "looks right but is 0.4s off."

The two inputs that actually matter:

  • duration_seconds and frame_rate - your authoritative timeline clock. Defaults are 20s @ 24fps, which is a sane starting point.
  • trim_audio_to_duration (default on) - actually apply the clamp. Turn it off if you want the audio tree left alone and only the visual timeline adjusted.
  • protect_multitimeline (default on) - the safety you should leave on. If the bus already carries multigen router metadata (a TakePackage), the node bypasses itself and passes the bus through untouched, because clobbering router-owned metadata to enforce your manual duration is exactly how you break a multigen take. The report will say multitimeline_passthrough and give the reason.

Outputs are just the adapted cine_linx plus the report string. Wire cine_linx downstream into whatever needs the corrected timeline; keep the report visible on a text node or preview so you can read the mode, the clipped segment count, and the dropped-segment count at a glance.

Installation is the whole-pack story: search IAMCCS in ComfyUI Manager, or clone it into your custom nodes folder:

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

then restart ComfyUI. No extra pip dependencies, no model downloads - this is pure metadata surgery on the bus. The pack itself wants ComfyUI ≥ 0.3.0, Python ≥ 3.12 and Torch ≥ 2.8, and it's worth repeating the one gotcha that bites everyone: don't leave a duplicate copy of the pack folder in custom_nodes, or ComfyUI can register stale node classes and this adapter starts acting on a bus shaped by an old version. If a node loads but the report mode looks wrong, check for duplicates first.

Common failure: the report shows mode: direct_audioboard_boundary when you expected a pass-through. That means your bus doesn't actually carry multigen metadata - you're in a direct branch, which is precisely when this node should be doing its job. The other classic is a dropped-segment count climbing: you set a 20s duration but your longest audio lane is 45s, and the clamp is doing what it was told. Fix the duration or the source, not the node.

CategoryIAMCCS/Cine/Audio

Inputs (5)

NameTypeDefaultDescription
cine_linxIAMCCS_SUPERNODE_LINX
duration_secondsFLOAT20.000.01–36000
frame_rateINT241–240
trim_audio_to_durationBOOLEANtrue
protect_multitimelineBOOLEANtrue

Outputs (2)

NameTypeDescription
cine_linxIAMCCS_SUPERNODE_LINX
reportSTRING