ComfyUI Node

Brightness/Contrast

The two sliders that fix half of all 'too dark' images

By APZmedia·Created 11 months ago·Updated 5 months ago· 7
Brightness/Contrast
  • image
  • image
input_modetensor
brightness0.00
contrast1.00
image_path

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) or file via image_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.

CategoryColor Tools/Grading

Inputs (5)

NameTypeDefaultDescription
input_modeCOMBOtensor2 options: file, tensor
brightnessFLOAT0.00-1–1
contrastFLOAT1.000–3
imageoptIMAGE
image_pathoptSTRING

Outputs (1)

NameTypeDescription
imageIMAGE