SB Concat Strings
Concatenate twenty string lists element-by-element — the storyboard glue
- text
Plain string concat is easy - you join two strings with a space. This node isn't that, and the difference matters in batch pipelines. SBConcatStrings takes up to twenty string lists and merges them element-by-element with a separator, so row 1 of input A gets joined with row 1 of input B, row 2 with row 2, and so on. If your storyboard workflow produces per-scene prompt fragments in parallel lists, this is the node that reassembles them into per-scene full prompts without you writing any glue.
How it works
Each string_N input is treated as a list (it's INPUT_IS_LIST-aware, so it plays with list outputs). The node walks the lists in lockstep: for index 0 it pulls element 0 from every connected input, joins them with your separator, and pushes that to the output list; then index 1, and so on. Shorter lists get broadcast - if list B has one element, that single element pairs with every element of list A. That's a thoughtful default for things like a fixed style suffix that should append to every scene prompt.
Empty strings are dropped before joining, so you don't get trailing , , artifacts from an unused slot. Skip an input entirely and it's just skipped.
The inputs
- num_inputs (INT, 2–20, default 2) - how many string slots to show/use. The JS extension resizes the node's inputs to match.
- separator (STRING, default
", ")- joined between fragments. - string_1 through string_20 (STRING, optional) - the fragments. Any subset can be connected.
- text (STRING list) - the output: one joined string per row.
Where it fits
This is the natural final stage after the pack's SBJsonParser. That node emits a dozen parallel lists - one per cut, for time of day, camera shot, composition, character, and so on. Run the ones you want through prompt assembly and merge them here, per cut, and you get a complete prompt per scene in order. It's also why it lives in the StoryBoard category rather than Utils: it's built for aligned row-wise data, not one-off joins. For the simple two-string case, the pack also has UtilConcatStrings, which is the one you want when you just want "a" + " " + "b".
Install
Part of the IXIWORKS pack - ComfyUI Manager → search ComfyUI-VideoDescription → Install, restart, or clone the repo into custom_nodes/. No extra dependencies; it's pure Python string handling on top of ComfyUI's list plumbing. Small node, boring description, but it's the difference between a storyboard pipeline that spits out usable prompts and one that spits out twenty lists you have to reassemble by hand.
Inputs (22)
| Name | Type | Default | Description |
|---|---|---|---|
| num_inputs | INT | 22–20 | — |
| separator | STRING | , | — |
| string_1opt | STRING | — | |
| string_2opt | STRING | — | |
| string_3opt | STRING | — | |
| string_4opt | STRING | — | |
| string_5opt | STRING | — | |
| string_6opt | STRING | — | |
| string_7opt | STRING | — | |
| string_8opt | STRING | — | |
| string_9opt | STRING | — | |
| string_10opt | STRING | — | |
| string_11opt | STRING | — | |
| string_12opt | STRING | — | |
| string_13opt | STRING | — | |
| string_14opt | STRING | — | |
| string_15opt | STRING | — | |
| string_16opt | STRING | — | |
| string_17opt | STRING | — | |
| string_18opt | STRING | — | |
| string_19opt | STRING | — | |
| string_20opt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |