ComfyUI Node

Double Prompt

Double Prompt

By palant·Created 3 years ago·Updated 3 years ago· 39
Double Prompt
  • clip
  • positive
  • negative
text
text_2

Every single txt2img or img2img graph you've ever built has the same two nodes sitting side by side: a CLIP Text Encode for your positive prompt, and another one right next to it for the negative. Double Prompt is that pair, pre-wired into one node with two text boxes. It doesn't do anything a plain CLIP Text Encode can't do on its own - it's the Integrated Nodes pack's own worked example of what the tool is for: taking a chunk of graph you rebuild in every workflow and turning it into furniture.

What it's actually doing

Under the hood this is two ordinary CLIP Text Encode nodes. Each one takes your text and the model's CLIP encoder and turns it into a CONDITIONING tensor - the numeric representation the sampler actually reads. Double Prompt just shares one clip input between both encoders instead of making you plug the same CLIP model into two separate nodes, and lines the two text boxes up in a single node body. Nothing about the encoding itself changes; you get identical output to wiring it by hand.

That's the pack's merge_inputs feature doing the work, and Double Prompt is literally the example the README uses to demonstrate it - both text encoders need a clip input, so instead of the second one auto-renaming to clip_2 and needing its own wire, they're merged into a single input that feeds both.

Inputs and outputs

Three inputs, both text boxes doing the same job with different intent:

  • clip - the CLIP model, normally straight out of your checkpoint loader.
  • text - your first prompt.
  • text_2 - your second prompt.

Two outputs, per the pack's rename_outputs config: positive and negative, both CONDITIONING. Wire text as positive, text_2 as negative (or vice versa - the node doesn't enforce anything, the labels are just there to save you from mixing them up), and both plug straight into a KSampler's positive/negative sockets exactly like a pair of CLIP Text Encode nodes would.

One thing worth knowing before you build a whole workflow around this: on modern guidance-distilled checkpoints - Z-Image Turbo, Flux 2 Klein and most other current flow-matching models - the negative prompt slot does nothing by default. Those models run at CFG 1, and CFG 1 means there's no unconditional pass for a negative prompt to steer. If you're seeing zero effect from your text_2 box, that's very likely why - it's not this node, it's the checkpoint. Either bump CFG a little (with a quality/speed cost) or install a NAG node if you need real negative prompting on a distilled model.

Installing it

Same as the rest of the pack - this isn't a standalone install, it comes with Integrated Nodes for ComfyUI:

  • ComfyUI Manager - search "Integrated Nodes for ComfyUI."
  • Manual - cd ComfyUI/custom_nodes && git clone https://github.com/palant/integrated-nodes-comfyui, restart ComfyUI.

No models to download, no extra dependencies - it's wiring, not computation.

Common issues

Only two prompt slots, and you want three. Double Prompt is the pack's shipped default, not a hard limit of the tool. The README shows exactly how to extend merge_inputs to a list (clip: [clip_2, clip_3, clip_4]) if you build your own version with more text boxes - you'd just be authoring a new entry in integrated_nodes.yaml rather than editing this one.

Errors point at the wrong prompt. Because this collapses two nodes into one, some ComfyUI error messages that reference the original node names can be a little less legible than usual - if something in your CLIP encoding chokes, it's still one of the two prompts underneath, just not always obvious which from the message alone. Toggling back to plain CLIP Text Encode nodes temporarily is the fastest way to isolate it.

Negative prompt seems to have no effect. See above - check whether your checkpoint is guidance-distilled before assuming the node is broken.

Categoryintegrated

Inputs (3)

NameTypeDefaultDescription
textSTRINGThe text to be encoded.
clipCLIPThe CLIP model used for encoding the text.
text_2STRINGThe text to be encoded.

Outputs (2)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING