Nodes/Nifty Nodes for ComfyUI/Nifty CLIP Text Encode (Prompt)
ComfyUI Node

Nifty CLIP Text Encode (Prompt)

Positive and negative prompts in one node, no extra wire clutter

By Stibo·Created 5 months ago·Updated 2 months ago· 9
Nifty CLIP Text Encode (Prompt)
  • clip
  • positive
  • negative
positive
negative

The default ComfyUI way to prompt is two CLIP Text Encode nodes - one for positive, one for negative - each wired to the same CLIP. It works, and it's half the reason beginner graphs look twice as big as they need to. Nifty CLIP Text Encode does both in one node: one CLIP input, two prompt boxes, and two ready-to-sample CONDITIONING outputs.

What it does

Text encoding is how your prompt becomes guidance. The CLIP model turns your words into embeddings, wrapped into conditioning that the sampler uses to steer generation - the positive conditioning pulls toward what you asked for, the negative conditioning pushes away from what you didn't. If you've used ComfyUI at all, this is the same encode happening in the stock node; this version just packs the pair together.

Inputs:

  • clip (required) - the CLIP model doing the encoding, straight from a CLIP Loader, DualCLIPLoader, or checkpoint.
  • positive (optional) - your main prompt. Multiline, and wired with dynamic_prompts=True in the source, so wildcard syntax gets processed. Empty = unconditional embedding.
  • negative (optional) - what you don't want. Same handling; empty = unconditional.

Outputs: positive and negative, both CONDITIONING, wired into your sampler's positive and negative inputs respectively.

The two text boxes sit on the node itself (socketless widgets), so you type prompts in place rather than hunting for separate nodes. One CLIP wire in, two conditioning wires out.

When it's a good idea

Any workflow where the positive/negative pair travels to the same sampler - which is nearly all of them. It's cleaner than two stock nodes, and because both prompts live on one node, it's easy to keep them visually paired. If you're sharing a workflow, this is the kind of small reduction in node count that makes a graph legible to the person receiving it.

It's not a universal replacement - if you need separate conditioning paths (different CLIPs for positive vs. negative, or conditioning combined from multiple sources), keep the stock split nodes. But for the standard single-sampler case, this is the one to grab.

Install

Part of Nifty Nodes for ComfyUI. Manager: search "Nifty Nodes for ComfyUI" → Install → restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/Stibo/comfyui-nifty-nodes

Restart ComfyUI. No models, no keys, no extra dependencies - it calls the same encoding path ComfyUI uses. The pack is MIT-licensed, v3-API native, and young (v2.1.0, mid-2026).

Gotchas

Two things to know. First, "dynamic_prompts" here means the node processes wildcard-style syntax in your prompt text - fine if that's what you want, but if you're feeding a literal string that happens to contain underscores-and-brackets, it may rewrite it. If you need the raw text untouched, keep it in mind. Second, an empty prompt box produces an unconditional embedding rather than an error - handy for CFG-style guidance tuning, but easy to forget when you blank a box and get surprisingly neutral results. And remember that on modern flow-matching models (Flux-family, WAN, Z-Image and friends), the negative prompt's actual effect ranges from weak to none - that's a model property, not a bug in this node.

Categorynifty/conditioning

Inputs (3)

NameTypeDefaultDescription
clipCLIPThe CLIP model used for encoding the text.
positiveoptSTRINGPositive text prompt to be encoded. Leave empty for unconditional embedding.
negativeoptSTRINGNegative text prompt to be encoded. Leave empty for unconditional embedding.

Outputs (2)

NameTypeDescription
positiveCONDITIONINGPositive conditioning containing the embedded text used to guide the diffusion model.
negativeCONDITIONINGNegative conditioning containing the embedded text used to guide the diffusion model.