Nodes/ComfyUI-tools_zero/实时颜色调整
ComfyUI Node

实时颜色调整

Grade the image inside the node before it hits the sampler

By AIGCZero·Created about a year ago·Updated about a year ago· 16
实时颜色调整
  • image
  • IMAGE

Sometimes you don't want to regenerate - you want the image to just look warmer, or punchier, and you want to eyeball it before committing. Zero_ColorAdjustment is an interactive color-grading node: feed it an image, and sliders for brightness, contrast, saturation, hue, temperature, and tint appear right on the node. Drag them, watch the preview update live, hit apply, and the node hands the adjusted image downstream. It's color grading as a graph node, no external editor required.

It's part of AIGCZero/ComfyUI-tools_zero, a Chinese-first grab bag of utilities, and it's one of the pack's two interactive nodes (the other is Zero_ImageCropper). The pattern - node sends a preview to the frontend, you adjust, the frontend sends the result back - is ComfyUI's standard interactive-node dance, and this one executes it cleanly.

What it does

One required input: image (any IMAGE tensor). The node pops a preview of the first frame into its UI, with sliders to work with - brightness, contrast, saturation, then the color controls: hue, temperature (warm/cool), and tint. They're laid out so you can fix a green cast, warm up a skin tone, or push saturation without leaving the graph. When you're happy, apply, and the node returns the graded IMAGE tensor.

Because it's an output node, ComfyUI always runs it, and because the adjustment is a tensor operation feeding the next node, whatever you do here flows into the rest of the pipeline - a refined image for img2img, a color-corrected reference for an IPAdapter, or a nicer frame to upscale. It's a "preview then commit" workflow, not a saved file.

How it works

Mechanically it's a small client-server loop. The node converts your image to a PNG, sends it to the frontend over ComfyUI's websocket, and then waits for your input - up to five seconds. The frontend renders the preview, you fiddle with sliders (each drag recomputes a preview locally in the browser), and on apply it posts the adjusted RGBA data back to a /zero_color_adjustment/apply route, which rebuilds the tensor and unblocks the node. No model involved, nothing heavy on the GPU - it's pure pixel math on the frontend and a tensor reshape on the backend.

Installing it

Standard pack install. ComfyUI Manager → search "ComfyUI-tools_zero", or:

cd ComfyUI/custom_nodes
git clone https://github.com/AIGCZero/ComfyUI-tools_zero

Restart after cloning. The interactive UI lives in the pack's web/ directory, so it only works in the ComfyUI frontend - not through the raw API.

Where people get burned

The big one is the timeout. This node blocks the queue waiting for you - hit the five-second limit and it returns the original image, ungraded. That's a feature (the workflow never hard-fails), but it means you can't walk away mid-run and come back to find your adjustments applied. Second, only the first frame of a batch gets previewed, so grading a video's every frame isn't what this does - it's for a single image, or the first frame of a batch. And in headless/API mode there's nobody at the sliders, so it just passes the image through. That's fine for most people, but know it going in: this node is a "sit at the keyboard and look" tool, not an automation piece.

Categorytools_zero

Inputs (1)

NameTypeDefaultDescription
imageIMAGE

Outputs (1)

NameTypeDescription
IMAGEIMAGE