IAMCCS CineAudioInfo
The two-way audio bridge between your TTS, the AudioBoard, and the Shotboard
- cine_linx
- generated_audio
- generated_audio_b
- cine_linx
- tts_srt
- tts_text
- audio_timeline_json
- duration_seconds
- report
- speaker_a_srt
- speaker_b_srt
In the IAMCCS Cine workflow, the cine_linx connector carries everything about a scene - dialogue, timing, audio lanes. IAMCCS_CineAudioInfo is the node that moves audio in and out of that object, and it's the one you'll reach for to bridge TTS, the AudioBoard lanes, and Shotboard custom audio. Its docstring calls it a "bidirectional cine_linx audio bridge," and that's the accurate frame: it both exports (audio timeline → SRT/text for TTS) and injects (generated audio → back into the linx for the AudioBoard).
The mode input picks the direction and granularity:
export_tts_srt- build an SRT + plain text of the dialogue timeline, ready to feed a TTS step.export_speaker_stems- same, but split into per-speaker exports.inject_generated_audio/inject_speaker_stems- take generated AUDIO (fromgenerated_audio/generated_audio_b) and place it back into the timeline.prepare_audio_board/inspect- set up or inspect the audio board contract.
The other settings shape that work: tts_text_mode picks how dialogue is formatted for the TTS suite (tag styles, character tags, chatterbox_v2_tokens, speaker_tags, plain dialogue); lane_injection_mode controls how injected audio lands in the board's lanes (slice_master_by_existing_lanes, speaker_full_timeline_clips, single_master_clip, attach_to_first_lane); and save_subfolder / file_prefix set where generated audio files land (default IAMCCS_generated_audio / dialogue_tts_single_master).
Outputs: the pass-through cine_linx, tts_srt, tts_text, audio_timeline_json (the timeline contract as JSON), duration_seconds, and the split speaker_a_srt / speaker_b_srt. Plus a report. If you're building a dialogue scene, the flow is: BoardMaker_DialogueFoley plans the lines → CineAudioInfo exports the SRT → you run TTS → CineAudioInfo injects the result back → BusOut pulls the mix out. It's the connective tissue of the whole dialogue system.
Installing: part of IAMCCS/IAMCCS-nodes - ComfyUI Manager → search "IAMCCS", or cd ComfyUI/custom_nodes && git clone https://github.com/IAMCCS/IAMCCS-nodes.git, restart. No models to download; it saves audio files to the subfolder you name.
Two honest gotchas. First, like most Cine nodes it's pointless without cine_linx from an upstream IAMCCS stage - with nothing connected it has no dialogue to export or lanes to inject into. Second, the source is careful that export_speaker_stems never lets Speaker B silently fall back to Speaker A's audio in existing graphs - so if you see duplicated stems, check you're actually in the stem-export mode and feeding real A/B audio, not letting the node pick a fallback. The report will tell you what it did; read it before chasing phantom bugs.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | export_tts_srt | 6 options: export_tts_srt, export_speaker_stems, inject_generated_audio, inject_speaker_stems, prepare_audio_board, inspect |
| frame_rate | FLOAT | 24.001–120 | — |
| tts_text_mode | COMBO | tts_audio_suite_tags | 6 options: tts_audio_suite_tags, index_tts_text_emotion, index_tts_character_tags, chatterbox_v2_tokens, speaker_tags, plain_dialogue |
| lane_injection_mode | COMBO | slice_master_by_existing_lanes | 4 options: slice_master_by_existing_lanes, speaker_full_timeline_clips, single_master_clip, attach_to_first_lane |
| save_subfolder | STRING | IAMCCS_generated_audio | — |
| file_prefix | STRING | dialogue_tts_single_master | — |
| cine_linxopt | IAMCCS_SUPERNODE_LINX | — | |
| generated_audioopt | AUDIO | — | |
| generated_audio_bopt | AUDIO | — | |
| adjusted_srtopt | STRING | — | |
| adjusted_srt_bopt | STRING | — | |
| timing_reportopt | STRING | — |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| cine_linx | IAMCCS_SUPERNODE_LINX | — |
| tts_srt | STRING | — |
| tts_text | STRING | — |
| audio_timeline_json | STRING | — |
| duration_seconds | FLOAT | — |
| report | STRING | — |
| speaker_a_srt | STRING | — |
| speaker_b_srt | STRING | — |