Ard Dual Prompt
One CLIP encode for both your positive and negative prompts
- clip
- pos_prompt
- neg_prompt
Before a KSampler will touch your prompt, that text has to become a CONDITIONING tensor - that's the CLIP text encoder's job, and in ComfyUI you normally do it with two separate CLIP Text Encode nodes, one for the positive prompt and one for the negative. Ard Dual Prompt squashes both into a single node: type your positive in pos_text, your negative in neg_text, plug in the clip, and you get pos_prompt and neg_prompt conditionings out, ready for the sampler.
Mechanically it's a thin wrapper over the same calls the built-in node uses: clip.tokenize() then clip.encode_from_tokens() with pooled output, and the "cond" tensor is pulled out of the result. So there's no magic here - you're getting exactly the same conditioning the core nodes produce, just in one box. The inputs: clip (from your checkpoint or CLIP loader - this is the required one people forget), pos_text (multiline, dynamicPrompts enabled so wildcards like {red, blue} expand), and optional neg_text.
Things to watch:
- neg_text is optional, but if you leave it empty the node still encodes an empty string into
neg_prompt. A blank negative is a valid choice with most SDXL-era models (empty negatives are common), but on SD 1.5 it's the same as not using the box at all. Decide on purpose, not by accident. - The source has a tell for what breaks in practice: if the encode fails, the author's own error message tells you to check the clip and - in a genuinely useful hint - to click Manager → Unload Models and retry if you're hitting a memory overload. That's a real ComfyUI pattern: a full VRAM can throw an encode error that looks like a broken node.
- This node outputs conditionings, not text. Wire the outputs into a sampler's positive/negative ports. If you try to feed text into it expecting text out, you'll be confused - it's the encoder.
Where it fits: it's the prompt-encoding front end for this pack's Control Box workflow (control box expects CONDITIONING in). If you're building prompts with the pack's text nodes and want one encode step instead of two, this is the intended piece.
Honest verdict: two CLIP Text Encode nodes do exactly this, and with the built-ins you get per-prompt control over styling (like the SDXL refiner split). Ard Dual Prompt is a tidiness node - it saves a node on the canvas and nothing else. That's fine; it's one of the more straightforward and bug-light nodes in the pack, and for beginners who want fewer nodes to understand, fewer nodes is a real win.
Install is the standard pack route - ComfyUI Manager → search ComfyUI-Ardenius, or:
cd ComfyUI/custom_nodes
git clone https://github.com/ArdeniusAI/ComfyUI-Ardenius
then restart ComfyUI. Pack-wide notes: civitai and moviepy install with the pack (irrelevant here), and a single import error at startup is the Save Image node wanting comfyui_controlnet_aux - the rest of the pack loads fine.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| pos_text | STRING | The text to be encoded. | |
| clip | CLIP | The CLIP model used for encoding the text. | |
| neg_textopt | STRING | The text to be encoded. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| pos_prompt | CONDITIONING | A conditioning containing the embedded text used to guide the diffusion model. |
| neg_prompt | CONDITIONING | — |