Nodes/ComfyDL/Image Adjust
ComfyUI Node

Image Adjust

Brightness, contrast, and saturation in one pass — 1.0 means leave it alone

By Cynthia-lxx·Created 2 months ago·Updated 2 days ago· 6
Image Adjust
  • image
  • image
brightness1.00
contrast1.00
saturation1.00

CdlImageAdjust is the one-stop shop for the three classic photo tweaks - brightness, contrast, saturation - in a single node that takes a normal ComfyUI IMAGE and hands back a normal IMAGE. No tensors to wrangle, no format conversion, no cdlTensor-only ports. If your image looks flat, washed out, or oversaturated, this is the quick dial. It's part of ComfyDL's Image Tools category, and it's one of the few nodes in the pack that plays nicely with the rest of the ComfyUI ecosystem exactly because it speaks the standard IMAGE type.

How it works

Each of the three factors goes through a torchvision adjustment - adjust_brightness, adjust_contrast, adjust_saturation. The semantics are simple:

  • 1.0 = unchanged. That's the default for all three, so a fresh node does nothing until you move a slider.
  • Greater than 1.0 = stronger (brighter, more contrast, more color).
  • Less than 1.0 = weaker, down to 0.0 which zeroes that property out entirely (black for brightness, flat gray for contrast, grayscale for saturation).

A neat implementation detail: any factor sitting at exactly 1.0 is skipped rather than computed, so the node is effectively free when you're only tweaking one channel. The adjustments run in [B, H, W, C] image-batch space, so a whole batch gets the same treatment consistently.

Inputs and output

  • image - a standard ComfyUI IMAGE batch.
  • brightness - FLOAT 0–2, default 1.0.
  • contrast - FLOAT 0–2, default 1.0.
  • saturation - FLOAT 0–2, default 1.0.

The output is image, same IMAGE type and same batch layout - wire it straight into PreviewImage, SaveImage, or another image-op node.

Where you'd use it

Anywhere you'd reach for the color adjustments in a photo editor but want it inside the graph: fixing a generated image that came out too dark, punching up contrast before sending an image to a detailer, or standardizing inputs to a dataset viewer. Because it's plain IMAGE-in / IMAGE-out, it slots into ordinary ComfyUI workflows with zero friction - which is more than you can say for most of ComfyDL's tensor-native nodes.

Installing it

It ships with ComfyDL, one install for all 106 nodes:

cd ComfyUI/custom_nodes
git clone https://github.com/Cynthia-lxx/ComfyDL
pip install -r ./ComfyDL/requirements.txt

Restart ComfyUI, or search "ComfyDL" in ComfyUI Manager. No extra dependency beyond what ComfyUI already provides - the adjustments are torchvision, which ships with ComfyUI.

Gotchas

  • The ranges top out at 2.0 and bottom at 0.0, which is a lot of range; a 1.5 brightness can already look washed out on a bright image. Small steps (0.05) are the sensible increments, and the slider is set up that way.
  • These are factor-based adjustments, not the fancier auto-levels or histogram-stretching you get from a full photo suite - if an image needs real tonal correction, this node is the quick pass, not the finishing tool.
  • Batch consistency cuts both ways: the same factor applies to every frame in the batch, so you can't grade frames individually without splitting them first.
Categoryimage/color

Inputs (4)

NameTypeDefaultDescription
imageIMAGE
brightnessFLOAT1.000–2
contrastFLOAT1.000–2
saturationFLOAT1.000–2

Outputs (1)

NameTypeDescription
imageIMAGE