IAMCCS Cine Line Stacker
The boring node that feeds the planners
- lines
- line_count
- report
IAMCCS Cine Line Stacker is the least impressive node in this pack and one of the most useful in practice. It takes up to eight multiline strings, joins them into one string, and hands the result to the planner nodes that actually do the work. That's it. No AI, no tensors, no model. Just text plumbing - but text plumbing that keeps a multi-shot pipeline from becoming a rat's nest of Show Text nodes.
The IAMCCS "Cine" system is built on pipe-delimited shot lines. The MultiGen Director wants seconds | cut_mode | ref | audio_index | label | prompt | dialogue | voice; the V2V timeline wants its own format; the PromptRelay timeline wants seconds | local prompt | camera note. This node is the friendly front-end for those formats: instead of hand-typing a giant raw string into a single text widget, you get one box per shot.
How it works
The core is a mode selector that changes nothing about the joining - it's a label for what the output will feed:
multigen_shot_lines- lines destined for the multi-generation director.v2v_timeline_lines- lines for a V2V timeline planner.generic_lines- anything else.
skip_empty (default yes) drops blank lines, which matters because these planners treat blank lines as real shots if you let them through. comment_header lets you prepend comment lines; anything not starting with # gets one added automatically, so comments survive into the JSON the planners parse.
Outputs: lines (the joined string), line_count (real, non-comment lines - useful for sanity-checking how many shots the planner will see), and report.
The input you'll actually set
line_1throughline_8- put one shot per line inside each. You don't need all eight; empty ones vanish whenskip_emptyis on.
There's no secret here. If you've already got your shot data as a raw multiline string somewhere, skip this node and paste straight into the planner. It's for when you want editable, separated inputs or when an upstream node emits prompts per line.
Install
Standard pack install - Manager search IAMCCS, or:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
README floor: ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8. Pure Python, no dependencies.
Where people get burned
- Forgetting
mode. It doesn't change output, but the planners don't care what you label it either - it's metadata for humans. Pick the mode that matches your destination so your own workflow stays readable. - Comments vs. content. A line starting with
#is a comment and is not counted inline_countbut is still in the output string. Downstream parsers strip or respect them inconsistently, so if a shot mysteriously shows up as a comment, check the header. - The
|separator is sacred. These lines get split on pipes downstream. If your shot prompt contains a literal|, the planner will read it as a new field. Avoid pipes in dialogue/prompts or escape them. - It's a thin convenience wrapper (subclass of the pack's LTX-2 cinematic line stacker, same code). Zero search impressions, one-author tooling - but this is one of the genuinely safe nodes to use standalone.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | multigen_shot_lines | 3 options: multigen_shot_lines, v2v_timeline_lines, generic_lines |
| skip_empty | COMBO | yes | 2 options: yes, no |
| comment_header | STRING | — | |
| line_1opt | STRING | — | |
| line_2opt | STRING | — | |
| line_3opt | STRING | — | |
| line_4opt | STRING | — | |
| line_5opt | STRING | — | |
| line_6opt | STRING | — | |
| line_7opt | STRING | — | |
| line_8opt | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| lines | STRING | — |
| line_count | INT | — |
| report | STRING | — |