ComfyUI Node

MX_ColorCorrect

The grade-everything node that replaces five separate steps

By Intersection98·Created 2 years ago·Updated 2 years ago· 13
MX_ColorCorrect
  • image
  • IMAGE
temperature0.00
hue0
brightness1.00
contrast1.00
saturation1.00
gamma1.0

ColorCorrect is the workhorse of the MX pack: one node that bundles brightness, contrast, saturation, hue, gamma, and white-balance-ish temperature into a single pass. It's the node you reach for when a generation comes out oversaturated and contrasty - the default failure mode of most models - and you want to pull it back to something that looks photographed instead of rendered. If you've read the standard "color grading" advice for AI images - drop saturation 5–10%, add a subtle warm or cool cast - this is the node that advice is about.

It lives in Intersection98/ComfyUI-MX-post-processing-nodes, and it slots in right after your VAE decode. Everything here is realtime-ish and CPU-cheap; none of it touches the sampler, so you can re-run it freely while dialing in a look.

How it works

Under the hood it's a chain of classic image operations. Brightness and contrast use PIL's ImageEnhance. Temperature multiplies the red/green channels for positive values (warming) and the blue channel for negative values (cooling). Gamma is a simple power function, saturation happens in HLS color space, and hue is a rotation in HSV. The order matters - brightness and contrast first, then temperature, then gamma, saturation, hue - so the later stages operate on the already-adjusted image. It's not a filmic transform, but it's a genuinely useful approximation of the controls you'd find in a raw editor.

The inputs that matter

  • image - your IMAGE tensor, straight off the VAE decode.
  • brightness, contrast, saturation - all default 1.0, range 0–5. This is the core of a basic grade: saturation down to ~0.9 and contrast down to ~0.95 fixes the "AI oversaturation" look in one go.
  • temperature - -1 to 1, default 0. Positive warms, negative cools. Subtle values like ±0.05–0.1 are the sweet spot; past ±0.3 it starts to look graded rather than natural.
  • hue - 0–360 degrees, a full color-wheel rotation. Mostly you'll leave it at 0 unless you're doing an intentional shift.
  • gamma - 0.2–2.2, default 1.0. Below 1 brightens shadows, above 1 darkens them; it's the closest thing here to a proper tone adjustment.

The output is a single IMAGE with the same dimensions, ready to chain into a save node or the next effect. Every input is required, so the node always appears fully loaded - which is fine, because the defaults are sane (all the "strength" knobs sit at 1.0, meaning no-op until you touch them).

Install

Standard MX pack install: ComfyUI Manager (search MX or ComfyUI-MX-post-processing-nodes), or clone it into custom_nodes:

cd ComfyUI/custom_nodes
git clone https://github.com/Intersection98/ComfyUI_MX_post_processing-nodes
cd ComfyUI_MX_post_processing-nodes
pip install -r requirements.txt

Restart ComfyUI and you'll find it under postprocessing/Color Adjustments. No models to download, no keys.

Where people get burned

Because every control is a required input, it's easy to leave one at a non-default value by accident and not realize why your images all have a green tint. If your output looks wrong, check each slider against its default (all the 1.0 ones and temperature/hue at 0). One genuine quirk: the operations run in a fixed order with 8-bit intermediate steps, so cranking brightness to 5 and back can clip detail - push the overall exposure gently and split big changes across a second pass instead of one extreme. For most color work this is the one MX node you'll actually use daily.

Categorypostprocessing/Color Adjustments

Inputs (7)

NameTypeDefaultDescription
imageIMAGE
temperatureFLOAT0.00-1–1
hueFLOAT00–360
brightnessFLOAT1.000–5
contrastFLOAT1.000–5
saturationFLOAT1.000–5
gammaFLOAT1.00.2–2.2

Outputs (1)

NameTypeDescription
IMAGEIMAGE