ComfyUI Node

String Dual

One box for positive, one for negative β€” the pair that never separates

By r-vageΒ·Created 10 months agoΒ·Updated a day agoΒ· 31
String Dual
    • txt_pos
    • txt_neg
    β—„txt_posβ–Ί
    β—„txt_negβ–Ί

    If you've ever had a workflow where the positive and negative prompts live in two separate nodes that drift apart - you tweak one, forget the other, and suddenly you're generating "masterpiece quality" with the negative prompt of something else entirely - String Dual is the cure. It's two multiline text boxes in one node, with two STRING outputs, so your prompt pair stays physically glued together on the canvas. When you find yourself editing the right box, the other one is right there.

    It's gloriously simple and honestly one of those quality-of-life nodes that's easy to underestimate. The schema is two required multiline strings, txt_pos and txt_neg, and it just strips whitespace and hands both back out - txt_pos and txt_neg outputs. No cleverness, no processing, and that's the appeal: it's a named, durable home for the two texts that always travel together, and the outputs are named the same way you think about them.

    How it works

    Two boxes in, two strings out, whitespace-trimmed. Wire txt_pos into the positive CLIP Text Encode and txt_neg into the negative, and the pair lives in one place from then on. It composes naturally with the rest of the Eclipse string family: feed it from Smart Prompt or a String primitive, or chain it through String DeDuplicate if you're combining prompts from multiple sources.

    Where it helps beyond tidy organization: it's a great spot to keep your prompt pair visible and versionable in a shared or template workflow. Newer model families have moved past the token-bag prompt era, but on SDXL-lineage checkpoints the positive/negative split is still the whole game, and having both boxes staring at you is a genuine workflow improvement over hunting through a graph.

    Where it fits

    Any image generation workflow where you're hand-writing or hand-editing prompts - which, honestly, is most of them. It's also the natural endpoint for fancier prompt construction: build the positive from Smart Prompt + wildcards, the negative from a fixed block, and meet them here.

    Installing it

    Ships in ComfyUI_Eclipse, no dependencies:

    git clone https://github.com/r-vage/ComfyUI_Eclipse custom_nodes/ComfyUI_Eclipse
    

    Or ComfyUI Manager β†’ search "ComfyUI_Eclipse" β†’ install and restart.

    Gotchas

    Almost none - this node is just two text boxes. The only things to keep straight: both inputs are required, so you can't leave the negative box completely disconnected (type an empty string instead of unlinking), and the outputs are separate wires, so don't expect a combined or structured output - if you want the pair merged or deduplicated, that's String DeDuplicate's job. And the usual pack note: pre-v4.0.0 RvTools-era node IDs need the migration tool if you're loading old workflows.

    CategoryπŸŒ’ Eclipse/ Text

    Inputs (2)

    NameTypeDefaultDescription
    txt_posSTRINGβ€”
    txt_negSTRINGβ€”

    Outputs (2)

    NameTypeDescription
    txt_posSTRINGβ€”
    txt_negSTRINGβ€”