Nodes/EBU PromptHelper/EBU PromptHelper Combine Two Strings
ComfyUI Node

EBU PromptHelper Combine Two Strings

The dumb little string-joiner that holds your prompt blocks together

By burnsbert·Created 2 years ago·Updated 28 days ago· 2
EBU PromptHelper Combine Two Strings
    • combined
    str1
    str2
    join_str

    Combine Two Strings is the unglamorous glue node of the EBU PromptHelper pack. It takes two strings and joins them with a separator you choose - defaulting to a blank line (\n\n) - and the only interesting thing it does is skip empty inputs. That one behavior is why it's actually worth having: if you've built a prompt as separate blocks (scene block, character block, lighting block) and one of them comes back empty from an upstream node, most joiners will happily concatenate "" + "\n\n" + text and leave you with a leading blank line cluttering the prompt. This one just drops the empty string and joins what's actually there.

    How it works

    It's a two-line function under the hood: collect str1 and str2 only if they're truthy, then join them with join_str. Empty inputs are silently ignored. That's the whole mechanism, and for a pack whose other nodes are rolling dice and generating weather, that's fine - sometimes you need the boring piece.

    The inputs and output

    • str1 / str2 - the two strings to combine, both multiline.
    • join_str - the separator, default "\n\n". Change it to ", " or " " if you're combining into a single-line tag prompt instead of block-style text. Note it's a plain string widget, not a dropdown, so the newline version is literally a blank line.

    Output is a single combined STRING. There's nothing else - no other outputs, no hidden behavior.

    Where it fits

    The pack's example Flux workflow uses it exactly as you'd guess: it takes the assembled quality block and the assembled scene block and joins them with a blank line before CLIP encoding. If you're doing the modern block-structured prompting that LLM-encoded models reward (tags block, then descriptive paragraph, then camera/lighting), this is a tidy way to assemble the pieces from separate Randomize and Random Color Palette nodes without hand-editing. It's also handy when a conditional upstream node returns an empty string and you don't want that to inject a stray newline into your prompt.

    Install

    It ships inside EBU PromptHelper, so you don't install this node alone. ComfyUI Manager: search "EBU PromptHelper", or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/burnsbert/ComfyUI-EBU-PromptHelper
    

    then restart ComfyUI. Zero extra dependencies - the pack's requirements.txt is the Python standard library. There are no models to download.

    Gotchas

    Honestly, not much can go wrong here. The two things worth knowing: if you genuinely want an empty string preserved (say, to force a blank line in the output), this node won't do it - empty inputs get dropped, full stop. And if you're chaining several of these, remember it only takes two strings; for three or more you nest them (A + (B + C)), which reads fine in a graph but is a couple of extra nodes. There's no debug log to worry about, no API call, no seed - it's the most frictionless node in the pack, which is exactly what glue should be.

    CategoryPrompts

    Inputs (3)

    NameTypeDefaultDescription
    str1STRING
    str2STRING
    join_strSTRING

    Outputs (1)

    NameTypeDescription
    combinedSTRING