Nodes/ComfyUI-image-processor-zn123/Adjust Brightness @zn123
ComfyUI Node

Adjust Brightness @zn123

The brightness slider whose README range is a lie

By zn123·Created 9 months ago·Updated 5 months ago· 0
Adjust Brightness @zn123
  • image
  • adjusted_image
brightness1.0

If you've ever generated something a touch too dark and wanted to lift it without re-rolling the seed, this is the node. Adjust Brightness @zn123 is a no-fuss exposure knob from the image/processor pack: feed it an IMAGE, give it a number, get the same image brighter or darker. It's the image-processing equivalent of nudging the exposure slider in your editor, done inside the graph so the result stays a tensor you can keep piping.

What it actually does

Under the hood this is a one-line wrapper around Pillow's ImageEnhance.Brightness. The node takes each frame of your batch, converts it to a PIL image, applies the enhance factor, and converts back. Yes, that round-trip through PIL is a little clunky next to pure-tensor math, but for a single reference image you won't notice the difference. Everything stays in ComfyUI's IMAGE tensor format (BHWC), batch and all, so a stack of frames from a video pipeline gets the same treatment in one pass.

The one input you actually set is brightness, a FLOAT from 0 to 3 (step 0.1, default 1). Here's the part the pack's README gets flat wrong: it claims the range is -1.0 to 1.0 with "0 = no change." It is not, and 0 is absolutely not "no change." This is a multiplicative factor, exactly like the brightness slider in any photo app:

  • 1.0 - no change (the default)
  • 1.2 - a subtle, safe lift
  • 2.0 - aggressively bright
  • 0.5 - darker
  • 0.0 - pure black

Yes, the README's "0 = no change" is wrong enough to nuke your image. If you set brightness to 0 expecting a pass-through, you get a black rectangle. That's the single most common way people burn themselves on this node, and it comes straight from the stale docs, not the code.

Where it fits in a workflow

The natural spot is image preprocessing: fixing exposure before an img2img pass, brightening a reference before it goes into ControlNet or IPAdapter so the conditioning actually sees the detail you care about, or just cleaning up a generation before it hits an upscaler. It's cheap and predictable - no model, no VRAM beyond the image itself, no surprises.

It slots in after LoadImage (or any IMAGE output) and outputs a single adjusted_image of type IMAGE, which wires right into whatever expects an image next. Chain it with the pack's Adjust Contrast node - brightness first, then contrast - to do a proper exposure correction pass in two clicks.

Installing it

The whole pack comes down the same way as every other custom node:

  • ComfyUI Manager - search "ComfyUI-image-processor-zn123", install, restart.
  • Manual - from ComfyUI/custom_nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/zn123/ComfyUI-image-processor-zn123

Then restart ComfyUI and it appears under image/processor. There's no model download and no heavy dependency: the requirements file is just torch, numpy and Pillow, all of which ComfyUI already ships. This is one of the friendlier packs to install, if only because there's nothing that can fail to download.

Gotchas

  • brightness is a factor, not an offset. 0.0 is black, 1.0 is identity, and the README's "0 = no change" will wreck your frame.
  • The pack is small, zero-traction and reads like it was AI-assisted (the author field in its pyproject literally says "AI Assistant"). It's trivial to eyeball the ~40 lines of this node in nodes.py if you're the paranoid type - that's the right level of caution for any custom node.
  • It's a pixel-space edit, not a latent one. It won't "fix" an image the way re-sampling will; it just changes how the existing pixels look, which is exactly what you want for preprocessing and exactly not what you want if you were hoping for a miracle.

If you need a slightly brighter starting point for your next pass, this is a fine, boring tool. Just don't set it to 0.

Categoryimage/processor

Inputs (2)

NameTypeDefaultDescription
imageIMAGE
brightnessFLOAT1.00–3

Outputs (1)

NameTypeDescription
adjusted_imageIMAGE