CLIPSliderApply
How CLIPSliderApply turns a direction into a slider
- clip
- latent_direction
- latent_direction_2nd
- positive
- negative
You ran the direction-finder, got a vector, and now you want it to actually steer an image. CLIPSliderApply is where that vector becomes a knob you pull. It takes the latent output of SliderLatent, your prompt, and a slider_target strength, and produces the positive and negative conditioning your sampler feeds on.
The mechanism is cleaner than the packaging suggests. It encodes your prompt, then shifts the positive conditioning along the direction by slider_target and shifts the negative conditioning the opposite way. The model is being asked to move away from the shifted negative as hard as it's pulled toward the shifted positive - which is really just CFG's compare-the-two trick being used to steer along a concept axis instead of toward a written prompt. Drag the value up, more happy. Drag it below zero, and the direction flips, which is how you get "sad" out of a "happy → sad" direction without recomputing anything.
The inputs that matter
- clip - your CLIP model, straight from the checkpoint loader.
- latent_direction - the direction tensor from SliderLatent (this non-pooled pairing matters; see below).
- slider_target - the strength, default 1, range −10 to 10 in steps of 0.1. This is the whole slider. Start around ±1–3; past ±5 on SD models you're mostly buying artifacts.
- prompt - the actual prompt you're generating with, "a photo of a person" by default. Note the direction is added on top of whatever this says.
- guidance - baked into both conditioning tensors. On FLUX-class models this field is how guidance scale reaches the sampler (which is why you can skip a separate FluxGuidance node). On SD 1.5/SDXL the sampler's own CFG dial is the real knob and this value is generally inert, so don't crank it expecting CFG behavior.
The optional pair, latent_direction_2nd and slider_target_2nd, gives you a second independent axis - emotion from one direction, style from another. The second target defaults to 0, meaning "leave it alone," so the node stays harmless until you feed it.
Outputs
Two CONDITIONING outputs, positive and negative, wired into the sampler's positive/negative sockets - or into a BasicGuider on FLUX-class setups, which is exactly how the author's own workflow runs it.
The pairing trap
CLIPSliderApply modifies the per-token cond tensor, which is SD 1.5 / SDXL territory. Pair it with SliderLatent (not SliderLatentPooled). The pooled sibling CLIPSliderApplyPooled exists for FLUX/SD3, and feeding a direction computed in the wrong space is the single most common way this pack "does nothing." This pack is also thoroughly obscure - it's a personal fork of RhizoNymph's ComfyUI-CLIPSlider with the README inherited from that original project, so the shipped workflow JSON is the real documentation.
Installing and troubleshooting
cd ComfyUI/custom_nodes
git clone https://github.com/chenbaiyujason/ComfyUI-CLIPSlider-SC
Restart, then find it under the conditioning category (ComfyUI Manager search: "ComfyUI-CLIPSlider-SC"). No models to download, and requirements.txt's diffusers is a formality - nothing heavy is pulled in.
Common issues: weak or zero effect (wrong pairing, or slider_target too small - try 2, then negative); burnt, saturated output (you overshot the slider; back off); and the reminder that a slider nudges what's already in the prompt, it doesn't add new content. There's no API call and no key here - this is all local tensor math.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| latent_direction | LATENT | — | |
| slider_target | FLOAT | 1.0-10–10 | — |
| prompt | STRING | a photo of a person | — |
| guidance | FLOAT | 1.0-10–10 | — |
| latent_direction_2ndopt | LATENT | — | |
| slider_target_2ndopt | FLOAT | 0.0-10–10 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |