Brightness/Contrast
The two sliders that fix half of all 'too dark' images
- image
- image
Brightness/Contrast is the node equivalent of the two sliders every image editor has had since 1995 - and it's genuinely useful in ComfyUI because core ComfyUI doesn't give you a plain brightness/contrast control out of the box. Drop one after a VAE Decode, nudge the image out of the mud, keep going. Nothing clever, nothing to learn, and it's the node you'll actually use more than the pack's fancy ICC machinery.
How it works
It's numpy math on the image tensor: brightness adds (or subtracts) an offset across all channels, contrast scales values around the midrange. The ranges tell you the design intent - brightness runs −1.0 to 1.0 with 0 as neutral, contrast runs 0.0 to 3.0 with 1.0 as neutral. That's the one thing people trip on: contrast isn't 0–100, it's a multiplier, so 1.0 means "no change," 1.5 is more contrast, 0.5 is flatter/washed. Start from 1.0, not 0.
The inputs that matter
- brightness - −1.0 to 1.0, default 0. Small values do a lot; ±0.1 is already visible on most images.
- contrast - 0.0 to 3.0, default 1.0. Below 1 = flatter, above 1 = punchier. 1.2–1.4 is the classic "pop" range for generated images; push toward 2+ for a hard look.
- input_mode -
tensor(default) orfileviaimage_path. BrightnessContrast is one of the pack's nodes that happily works on a file path if you prefer.
Output is a single image tensor. There's no info string here - it's a pure adjustment node, and that's fine; you don't need a JSON receipt for two sliders.
The workflow
The most common ComfyUI complaint is "my image came out too dark." In a huge number of cases that's not a model problem, it's a post-processing problem - and this node fixes it in one click. It's also the cheap fix before you reach for tone curves or exposure nodes: brightness up 0.1, contrast up to 1.3, done. And because it's additive math, it plays well in series - brightness/contrast to establish the base, then ColorTemperature for mood, then GammaCorrection if you want a curve-level nudge.
Install
Same pack as the whole color-tools family:
cd ComfyUI/custom_nodes
git clone https://github.com/APZmedia/ComfyUI-color-tools
Or ComfyUI Manager → search "ComfyUI Color Profile Reader" → Install → restart. The README's clone command contains a placeholder URL (yourusername/ComfyUI-color-tools.git) - the real repo is APZmedia/ComfyUI-color-tools. Needs numpy (and OpenCV for file-mode loading), both optional deps the startup install.py adds automatically - first launch can stall a couple minutes while pip works, which is expected.
The one honest limitation: this is a global adjustment. There's no masking, no per-region control, no auto-exposure. If you need to brighten only the face, this isn't the node - that's a mask + composite job. But for the 90% case of "image is uniformly a bit dark," it's exactly right.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| input_mode | COMBO | tensor | 2 options: file, tensor |
| brightness | FLOAT | 0.00-1–1 | — |
| contrast | FLOAT | 1.000–3 | — |
| imageopt | IMAGE | — | |
| image_pathopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |