Nodes/OmniNodes/Prompt Combiner ➕
ComfyUI Node

Prompt Combiner ➕

Build one prompt out of up to four pieces, with per-piece weights

By TensorVizion·Created 3 months ago·Updated about 8 hours ago· 0
Prompt Combiner ➕
    • combined_text
    separator,
    weight_11.00
    weight_21.00
    weight_31.00
    weight_41.00
    text_1
    text_2
    text_3
    text_4

    Modular prompts are the whole game once your workflows outgrow a single text box: a character block here, a style block there, a lighting fragment from a wildcard. Prompt Combiner ➕ joins up to four fragments into one string, and - the useful part - applies a per-fragment weight while it does it. Weight 1.0 passes a fragment through untouched; anything else gets wrapped in the (fragment:weight) emphasis syntax that SD1.5/SDXL encoders understand, so you can push a style block to 1.2 or duck a character block to 0.8 without rewriting it.

    It's the text equivalent of a mixer channel strip: four sources in, one bus out, each source with its own level.

    How it works

    The four text_N inputs are optional - any disconnected slot is skipped entirely, with no dangling separator left behind, so you can use one slot or four and the output stays clean. separator defaults to ", " but accepts anything, including \n for line-per-fragment prompts. Weights run 0.0–3.0 and are wrapped only when they differ from 1.0, so a default-all-ones run produces a plain joined string with no syntax noise.

    Output is a single combined_text string. Wire it straight into a CLIP Text Encode - or into the pack's Prompt Cleaner first, because fragments assembled from multiple sources are exactly where duplicate tags sneak in.

    The inputs that matter

    text_1 through text_4 (strings, each convertible to an input so you can wire in another node's output), the four weight_N floats, and separator. That's it. The practical pattern: keep character descriptors in one slot, style in another, and use the weights to fine-tune emphasis without touching the text.

    A note on the emphasis syntax, since people overuse it: (fragment:1.2) genuinely pushes attention, but stacking a dozen weighted fragments fights itself. Use weights on the blocks that matter, not everything. The KB's prompt-engineering doc has the longer version of this argument.

    Installing it

    Part of the OmniNodes pack:

    cd ComfyUI/custom_nodes/
    git clone https://github.com/TensorVizion/OmniNodes
    

    Restart ComfyUI (or search "OmniNodes" in ComfyUI Manager). No extra dependencies. Registers under TensorVizion/Prompt. If it doesn't appear after install, restart completely and check the terminal for [OmniNodes] ✅ Loaded lines.

    For anyone assembling prompts from reusable blocks - which, if you're honest with yourself, is everyone doing real work in ComfyUI - this is a small node that earns its place fast.

    CategoryTensorVizion/Prompt

    Inputs (9)

    NameTypeDefaultDescription
    separatorSTRING,
    weight_1FLOAT1.000–3
    weight_2FLOAT1.000–3
    weight_3FLOAT1.000–3
    weight_4FLOAT1.000–3
    text_1optSTRING
    text_2optSTRING
    text_3optSTRING
    text_4optSTRING

    Outputs (1)

    NameTypeDescription
    combined_textSTRING