CLIPSliderApplyPooled
Nudging the pooled embedding instead of the tokens
- clip
- latent_direction
- latent_direction_2nd
- positive
- negative
CLIPSliderApplyPooled is CLIPSliderApply's sibling, doing the same trick one level up. Instead of shifting the per-token conditioning, it shifts the pooled output - the single global vector that FLUX and SD3 use as their summary of the prompt. Same inputs, same positive/negative conditioning outputs, different target model family, and it's the half of this pack most people actually want, because FLUX is what the whole thing was built around.
Here's why "pooled" exists. FLUX's text encoding is a dual-encoder setup: T5-XXL produces the long per-token sequence, and CLIP-L produces a pooled vector. The code comment in this pack is blunt about what that means in practice: on FLUX, the encoder hands back the T5 sequence with no pooled output from T5, and the CLIP-L pooled vector with no sequence from L. So when you want to steer a single compact concept - mood, attribute, vibe - the pooled vector is where that direction lives. CLIPSliderApplyPooled takes the direction from SliderLatentPooled, adds direction × slider_target to the positive conditioning's pooled output, subtracts it from the negative's, and ships both to the sampler.
The inputs that matter
- latent_direction - the direction from SliderLatentPooled. Pairing this with the non-pooled SliderLatent is the classic way to make the pack "do nothing."
- slider_target - default 1, range −10 to 10. Negative values flip the direction, and that's a genuinely useful FLUX move: the author's own FLUX workflow runs this node at −2.5 with a second axis disabled.
- prompt - the prompt being generated, "a photo of a person" by default; the direction adds on top of it.
- guidance - written into both conditioning tensors, and this is the field FLUX actually reads for guidance scale. The shipped workflow runs it at −5, which sounds wrong until you remember negative guidance strength is a real FLUX-ecosystem trick for repelling the model from a concept. On SD-family models this field is mostly inert.
Optional latent_direction_2nd / slider_target_2nd add a second steerable axis, off by default.
Outputs and wiring
positive and negative CONDITIONING. In the shipped workflow they feed a BasicGuider on a stack that's worth copying as a reference: flux1-dev-fp8 with a Hyper-FLUX 8-step LoRA, 8 steps, dpmpp_2m - SliderLatentPooled → CLIPSliderApplyPooled → BasicGuider → SamplerCustomAdvanced. That workflow file is the real manual for this pack, because the README is inherited from the original RhizoNymph/ComfyUI-CLIPSlider project and barely mentions these nodes.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/chenbaiyujason/ComfyUI-CLIPSlider-SC
Restart ComfyUI (or use Manager and search "ComfyUI-CLIPSlider-SC"). No model downloads, no heavy deps - requirements.txt lists diffusers but the node code never imports it. It's a niche personal fork with essentially zero community footprint, so if something looks off, trust the code over the README.
One last note on expectations: because you're steering a single global vector, this nudges mood and attribute on FLUX rather than editing fine detail - that's a feature, not a bug. If the lever feels weak, raise slider_target before you touch guidance.
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 | — |