Color Adjust (Purz)
The brightness/contrast/saturation trio, done
- image
- image
Every image pipeline ends with the same three knobs: brightness, contrast, saturation. PurzColorAdjust is the node that packages exactly those three, no more, no less. Feed it an IMAGE, adjust one or all three sliders, and out comes the corrected IMAGE. It's the "get your look right before you save" node - the sort of thing you drop at the end of a generation workflow when the model produced something a touch too dark, a bit flat, or slightly oversaturated.
It's part of ComfyUI-Purz, the utility pack by PurzBeats (a Comfy Org staffer). If you've got the whole pack, this is the lightweight everyday cousin of the much bigger Interactive Filter - three sliders instead of 120+ effects.
How it works
Under the hood it uses Pillow's ImageEnhance module: brightness, contrast, and color (saturation) enhancers applied in sequence, in that order. The neat implementation detail is that it skips each stage entirely when the value is exactly 1.0 - so if you only touch contrast, it doesn't waste time converting through the brightness or saturation paths. It loops over the whole batch, which makes it perfectly usable for adjusting every frame of a video sequence in one pass.
The inputs that matter
- image - the
IMAGEtensor to adjust. - brightness - 0 to 3, default 1. 1 is neutral; below 1 darkens, above 1 brightens. 0 makes it black, 2 is quite blown.
- contrast - 0 to 3, default 1. Below 1 flattens toward gray, above 1 pushes toward hard edges. 0 makes a solid mid-gray; this is your "give it punch" slider.
- saturation - 0 to 3, default 1. 0 is full grayscale, 1 is natural, 2+ is that punchy saturated look. Drag it to 0 and you have a B&W conversion - though the pack's dedicated B&W node uses a proper luminance formula, which looks better.
Output is image, same IMAGE type and dimensions, so it slots in at the end of any chain.
Installing it
ComfyUI Manager - search ComfyUI-Purz - or:
cd ComfyUI/custom_nodes/
git clone https://github.com/purzbeats/ComfyUI-Purz.git
cd ComfyUI-Purz
pip install -r requirements.txt
Restart ComfyUI and you're set. Requirements are OpenCV, Pillow, torch, numpy - all things ComfyUI ships with, so there's nothing heavy to install and no models to download. On a modern ComfyUI you get slider widgets for all three values, which makes live-tuning painless.
Where people get burned
Order of operations. Brightness, contrast, and saturation don't commute - pulling saturation down before fixing brightness gives a different result than the reverse, so get your exposure right first, then push contrast, then saturation last. Also, values are multiplicative with 1 as neutral, not additive - someone expecting "brightness +50" will find 1.5 instead. It's a tiny mental shift, but once you're used to 1-as-neutral, it's actually more predictable than additive knobs for batch work.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| brightness | FLOAT | 1.000–3 | — |
| contrast | FLOAT | 1.000–3 | — |
| saturation | FLOAT | 1.000–3 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |