Nodes/Eric_Image_Processing_Nodes/Perceptual Color Enhancement
ComfyUI Node

Perceptual Color Enhancement

Contrast boosts that don't wreck your hues

By EricRollei·Created 9 months ago·Updated 8 months ago· 9
Perceptual Color Enhancement
  • image
  • enhanced_image
  • processing_info
color_spaceoklab
enhancement_strength0.7
presetnone

This is a color-grading node, not a denoiser, and it's worth separating from the rest of this pack for that reason alone: no model, no weights, no GPU dependency - just math done in a color space chosen specifically because it behaves the way your eyes do. If you've ever cranked contrast or saturation in a standard RGB or HSV tool and watched skin tones shift orange or shadows clip into mud, that's the exact failure this node is built to avoid.

Why the color space choice matters

Standard RGB doesn't map cleanly onto how humans actually perceive brightness and color difference - equal numeric steps in RGB don't look like equal steps to your eye, which is exactly why naive contrast boosts introduce weird hue shifts as a side effect. This node instead converts into a perceptually uniform space, does its enhancement there, then converts back. You get three choices: Oklab, a modern (2020) space specifically designed to fix CIELAB's known perceptual-uniformity errors, and the one you want for most general enhancement work; Jzazbz, built for HDR content with especially strong hue-prediction accuracy; and plain CIELAB, the older standard with straightforward luminance/chrominance separation, useful when you want luminance-only adjustments that leave color completely untouched. Doing the contrast boost in one of these spaces instead of raw RGB is why the result looks like "more punch" rather than "wrong colors."

Inputs and outputs that matter

  • color_space - oklab (default, good general pick), jzazbz (HDR-leaning, best hue accuracy), or lab (luminance-focused, most conservative on color).
  • enhancement_strength (default 0.7, range 0–2) - 0.5 for subtle, 1.0 for moderate, 1.5+ for a strong push. Start low; perceptual-space contrast reads as more aggressive than the number suggests, because it's actually doing what you asked rather than fighting itself.
  • preset - skip the manual settings entirely with oklab_subtle, oklab_moderate, oklab_strong, jzazbz_professional, or lab_luminance. jzazbz_professional is aimed at color-grading work specifically; lab_luminance is the one to reach for if you want punch without any risk of a color shift at all.

Outputs: enhanced_image and processing_info, a string naming the color space, its stated advantages, and the strength applied.

Installing it

Through ComfyUI Manager, search Eric's Image Processing Nodes. By hand:

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

Restart ComfyUI. Nothing further to configure - this node has no model dependency at all, so if it's misbehaving, the cause is almost certainly upstream (a bad conversion elsewhere in your graph) rather than this node itself.

Where people get burned

The most common mistake is treating enhancement_strength like a standard "vibrance" slider and cranking it straight to 1.5–2.0 on the first try. Because the perceptual space is actually doing what you're asking rather than fighting a badly-behaved RGB curve, the same numeric value hits noticeably harder here than it would in a typical contrast node - start at the default 0.7 and nudge up rather than jumping in high.

The second thing worth knowing: jzazbz is tuned for HDR-range content, and on a standard SDR image it can look subtly different - sometimes flatter - than oklab at the same strength, simply because it's optimized for a wider dynamic range than the image actually has. If jzazbz looks underwhelming, that's usually a mismatch between the color space's target use case and your actual source, not a setting to chase - switch to oklab and you'll likely get the result you were expecting.

CategoryEric's Nodes/Advanced Enhancement

Inputs (4)

NameTypeDefaultDescription
imageIMAGE
color_spaceCOMBOoklabPerceptual color space: • oklab: Better perceptual uniformity than CIELAB • jzazbz: Superior hue prediction and HDR compatibility • lab: Standard CIELAB with luminance-chrominance separation
enhancement_strengthFLOAT0.70–2Enhancement strength: • 0.0: No enhancement • 0.5: Subtle enhancement • 1.0: Moderate enhancement • 1.5: Strong enhancement
presetoptCOMBOnoneProcessing presets: • none: Use manual settings • oklab_subtle: Subtle Oklab enhancement • jzazbz_professional: Professional color grading • lab_luminance: Luminance-only enhancement

Outputs (2)

NameTypeDescription
enhanced_imageIMAGE
processing_infoSTRING