IAMCCS CineH3Input · Modular Bridge
The node that merges eight mini-workflows into one MiniMax H3 shot
- audioboard_arranger
- iamccs_prompter
- dialogue_tag_editor
- iamccs_h3_settings
- h3_fun_control_input
- cine_h3_vision_info
- cine_h3_audio_bus
- cine_module_1
- cine_module_2
- cine_linx
- merge_report
If you dragged a MiniMax H3 workflow from IAMCCS (the "CCS" shotboard ones floating around r/comfyui) into ComfyUI and saw this node with nine empty sockets and no widget to speak of, you haven't lost anything. It's a merge node, and its whole job is to take the separate little modules you built - audio lanes, prompts, settings, control media - and fuse them into one IAMCCS_SUPERNODE_LINX "bus" that the H3 backend nodes read.
In other words: the IAMCCS H3 pipeline isn't one big monolithic sampler. It's a bunch of specialized authoring nodes that each write their slice of a plan into a shared dictionary that travels down a single fat wire. IAMCCS_CineH3Input is the point where all those slices get stitched together.
How it works
Every one of those upstream modules emits a CineLinX envelope - a dict carrying resources, outputs, chain history, and policies. This node does a named deep merge over them:
- later meaningful values win,
- empty values never erase data that's already there,
- chain and stage histories get appended, not overwritten.
It also tracks who owns each resource key, so if two modules both claim the same key, you can see the collision in the output report instead of guessing which one silently won. That's the kind of detail that makes multi-author pipelines sane and is worth reading before you chase a mysterious downstream bug.
It needs at least one connected module, and raises a clean ValueError if you feed it nothing.
The inputs and outputs that matter
Every input is optional, and they're all CineLinX sockets - not raw values. The ones you'll actually see wired:
audioboard_arranger- the audio lanes and timeline audio.iamccs_prompter- prompt authoring.dialogue_tag_editor- per-shot dialogue.iamccs_h3_settings- the master H3 settings plan (resolution, steps, upscale, etc.).h3_fun_control_input- pose/depth/edge control frames.cine_h3_vision_info- visual/vision metadata.cine_h3_audio_bus,cine_module_1,cine_module_2- extra slots if the standard set isn't enough.
Outputs:
cine_linx- the merged bus; this is what you feed the Shotboard planner or H3 backend nodes.merge_report- a JSON string listing connected inputs, resource owners, and any collisions.
Installing it
This ships as part of the IAMCCS-nodes pack. In ComfyUI Manager, search IAMCCS, or:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Then restart ComfyUI. The pack wants a recent ComfyUI (≥ 0.3.0), Python ≥ 3.12 and torch ≥ 2.8.
Gotchas
The honest warning: this node does nothing on its own. There's no model inside it, no pixels touched - if you didn't load an IAMCCS H3 Shotboard workflow (from comfyui-iamccs-workflows or the author's Patreon deep dives), this node has no reason to exist in your graph. It's plumbing in the ComfyUI sense: invisible when it works, and the thing you suspect when a merged value is wrong. If the downstream backend is acting like it never got a setting you set, check merge_report for which upstream module actually owns that resource - a stale duplicate module feeding the same socket is the usual culprit.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| audioboard_arrangeropt | IAMCCS_SUPERNODE_LINX | — | |
| iamccs_prompteropt | IAMCCS_SUPERNODE_LINX | — | |
| dialogue_tag_editoropt | IAMCCS_SUPERNODE_LINX | — | |
| iamccs_h3_settingsopt | IAMCCS_SUPERNODE_LINX | — | |
| h3_fun_control_inputopt | IAMCCS_SUPERNODE_LINX | — | |
| cine_h3_vision_infoopt | IAMCCS_SUPERNODE_LINX | — | |
| cine_h3_audio_busopt | IAMCCS_SUPERNODE_LINX | — | |
| cine_module_1opt | IAMCCS_SUPERNODE_LINX | — | |
| cine_module_2opt | IAMCCS_SUPERNODE_LINX | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| cine_linx | IAMCCS_SUPERNODE_LINX | — |
| merge_report | STRING | — |