CLIP Slider
The mood dial that isn't really a slider
- model
- clip
- positive
- negative
Ever wished you could turn "happy" up and "sad" down like a volume knob, without rewriting your prompt? That's the pitch. CLIP Slider is a one-node pack from RhizoNymph that ports the HuggingFace latentnavigation-flux space into ComfyUI: it finds the direction in CLIP text space between two words and lets you add a scaled amount of that direction to your conditioning. The showcase is a 2×2 grid of the same "anime girl" prompt rendered as happy/cold, sad/cold, sad/warm, and happy/warm - one prompt, four moods, zero prompt surgery.
The honest warning up front: the name overpromises. There is no live, draggable slider in the UI. You set a scale number and run the node, and each run samples at exactly that one setting. The author explicitly says they'd love real slider controls but haven't found a way to do that in ComfyUI yet. Think of it as a mood dial you edit and re-run - which is still far more convenient than retyping prompts to chase a vibe.
How it works
The mechanism is classic CLIP steering, straight out of the word-vector playbook. On every run the node encodes your target word and its opposite across iterations random template prompts - "a painting of a happy dog", "a sketch of a sad mountain" - sampled from hardcoded lists of mediums and subjects. Averaging over hundreds of templates cancels out the irrelevant content (dog, painting, mountain) and leaves the pure direction between "happy" and "sad" in embedding space. Then it encodes your actual prompt, adds direction × scale to the positive conditioning, and subtracts it to build the negative output.
Two details from the source worth knowing. First, the model input is required but never actually read - the node only does math on CLIP embeddings. Wire something in anyway, because ComfyUI won't run the node without it. Second, every run recomputes the direction from scratch, so expect a short pause before sampling kicks in.
The inputs that matter
target_word/opposite- the axis you're sliding along. "happy"/"sad", "warm"/"cold", "anime"/"realistic".scale- the actual dial, −10 to 10 in 0.1 steps. Positive pushes towardtarget_word, negative towardopposite.prompt- the text being steered. The node nudges this conditioning rather than replacing it.iterations(default 300) - how many template encodings go into the averaged direction. Fewer is faster and noisier; 300 is a sane default.seed- makes the random template sampling reproducible.- Second slider:
target_word_2nd/opposite_2nd/scale_2nd- a second axis you combine with the first. This is how the happy/cold grid works: two axes, four corners.
Outputs
Two CONDITIONING outputs, positive and negative, wiring straight into a KSampler's positive and negative inputs. Worth noting the negative isn't a separate negative prompt - it's just "positive minus the direction," so the node is really one slider expressed twice.
Install
ComfyUI Manager - search "ComfyUI-CLIPSlider" - or:
cd ComfyUI/custom_nodes
git clone https://github.com/RhizoNymph/ComfyUI-CLIPSlider
then restart. The declared dependency is a single diffusers line, nice and light. It's even lighter than it looks: the shipped code never actually imports diffusers, so beyond stock ComfyUI this node is effectively dependency-free. No model downloads, no API key, nothing hidden.
Where people get tripped up
- It's recompute-heavy. Lower
iterationsif the pre-sampling pause bugs you. - No batch of scales in one run. The author calls this out in the README as not supported yet. Want a mood grid like the examples? Drop in several CLIPSlider nodes at different scales, exactly what the shipped 4-image workflow does.
- Effects are subtle and model-dependent. The example workflows load quantanimaLCM, an LCM-accelerated checkpoint, and sample at CFG 1.5. At very low CFG the negative conditioning does little - that's just how guidance-distilled models behave - so most visible steering comes from the positive output. Expect to push
scalea couple of notches before moods clearly shift. - Don't expect precision. This is a niche, single-commit pack that runs on vibes, not a calibrated control surface. It's genuinely fun for two-axis mood boards and for getting a feel for what conditioning actually is, but treat the outputs as an exploration tool rather than a production knob.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| target_word | STRING | happy | — |
| opposite | STRING | sad | — |
| scale | FLOAT | 1.0-10–10 | — |
| prompt | STRING | a photo of a person | — |
| iterations | INT | 3001–18446744073709550000 | — |
| seed | INT | 00–18446744073709550000 | — |
| target_word_2ndopt | STRING | — | |
| opposite_2ndopt | STRING | — | |
| scale_2ndopt | FLOAT | 0.0-10–10 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |