RC Vibrance
Boost color without ruining skin
- image
- IMAGE
Here's the difference between saturation and vibrance: saturation cranks every color equally, and the first thing that explodes is skin. Vibrance is the smarter slider - it boosts the colors that are already muted and leaves the saturated ones alone, which is exactly how you make a landscape pop without turning faces into oranges. RC_Vibrance is this pack's implementation, and it goes one step further with an explicit skin-tone protection pass. It lives in the RC Image Compositor pack under RC/Adjustments.
How it works
The node converts each frame to HSV and operates on the saturation channel with a twist: the boost is weighted by how desaturated a pixel already is (1 - saturation), so muted colors get the big push and vivid ones get a gentle one. Then, if protect_skin_tones is on, it detects the skin-tone hue range (roughly orange/yellow) and scales the effect down there based on skin_protection_strength.
The controls:
- vibrance (-100 to +100) - the smart saturation. Negative desaturates the muted colors first, positive saturates them.
- saturation (-100 to +100) - the uniform saturation slider, applied to all colors equally. If you want the plain "crank it" behavior, this is where it lives - separate from vibrance so you can use both deliberately.
- protect_skin_tones (default on) - the portrait-safety switch.
- skin_protection_strength (0–1, default 0.7) - how hard the protection holds. 0.0 = no protection (vibrance acts uniformly), 1.0 = maximum.
Output is a single IMAGE, same size, batch-safe.
Installing it
ComfyUI Manager → search "RC Image Compositor" → install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/kj863257/ComfyUI_RC_Image_Compositor
cd ComfyUI_RC_Image_Compositor
pip install -r requirements.txt
Dependencies: pillow, numpy, opencv-python. Nothing to download.
Where people get burned
- Skin protection isn't magic - it's a hue range. It targets orange/yellow. A red dress, a teal wall, or a heavily color-graded face can sit outside that range and still get boosted. If skin still burns, you're either pushing vibrance too hard or the "skin" hue is outside the protected band.
- Vibrance and saturation stack. Both at +50 isn't "twice the vibrance," it's vibrance's smart boost plus a uniform boost on top. Start with vibrance alone; add saturation only when you want the unguarded push.
- Negative vibrance is underrated. Desaturating muted colors while keeping the vivid ones is how you get a moody, "pulled" grade without draining the whole image. Most people never try the negative end.
- It can't recover what isn't there. If a render's colors are already clipped or the VAE is off, boosting saturation just amplifies the artifact. Vibrance is a final-grade tool, not a rescue tool.
If you take one node from this pack's adjustment section for photography, take this one. The skin-tone protection alone makes it a better portrait tool than a dozen generic saturation sliders.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| vibrance | FLOAT | 0-100–100 | Vibrance adjustment (-100 to 100, negative=less vibrant, positive=more vibrant) |
| saturation | FLOAT | 0-100–100 | Additional saturation adjustment (-100 to 100, applied uniformly to all colors) |
| protect_skin_tones | BOOLEAN | true | Protect skin tones: - True: Reduce effect on orange/yellow skin tones - False: Apply vibrance uniformly to all colors |
| skin_protection_strength | FLOAT | 0.70–1 | Skin tone protection strength (0.0=no protection, 1.0=maximum protection) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |