Nodes/ComfyUI/Adjust Brightness
ComfyUI Node Runs on cloud

Adjust Brightness

One multiply, and the clamp that eats your highlights

By Comfy-Org·Created 4 years ago·Updated about 5 hours ago· 129,964
Adjust Brightness
  • images
  • images
factor1.00

There is no simpler image node in all of ComfyUI. Adjust Brightness multiplies every pixel value by a number and clamps. That's it - no auto-exposure, no histogram, no per-channel control. It landed late 2025 inside ComfyUI's dataset-processing module (comfy_extras/nodes_dataset.py, part of the improved built-in LoRA trainer release) as a batch-prep utility, which is the honest use case. But it's a perfectly serviceable brightness knob anywhere you need one.

The whole mechanism

return (image * factor).clamp(0.0, 1.0)

factor is the multiplier, per channel, on the 0–1 color scale. 1.0 changes nothing, <1.0 darkens, >1.0 brightens, 0.0 is pure black. Compare that to its sibling Adjust Contrast, which scales around mid-gray: contrast at 0.5 keeps gray pinned in place while flattening everything else. Brightness has no pivot - it's pure gain, so it moves the blacks along with the whites. That's the practical difference to remember when you're choosing which one to pull.

The inputs

Just two:

  • images (IMAGE) - what you're adjusting.
  • factor (FLOAT, 0–2, default 1.0) - the one knob. <1.0 darker, >1.0 brighter.

Output is images (IMAGE), so it drops into any image chain and pairs naturally with Adjust Contrast (they share a category, a schema shape, and the same single output). It's marked is_experimental and as pure tensor math - no per-frame loop, so batches and video tensors get processed in one shot. Fast, effectively free.

When to reach for it

The intended job is dataset prep: LoadImageDataSetFromFolder → Adjust Brightness → SaveImageDataSetToFolder, to push a mixed set of training images toward consistent exposure before you caption and train. The LoRA-training consensus is that dataset curation outweighs every training knob - and "five of these twenty images are a stop too dark" is a curation problem this node solves in one pass, before the trainer ever sees the folder.

For final renders it's a passable fix for a dark decode, but know what it isn't. Multiplying is linear, your eyes are logarithmic, so a 1.2 boost in the shadows and a 1.2 boost in the highlights feel very different - there's no lift-versus-gain distinction here, just gain. If you want shadow lift, gamma, or levels, that's a post-processing pack or an editor. The photorealism playbook also warns that AI images trend oversaturated and overcontrasty, so when in doubt, darkening slightly beats brightening.

Where people get burned

  • The clamp is the trap. Values over 1.0 get cut to pure white, and with factor at 2.0 anything above 0.5 luminance dies instantly. Blown highlights don't come back - re-running with a lower factor starts from the clipped image, not the original. Brighten in small steps, and if you're going past 1.15, check the sky and skin before saving.
  • It's young and experimental. It barely registers in community discussion, there are few example workflows floating around, and the schema is subject to change. Fine for personal graphs; don't build a rigid production pipeline on it without pinning ComfyUI.
  • Nothing to install. It's core - search "brightness" (that's the search alias) and it's there. No model files, no downloads, no config.

Use it when you want one blunt, predictable brightness knob that runs over a whole batch or a video clip. For anything subtler, this is the wrong tool and it'll happily tell you by crushing your highlights.

Categoryimage/adjustments

Inputs (2)

NameTypeDefaultDescription
imagesIMAGEImage to process.
factorFLOAT1.000–2Brightness factor. 1.0 = no change, <1.0 = darker, >1.0 = brighter.

Outputs (1)

NameTypeDescription
imagesIMAGEProcessed images