CLIP Positive-Negative (WLSH)
CLIP Positive-Negative (WLSH)
- clip
- positive
- negative
The plainest of the three CLIP conditioning nodes WLSH ships, and deliberately so - this is two CLIPTextEncode boxes squeezed into one, nothing more. No text passthrough, no SDXL-specific micro-conditioning fields, just a positive box, a negative box, and two conditioning outputs. The pack's README describes the whole family as "mostly a space saver," and this one is the purest expression of that idea.
If you've ever looked at a busy ComfyUI graph and noticed two nearly-identical text-encode nodes sitting side by side doing the same conceptual job - one for what you want, one for what you don't - this collapses them into a single node with one CLIP input feeding both. Less canvas real estate, one less pair of wires to keep track of, same result at the sampler end.
Inputs: clip is your CLIP model, straight out of the checkpoint loader. positive_text and negative_text are both multiline STRING boxes - type your prompt and your negative prompt directly. Outputs: positive and negative, both CONDITIONING, wired into your sampler exactly the way you'd wire outputs from two separate CLIPTextEncode nodes.
Worth remembering regardless of which conditioning node you use: your negative prompt only actually influences the result once CFG is above 1. On distilled checkpoints - Z-Image Turbo, Flux Dev/Schnell, Lightning and Turbo variants generally - CFG sits at 1 by design, and at that setting the negative conditioning is effectively inert; ComfyUI doesn't even bother computing that pass under most samplers at CFG 1. That's not something this node can fix or work around - it's how classifier-free guidance itself behaves, independent of which node produced the conditioning tensor.
If you want more than this node offers: the sibling node CLIP Positive-Negative w/Text (WLSH) adds two extra outputs that pass your raw prompt strings straight through - handy if you're feeding WLSH's own save nodes, which want the prompt as plain text for their embedded metadata, not just as conditioning. And if you're specifically on SDXL and want the full global/local text split plus the crop and target-size micro-conditioning fields, CLIP Positive-Negative XL w/Text (WLSH) is the one built for that. This node is the baseline; reach for it when you genuinely just want the space-saving and nothing else.
Installing it: through ComfyUI Manager, search "wlsh_nodes"; or clone the pack manually:
cd ComfyUI/custom_nodes
git clone https://github.com/wallish77/wlsh_nodes
Restart ComfyUI. No models to download, no extra Python dependencies - it's a thin wrapper around standard CLIP text encoding.
Troubleshooting: if results look off, the first thing to check is the obvious one - that you haven't got the positive and negative text boxes swapped, which is an easy slip on a compact node with two similar-looking multiline fields stacked close together. Beyond that, this node has no logic of its own to misbehave; if conditioning seems wrong, the usual causes (CFG at 1, a mismatched CLIP model, an oddly weighted prompt) are the same ones you'd chase down with any standard text-encode setup.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| positive_text | STRING | — | |
| negative_text | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |