Colors Correct Node
Brightness, contrast, saturation and hue in one node
- image
- IMAGE
Diffusion output color grading is one of those things everyone eventually needs and nobody wants a separate app for. ColorsCorrectNode is a straightforward image-editing-app-style color correction pass, built as a single ComfyUI node: brightness, contrast, saturation, gamma, and a hue shift, all in one place, so you can nudge a generation's color balance without leaving the graph.
Why you'd reach for it
The most common use is exactly what you'd do in Photoshop or Lightroom's basic panel: your generation came out slightly too flat, or too warm, or too desaturated, and you want to fix it in-graph rather than exporting to another tool and back. It's also genuinely useful as a batch step - wire it after your VAE decode and you can apply a consistent grade across every image a workflow produces, rather than manually correcting each one afterward.
How it works
It's a per-pixel color transform applied in sequence: brightness and contrast adjust the tonal range, saturation scales color intensity, gamma reshapes the brightness curve (different from brightness - gamma affects midtones disproportionately to highlights/shadows), and the hue control rotates all colors around the color wheel by a set number of degrees.
The inputs and outputs that matter
image(required, IMAGE) - the image to correct.brightness,contrast,saturation,gamma- all FLOAT, default 1.0, range 0–100, step 0.05. A value of 1.0 means "no change" for each - this is a multiplier, not an absolute scale, so small moves away from 1.0 (say, 0.9 or 1.1) are where you'll actually be working; the 0–100 range exists for extreme effects, not typical use.hue_degrees- FLOAT, default 0, range 0–360, step 0.01. Rotates the whole image's hue. 0 is no shift.use_color(defaulttrue, BOOLEAN) - toggles whether the node drives its hue shift from thehex_colorswatch below or from the numerichue_degreesvalue directly. With it on, dial in a color via the hex swatch and let the node work out the hue rotation; switch it off to ignore the swatch and control the hue shift by number instead.hex_color(optional, default#00FF33) - a color swatch as a hex string, used whenuse_coloris on. If you already know the exact hue you want in degrees, you can skip this and drivehue_degreesdirectly instead.
Output is a single IMAGE - the corrected result, same dimensions as the input.
How to install it
Via ComfyUI Manager: search "ComfyUI Custom Nodes AlekPet" and install. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/AlekPet/ComfyUI_Custom_Nodes_AlekPet
Restart ComfyUI. This is a pure image-processing node - no model downloads, no API calls, runs instantly on CPU.
Common issues & troubleshooting
A small brightness/contrast/saturation/gamma change does nothing visible. Remember these default to 1.0 as "no change," not 0 - if you're used to sliders that default to 0, you'll want to nudge around 1.0 (0.9, 1.1, 1.2) rather than typing small values near 0, which will actually crush the image toward black.
Hue shift doesn't match the color you picked in hex_color. Check use_color is actually on - if it's off, the node ignores the hex swatch entirely and uses hue_degrees instead, so a hex value sitting there unused won't do anything.
You need the hue value as a number elsewhere in your graph, not just applied here. That's what the companion HexToHueNode is for - it takes the same kind of hex color input and outputs the raw hue-degrees/hue-normalized values as FLOAT and STRING, if you need that number available to feed into something other than this node directly.
Extreme values wash the image out or invert colors oddly. The 0–100 range on brightness/contrast/saturation/gamma is wide enough to produce genuinely broken-looking output well before you hit the ceiling - treat values much beyond roughly 1.5–2× the default as "stylistic experiment" territory rather than "correction."
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| brightness | FLOAT | 1.000–100 | — |
| contrast | FLOAT | 1.000–100 | — |
| saturation | FLOAT | 1.000–100 | — |
| gamma | FLOAT | 1.000–100 | — |
| hue_degrees | FLOAT | 0.000–360 | — |
| use_color | BOOLEAN | true | — |
| hex_coloropt | STRING | #00FF33 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |