Nodes/comfyui-adaptiveprompts/πŸ”— String Append πŸ”—
ComfyUI Node

πŸ”— String Append πŸ”—

Join up to eight strings when three isn't enough

By AlectricitiΒ·Created 12 months agoΒ·Updated 23 days agoΒ· 87
πŸ”— String Append πŸ”—
    • STRING
    β—„string_1β–Ί
    β—„string_2β–Ί
    β—„string_3β–Ί
    β—„string_4β–Ί
    β—„string_5β–Ί
    β—„string_6β–Ί
    β—„string_7β–Ί
    β—„string_8β–Ί
    β—„combine_modeCommaβ–Ί

    Every dynamic-prompt workflow eventually turns into a pile of separate string outputs that need to become one string: a base scene description, a wildcard-resolved subject, a block of LoRA tags, a quality-tag tail, maybe a variable readout for debugging. StringAppend8 is the node that stitches all of that back together in one pass instead of chaining a bunch of 2-input concat nodes. It's the bigger sibling of StringAppend3 in the same pack - same idea, more slots, for when your graph has genuinely outgrown three inputs.

    How it works

    There's no cleverness here, and that's the point. You wire in up to eight strings and pick one combine_mode, and the node joins whatever's plugged in using that separator. No dynamic-prompt resolution, no randomness, no per-slot logic - it's the mechanical last step after all your generation and processing nodes have done their work.

    The inputs and outputs that matter

    • string_1 through string_8 - the pieces to combine, in order. You don't have to fill all eight; an unused slot defaults to an empty string.
    • combine_mode - one of None, Space, Underscore, Comma (the default), or Newline. This decides what gets inserted between each populated slot: nothing, a space, an underscore, a comma-space, or a line break.
    • Output: a single STRING with everything joined, ready to feed into a CLIP Text Encode, a Show Text node, or the next processing step in the pack (Prompt Cleanup, Prompt Shuffle, and so on).

    That's the whole surface. If you're coming from other packs, this plays the same role as pythongosssss's String Function or WAS Node Suite's string-concat nodes - just wider, and purpose-built to sit next to Adaptive Prompts' other utility nodes.

    How to install it

    There's no separate install for this node - it ships with the rest of the pack. Easiest path is ComfyUI Manager: search comfyui-adaptiveprompts, install, restart. Manual route:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Alectriciti/comfyui-adaptiveprompts
    

    Restart ComfyUI and it'll show up under adaptiveprompts/utils. No models to download, no extra Python dependencies - it's pure string handling, so there's nothing to go wrong at install time beyond the usual "did you actually restart" step.

    Common issues & troubleshooting

    Trailing or doubled separators from empty slots. If you're joining five real strings and leave string_6 through string_8 empty while using Comma mode, you generally won't see extra punctuation - empty slots tend to just vanish rather than leaving a bare separator. Where it does bite you is a slot that's populated but blank at runtime, like a wildcard node that resolved to nothing that generation. That leaves a gap the separator still gets inserted around, so you end up with tag, , tag or a trailing comma. Run the joined output through PromptCleanup (with comma/whitespace cleanup on) if you're chaining several of these and the punctuation is getting ragged.

    Wrong number of slots for the job. Eight is generous, but if you're combining, say, twelve wildcard outputs, you're back to chaining two StringAppend8 nodes - which works fine, just remember the inner join's combine_mode and the outer join's combine_mode are independent settings, so it's easy to end up with inconsistent separators between the two halves of your prompt if you forget to match them.

    Order matters and it's easy to lose track in a busy graph. The output is strictly string_1 then string_2 and so on - there's no reordering logic. In a workflow with a lot of wires crossing, it's worth briefly renaming the node's title (right-click β†’ Title) to something like "Base + LoRA + Quality" so you can tell at a glance what order you actually wired it in, rather than tracing wires every time you revisit the graph.

    Don't reach for this when you need dynamic-prompt logic. It only concatenates what's already resolved. If you need randomized selection, weighting, or wildcard expansion while combining, that's Prompt Mixer or Prompt Replace elsewhere in this pack - StringAppend8 is strictly the dumb, reliable glue step at the end.

    Categoryadaptiveprompts/utils

    Inputs (9)

    NameTypeDefaultDescription
    string_1STRINGβ€”
    string_2STRINGβ€”
    string_3STRINGβ€”
    string_4STRINGβ€”
    string_5STRINGβ€”
    string_6STRINGβ€”
    string_7STRINGβ€”
    string_8STRINGβ€”
    combine_modeCOMBOComma5 options: None, Space, Underscore, Comma, Newline

    Outputs (1)

    NameTypeDescription
    STRINGSTRINGβ€”