ComfyUI Node

Lum vs Sat

Desaturate the highlights like film does, or punch the midtones

By jeremieLouvaert·Created 5 months ago·Updated 4 days ago· 101
Lum vs Sat
  • image
  • image
presetCustom (manual)
blacks_saturation0
shadows_saturation0
midtones_saturation0
highlights_saturation0
whites_saturation0
strength1.00

Film's saturation isn't uniform across brightness - shadows and highlights lose color before midtones do. That's why a film-still looks "graded" and a straight digital frame looks flat: the digital one is saturated everywhere at once. Lum vs Sat is the control that fixes exactly this, letting you raise or lower saturation per luminance zone. Desaturate the highlights for the film look, punch the midtones for pop, and leave the rest alone.

It's one of the grading nodes in ComfyUI-Darkroom, and it's the unsung partner to Hue vs Sat. Hue vs Sat decides which colors are saturated; this decides which brightness. Together they're how you build the "film look" without a film stock.

How it works

The luminance range is split into five zones - blacks (0–10%), shadows (10–30%), midtones (30–70%), highlights (70–90%), whites (90–100%) - and each zone gets its own saturation adjustment. Because the zones blend at their boundaries, you don't get visible seams. The presets encode the useful shapes: "Film look - desat highlights" is the classic one (highlights lose saturation, mids keep it), "Punch midtones" does what it says, "Bleach bypass - heavy desat" is the extreme, and "Rich shadows" gives shadows some color depth back.

The inputs that matter

  • preset - 8 choices. "Film look - desat highlights" is the one to start with.
  • blacks_saturation / shadows_saturation / midtones_saturation / highlights_saturation / whites_saturation - the five zone sliders, −100 to +100.
  • strength - the global blend over all five zones.

Output is image - same size in, same size out.

Install and gotchas

cd ComfyUI/custom_nodes
git clone https://github.com/jeremieLouvaert/ComfyUI-Darkroom
pip install -r ComfyUI-Darkroom/requirements.txt

Or search "Darkroom" in ComfyUI Manager and restart. It's under AKURATE/Darkroom/Grading.

The gotcha is the same one that bites every luminance tool: "highlights" here means image luminance, not "bright regions of the subject." A white sky counts as highlight; a bright yellow shirt sitting in midtones does not. So the "desat highlights" preset will drain a sky - which is usually what you want - but it won't touch a neon shirt, and that's correct behavior, not a bug.

Stacking tip: run Hue vs Sat after this for a full "film" saturation pipeline, or use it inside a LUT bake chain (it's a per-pixel transform, so it's allowed). The .cube you export keeps your highlight/midtone saturation character in any NLE. Start with strength ~0.6 on the film-look preset - the full 1.0 can leave an image looking a little anemic before you add grain back.

CategoryAKURATE/Darkroom/Grading

Inputs (8)

NameTypeDefaultDescription
imageIMAGE
presetCOMBOCustom (manual)Select a luminance-based saturation preset or use Custom
blacks_saturationoptFLOAT0-100–100Saturation of darkest tones (0-10%)
shadows_saturationoptFLOAT0-100–100Saturation of shadows (10-30%)
midtones_saturationoptFLOAT0-100–100Saturation of midtones (30-70%)
highlights_saturationoptFLOAT0-100–100Saturation of highlights (70-90%)
whites_saturationoptFLOAT0-100–100Saturation of brightest tones (90-100%)
strengthoptFLOAT1.000–1Blend between original (0) and adjusted (1)

Outputs (1)

NameTypeDescription
imageIMAGE