MiniMaxRef Join Strings
A tiny template node that saves you a pile of text-edit nodes
- value1
- value2
- value3
- value4
- output
String plumbing is the unglamorous half of any video workflow, and most ComfyUI sessions end up with a rat's nest of "concatenate" and "text" nodes just to build a filename or assemble a prompt fragment. MiniMaxRefJoinString is a deliberately small answer to that: one expression, four placeholders, done. You write a template like {value1}/{value2}/{value3}/{value4} into the expression input, wire anything into the four value slots, and the output comes out substituted.
The one input that matters is expression - the default is {value1}/{value2}/{value3}/{value4}. The four value inputs each accept STRING, INT, or FLOAT, so you can splice a number from a loop counter straight into a filename without a converter node in between. Two behaviors keep it forgiving: placeholders you don't include in the expression are simply ignored, and inputs you don't connect become empty strings rather than errors. That's the whole feature set, and it's the right size for the job.
Where it earns its keep in this pack is inside the loop. The Director/Guide workflow generates a video per segment, and each segment wants its own output filename - something like scene_003. Wire guide_index (or the auto-incrementing index from your loop) into a value slot, build scene_{value1} as the expression, and pipe the result into the filename prefix of a save node. If you're assembling a prompt from parts - subject + action + camera move - it does that too, though for real template work the pack's own prompt files are the bigger machine.
Two details worth knowing. First, the node forces itself to re-execute every loop iteration (its fingerprint returns NaN), so a filename that depends on the loop index actually updates per pass instead of being cached once. Second, an expression referencing a placeholder you never defined - say {value5} - raises a clear ValueError telling you exactly which placeholder is unknown and which ones exist. That's the kind of error message beginners deserve and rarely get.
Install it with the rest of the pack: ComfyUI Manager (search "MiniMaxRefDirector-ComfyUI"), or
cd ComfyUI/custom_nodes
git clone https://github.com/eaglering/MiniMaxRefDirector-ComfyUI
cd MiniMaxRefDirector-ComfyUI
pip install -r requirements.txt
then restart. The only extra dependency is PyAV for audio handling; this node itself pulls nothing. And a friendly warning: this is a young pack with essentially zero community footprint, so don't expect a dozen StackOverflow answers if something misbehaves - the node is simple enough that if the output looks wrong, you've got a typo in the expression, not a bug in the merge. Honestly, the only real trap is that it's named "Join Strings" but happily joins numbers too, so you might forget it exists and go build a converter chain that this replaces in two inputs.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| expression | STRING | {value1}/{value2}/{value3}/{value4} | Expression with {value1}..{value4} placeholders that get replaced by the connected values. |
| value1opt | STRING,INT,FLOAT | First value. Accepts STRING, INT or FLOAT. | |
| value2opt | STRING,INT,FLOAT | Second value. Accepts STRING, INT or FLOAT. | |
| value3opt | STRING,INT,FLOAT | Third value. Accepts STRING, INT or FLOAT. | |
| value4opt | STRING,INT,FLOAT | Fourth value. Accepts STRING, INT or FLOAT. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output | STRING | The substituted string. |