Nodes/ComfyUI Assistant Node/PVL String Concat x8
ComfyUI Node

PVL String Concat x8

Eight strings in, one string out, zero surprises

By pvlprk·Created about a year ago·Updated 8 months ago· 1
PVL String Concat x8
    • STRING
    â—„string_1â–º
    â—„string_2â–º
    â—„string_3â–º
    â—„string_4â–º
    â—„string_5â–º
    â—„string_6â–º
    â—„string_7â–º
    â—„string_8â–º

    PVL String Concat x8 is the same boring, dependable operation as the pack's Concat x3, just with more slots: eight strings in, one joined string out, nothing added, nothing inferred. The whole reason this node exists is that ComfyUI prompt-building and filename-building genuinely end up with that many parts, and chaining three-input concats into each other is how you get graphs nobody can read.

    It lives in pvlprk/comfyui-pvl-api-nodes ("ComfyUI Assistant Node"). If you've outgrown Concat x3, you've arrived.

    How it works

    Eight required string inputs (string_1 through string_8), one STRING output. The implementation is a plain f-string of all eight, end to end - whitespace is preserved exactly as typed, and no separator is ever inserted. Empty inputs concatenate to nothing, so you can leave slots unused and the output is unaffected.

    Same contract as its little brother, worth repeating because it's the entire personality of this node: the output is byte-for-byte what you put in. That's either reassuring or annoying depending on whether you remembered your spaces. For prompt assembly, the practical move is to make each slot a complete phrase with its own leading/trailing spaces already inside it - slot 1 "a majestic castle, ", slot 2 "golden hour lighting, ", and so on - then the output reads naturally without you thinking about spacing at all.

    When eight slots earn their keep

    Real prompts and filenames are rarely three parts. A typical build: subject, environment, lighting, style, quality tags, a LoRA trigger, a negative-prompt fragment, a seed or date stamp. That's eight slots exactly, and stuffing them all into one text node means editing one giant blob. Split across slots, each is a labeled, editable wire - and you can reuse individual slots in other graphs without copy-pasting.

    The natural companions in this pack: build the pieces with plain text nodes or split something with PVL Split String, then reassemble here. And the output plugs straight into CLIP text encode, a filename input, or an API payload.

    Installing

    cd ComfyUI/custom_nodes
    git clone https://github.com/pvlprk/comfyui-pvl-api-nodes
    

    restart, or install via ComfyUI Manager (search "ComfyUI Assistant Node"). No models, no dependencies beyond Python's built-in string handling.

    The honest caveats

    • No auto-spacing, same as x3. The most common failure is a missing trailing space somewhere in the middle, and the output shows up as one mashed run-on. Look at the slot boundaries, not the whole string, when debugging.
    • Fixed at eight. A ninth part means nesting another concat or being clever with a list node. If you're building longer strings dynamically from variable-length lists, the pack's PVL String List To String (with a delimiter) is the better tool - this one is for a fixed set of known slots.
    • All inputs are multiline, which is handy - but it also means the node surface is big. Keep it off to one side of your graph.
    Category🧩 PVL/Strings

    Inputs (8)

    NameTypeDefaultDescription
    string_1STRING—
    string_2STRING—
    string_3STRING—
    string_4STRING—
    string_5STRING—
    string_6STRING—
    string_7STRING—
    string_8STRING—

    Outputs (1)

    NameTypeDescription
    STRINGSTRING—