ComfyUI Node

LC Vibrance

LC Vibrance — saturation that doesn't wreck the already-saturated bits

By lonecatone23·Created 2 months ago·Updated 3 days ago· 18
LC Vibrance
  • image
  • image
vibrance100
saturation0
protect_skintrue
strength1.00

LC Vibrance is the color-grading knob that fixes the classic "just crank saturation" mistake. Plain saturation boosts every pixel equally, which means the colors that were already punchy clip into neon while skin turns into a boiled-lobster situation. Vibrance - the smart version, and the one this node implements - protects the colors that are already saturated and pushes the dull ones instead. It's the difference between "more colorful" and "more colorful without falling apart."

You reach for it in the finishing pass, right after the sampler and before anything that saves or upscales. This is the layer of ComfyUI where the work is deliberately not AI: a deterministic, millisecond, fully reproducible grade beats re-rolling a generation because "the colors are off." That's the whole philosophy of the post-processing stage, and LC Vibrance is a well-behaved citizen of it.

How it works

The math is the good kind of vibrance. The node converts to linear light, computes per-pixel chroma, and builds a weight that's high for muted colors and near-zero for already-saturated ones - so the effect concentrates where there's headroom. With protect_skin on (default), it additionally detects skin-tone hues around orange (~30° hue) and cuts the effect there by ~70%, which is exactly the protection you want for portraits. Then it blends back toward the original by strength.

The controls, in the order you'll actually touch them:

  • vibrance (−100 to 100, default 100) - the smart saturation. Negative values work too: you can de-saturate muted colors while leaving the punchy ones alone, which is a gentle way to calm a busy image.
  • saturation (−100 to 100, default 0) - the uniform, unprotected knob, for when you do want everything moved together.
  • protect_skin (default on) - leave it on for people; turn it off for landscapes and product shots where you want full freedom.
  • strength (0–1, default 1) - overall blend with the original. Dial to 0 for a hard bypass.

One image in, one image out. It's an output node with the on-node before/after wipe preview the LC image-FX family shares - hover the node to scrub between original and graded. Handy for exactly this kind of tweak, where the difference is subtle and a slider comparison is the only honest way to judge it.

Where people get burned

The most common mistake is treating vibrance like a big saturation slider and parking it at 100, then wondering why nothing looks "poppy." That's not a bug - vibrance stops at the colors that are already rich. If you want a global lift, add a little saturation on top. They're two tools that do two different jobs.

Second: at high vibrance, skin protection is doing real work, so don't be surprised that faces barely move while a teal sky goes vivid. If you want skin to change, drop protect_skin - just know you're signing up for the orange-face look.

Install

This ships in lonecatone23's ComfyUI_LC123_nodes pack, which installs like any custom node:

  • ComfyUI Manager - search "LC123" or "ComfyUI_LC123_nodes", install, restart.
  • Manual - cd ComfyUI/custom_nodes && git clone https://github.com/lonecatone23/ComfyUI_LC123_nodes, restart.

No extra pip packages, no model downloads - the whole pack runs on ComfyUI's own torch/numpy environment. For a pure pixel node, that's exactly what you want: it just works.

The honest verdict

Vibrance is one of those features that sounds like marketing until you've compared it to plain saturation side by side. Then it's obvious. If you shoot portraits or photorealistic work and you've been avoiding color grading because it always looks plastic, this is the gentlest on-ramp - a couple of f-stops of vibrance and a wipe-preview is a real upgrade over the default output.

CategoryLC123/image

Inputs (5)

NameTypeDefaultDescription
imageIMAGE
vibranceFLOAT100-100–100Smart saturation — protects already-saturated colors
saturationoptFLOAT0-100–100Uniform saturation (no protection)
protect_skinoptBOOLEANtrueReduce effect on skin-tone hues
strengthoptFLOAT1.000–1

Outputs (1)

NameTypeDescription
imageIMAGE