Nodes/ComfyUI-ZhiHui/🎨 智绘_颜色调整
ComfyUI Node

🎨 智绘_颜色调整

Brightness, contrast, saturation, sharpness

By zhuyungen·Created 8 months ago·Updated 4 months ago· 0
🎨 智绘_颜色调整
  • images
  • 调整后图像
◄brightness1.00►
◄contrast1.00►
◄saturation1.00►
◄sharpness1.00►

Every diffusion image needs the same touch-up: a bit more contrast, the saturation turned down a notch, a hair of sharpening. ComfyUI has these scattered around core nodes, but ZH_ColorAdjust (🎨 智绘_颜色调整) bundles the four classic ones - brightness, contrast, saturation, sharpness - into one node with one IMAGE in and one IMAGE out. It's the pack's "do the boring Photoshop bit" utility, and the shallow-end sibling of ZH_ColorAdjustAdvanced, which handles white balance and exposure instead.

How it works

The mechanism is worth knowing because it tells you what to expect. Under the hood it's Pillow's ImageEnhance - the same functions that have done this job in PIL for decades, wrapped into tensor in/tensor out. Each of the four operations runs only if you move its slider off 1.0, then the image is converted back to a tensor. No model, no GPU work to speak of, effectively instant even on a 4K image or a long video frame sequence.

That means the behavior is the classic one, and it's the thing that trips people up:

  • brightness is multiplicative, not additive. 1.0 = original; 1.2 multiplies every pixel's value by 1.2, which is why going high washes out highlights instead of gently lifting them.
  • contrast multiplies the deviation from the mid-tone. Above 1.0 deepens darks and brightens lights; below 1.0 flattens toward grey.
  • saturation at 1.0 is original, and 0.0 is full greyscale - the tooltip spells it out. Great cheap trick for a desaturated cinematic grade: don't fight the model, just pull this to 0.8.
  • sharpness at 1.0 is original; below 1.0 it actually blurs. The same tooltip tells you.

The inputs that matter

All four sliders span 0–2 in 0.01 steps, and all default to 1.0, which means the node is a pass-through until you touch something - a nice safety property. For a beginner, saturation (pull down to break the oversaturated AI look) and contrast (nudge up to 1.05–1.1 to kill the flat, hazy look) are the two you'll actually move. The only other input is images, and the only output is 调整后图像 (IMAGE) - wire it between your sampler output and your save node.

Install

This is one node in the 智绘灵箱 (ComfyUI-ZhiHui) pack, so install the whole pack:

cd ComfyUI/custom_nodes
git clone https://github.com/zhuyungen/ComfyUI-ZhiHui.git

Restart ComfyUI, or install via ComfyUI Manager by searching "智绘灵箱" / "ComfyUI-ZhiHui". The node itself only needs Pillow; the pack's requirements.txt pulls heavier deps (rembg, transformers, opencv) for its other nodes, and since the pack imports everything at startup they'll be loaded anyway. Harmless, just disk.

Where people get burned

  • The sliders are easy to overshoot. Because brightness and contrast are multiplicative, a value of 1.5 isn't "a bit more" - it's a lot. Move in 0.05 increments.
  • This is a pixel-space, deterministic pass. If you're trying to fix a fundamentally broken generation (wrong lighting, blown highlights baked in), no post-hoc slider will save it - that's an img2img or regen problem, and doing it with a slider is the classic trap this KB's post-processing doc warns about.
  • Sharpening is the weakest of the four. A touch (1.05–1.15) crisps up fine detail nicely; past that you get ugly halos. If you need real sharpening, reach for an upscaler pass instead.

For a "last 10% of polish" node it does exactly what it says and stays out of the way. The value proposition is simple: one node, four sliders, and you stop scattering core nodes across your graph for what should be a single step.

Category智绘灵箱/工具箱

Inputs (5)

NameTypeDefaultDescription
imagesIMAGE—
brightnessFLOAT1.000–2亮度:1.0为原图,>1增亮,<1变暗
contrastFLOAT1.000–2对比度:1.0为原图,>1增强,<1减弱
saturationFLOAT1.000–2饱和度:1.0为原图,0为灰度,>1增强
sharpnessFLOAT1.000–2锐度:1.0为原图,>1增强,<1模糊

Outputs (1)

NameTypeDescription
调整后图像IMAGE—