Nodes/MTB Nodes/Color Correct (mtb)
ComfyUI Node Runs on cloud

Color Correct (mtb)

Grade your render without leaving ComfyUI

By melMass·Created 3 years ago·Updated about a month ago· 721
Color Correct (mtb)
  • image
  • mask
  • IMAGE
clamptrue
gamma1.00
contrast1.00
exposure0.00
offset0.00
hue0.00
saturation1.00
value1.00

A render comes out a little flat, a bit cool, slightly under-exposed - and instead of exporting it to an editor to fix, you fix it right here. Color Correct is a compact grading node: exposure, contrast, gamma, hue, saturation, value, and an offset, all in one place. It's the "warm this up and add a touch of pop before I save it" node.

Nothing fancy under the hood, and that's the point. It's the same set of controls you'd find in any photo app, living in the graph so you can grade conditionally, between passes, or as a consistent last step on a batch. Wire it in once and every image out of your workflow gets the same treatment.

How it works

Straight pixel math - it applies each adjustment to the image tensor. No model, instant, CPU. The optional mask is the clever bit: it lets you confine the grade to part of the image.

The inputs that matter

You won't touch all eight knobs most days. The ones that earn their keep:

  • exposure (−5 to 5, 0 = none) - overall brightness, the first thing to reach for on a dark or blown-out render.
  • contrast (0 to 5, 1 = none) - pushes darks down and lights up. A little goes a long way against that flat, low-contrast "AI" look.
  • saturation (0 to 5, 1 = none) - color intensity. Drop below 1 to desaturate, nudge above for punch. Overdo it and skin tones go radioactive.
  • gamma (0 to 5, 1 = none) - midtone brightness without crushing the extremes; great for lifting shadows gently.
  • hue (−0.5 to 0.5, 0 = none) - rotates all colors around the wheel (the range is ±half a full turn). Small values for a subtle temperature shift, large for deliberate weirdness.

value and offset fine-tune brightness in slightly different ways, and clamp (default on) keeps the result inside the valid 0–1 range so you don't get blown-out artifacts - leave it on unless you have a reason not to.

  • mask (optional) - grade only where the mask is lit. Warm up a subject while leaving the background alone, or punch the sky without touching the foreground.

Single IMAGE output.

How to install it

ComfyUI Manager: search MTB Nodes (comfy_mtb), install, restart. Or manually: cd ComfyUI/custom_nodes && git clone https://github.com/melMass/comfy_mtb and restart. Pure Python - nothing to download.

Common issues

The usual mistake is heavy-handedness. These controls stack, and it's easy to crank contrast and saturation and exposure and end up with a crunchy, oversaturated mess. Grade in small moves and compare against the original - MTB's Image Compare node is handy for exactly this.

If highlights or colors are clipping in a way you don't like, check clamp - with it on, out-of-range values get pulled back into gamut, which is usually what you want but occasionally flattens a deliberately bright highlight. And if only part of the image should change, use the mask input rather than trying to balance a global grade that works everywhere; a masked local correction is almost always cleaner than a compromise applied to the whole frame.

Categorymtb/image processing

Inputs (10)

NameTypeDefaultDescription
imageIMAGE
clampCOMBOtrue2 options: true, false
gammaFLOAT1.000–5
contrastFLOAT1.000–5
exposureFLOAT0.00-5–5
offsetFLOAT0.00-5–5
hueFLOAT0.00-0.5–0.5
saturationFLOAT1.000–5
valueFLOAT1.000–5
maskoptMASK

Outputs (1)

NameTypeDescription
IMAGEIMAGE