FL Image Adjuster
FL_ImageAdjuster — hue, saturation, brightness, contrast and sharpness in one node
- image
- IMAGE
This is the boring-but-genuinely-useful one. Five sliders - hue, saturation, brightness, contrast, sharpness - with a live preview right on the node. It's the Lightroom basics panel, dropped into your ComfyUI graph, and it's the node from the whole Fill-Nodes pack you're most likely to keep wired in permanently.
Why bother when the model already made the image? Because generations come out flat, or slightly green, or a touch too dark, and you don't want to round-trip through Photoshop for a five-second color tweak. Nudge saturation up a hair, pull contrast to taste, warm the hue a few degrees, done - and because the preview updates on the node, you're not re-running the whole workflow to see what a change did.
How it works
Nothing fancy under the hood, which is the point. It leans on PIL's ImageEnhance, converts to HSV for the hue and saturation moves, and runs an unsharp-mask filter for sharpening. So these are the same operations any image editor gives you, applied globally across the frame. No model, no VRAM to speak of, near-instant.
The inputs that matter
All five default to 0 (well, sharpness starts at 0 too), meaning "no change" - so you only touch what you need.
hue(−180 to 180) - rotates every color around the wheel. Small values correct a color cast; big values are a full palette shift.saturation(−100 to 100) - how vivid. Negative pushes toward grayscale, positive juices it.brightnessandcontrast(−100 to 100) - exactly what they say.sharpness(0 to 100) - unsharp mask. A little bites nicely; a lot gives you crunchy halos around edges.
Output is a single IMAGE, and the node also renders a preview inline so you can eyeball the result without a separate preview node.
How to install it
Fill-Nodes is a big kitchen-sink pack by filliptm (aka "Machine Delusions"), so you install the whole thing to get this one node - that's the trade. Easiest path is ComfyUI Manager → search ComfyUI_Fill-Nodes → Install → restart. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_Fill-Nodes
pip install -r ComfyUI_Fill-Nodes/requirements.txt
then restart ComfyUI. FL_ImageAdjuster itself has no model download and no exotic dependencies - it's pure PIL, which is already installed. The pack's heavier requirements (audio, PDF, cloud-API libraries) are for other nodes, not this one.
Common issues & troubleshooting
It's global, not local. These sliders hit the entire image. If you only want to warm up the sky or desaturate one object, this isn't the tool - you'd mask that region and adjust it separately. FL_ImageAdjuster is for whole-frame grade, not selective edits.
Sharpness looks harsh fast. Unsharp mask exaggerates edge contrast, so past ~30-40 you start seeing halos and amplified noise, especially on already-crisp output. If you're upscaling later, do the sharpening after the upscale, not before - a lesson straight out of the upscaling playbook: fix and finish at the resolution you're keeping, because anything you bake in early gets magnified. Better yet, let a real detail-adding upscaler handle sharpness and use this node just for color.
Order of operations. Put color adjustment near the end of your pipeline. Adjusting before a diffusion pass just gives the sampler a differently-tinted starting point; adjusting the final image is what you actually want. And if you're feeding a downstream node that expects untouched values (a second sampler, a ControlNet preprocessor), grade on a branch, not in the main line.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| hue | FLOAT | 0-180–180 | — |
| saturation | FLOAT | 0-100–100 | — |
| brightness | FLOAT | 0-100–100 | — |
| contrast | FLOAT | 0-100–100 | — |
| sharpness | FLOAT | 00–100 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |