Nodes/ComfyUI LC123 Nodes/LC Image Adjust
ComfyUI Node

LC Image Adjust

One node, the five grade knobs you actually use

By lonecatone23·Created 2 months ago·Updated 3 days ago· 18
LC Image Adjust
  • image
  • image
hue0.00
saturation0.00
brightness0.00
contrast0.00
sharpness0.00

The difference between "decent render" and "finished image" is often five minutes of color grading, and LC Image Adjust (LCImageAdjust) is the node that does those five minutes in one place: hue, saturation, brightness, contrast, and a mild sharpen/soften. Every control is centered on 0 = no change, which is the one design decision that makes it usable - you add exactly what you need and nothing else.

It's part of the LC123 pack's Image FX family, and it shares the family's nicest feature: an on-node preview with a before/after wipe when you hover.

The controls

All five map −1..1 onto a real grading operation:

  • hue - a hue rotation, −1..1 ≈ ±180°. Sweep it to fix a cast or to deliberately shift a whole look.
  • saturation - an offset, −1..1. This is a blunt global knob; if you only want to boost already-dull colors, the pack's separate LC Vibrance node is the smart version (it protects what's already saturated).
  • brightness - an additive offset. The post-processing docs are right to warn about this one: additive brightness flattens contrast and clips highlights fast. For "exposure," you usually want a gamma-style lift instead - but for a quick screen-correct, it's fine.
  • contrast - an S-curve around mid-gray (the code uses the classic 259/255 contrast formula), so it eases off at both ends instead of hard-clipping.
  • sharpness - −1 softens, +1 sharpens, via a mild unsharp. It's deliberately mild - this is a grade node, not a sharpening powerhouse (that's LC Sharpen Pro in the same pack).

How it works

Under the hood it converts to HSV-ish space for the hue/saturation work (true hue rotation, not a channel swap), applies brightness, then contrast, then the unsharp/soften pass - and everything runs in pure numpy/torch on the tensor. Deterministic, instant, no model in the path. That's the whole class of operation the KB's post-processing essay is cheering for: fix the color with a millisecond pixel op, not a re-roll.

Where it fits

Drop it after the sampler (or after upscale) and before Save Image. It's the "final pass" node - the one you fiddle with last when the image is 95% there and just needs its contrast pulled and its temperature nudged. Because it's so broad, it's also a good teaching node: everything it does maps 1:1 onto a basic photo editor.

Install

Part of ComfyUI_LC123_nodes:

cd ComfyUI/custom_nodes
git clone https://github.com/lonecatone23/ComfyUI_LC123_nodes

or ComfyUI Manager, then restart. No extra pip packages, no models.

Where people get burned

The honest traps: brightness at anything past ±0.4 starts looking like a wash (use it gently), and sharpness past ~0.6 starts haloing because the mild unsharp isn't halo-aware - that's what Sharpen Pro's halo clamp exists for. The pack is a quiet niche collection with essentially no community discussion, so the README's Image FX table plus your eyes are the documentation.

CategoryLC123/image

Inputs (6)

NameTypeDefaultDescription
imageIMAGE
hueFLOAT0.00-1–1Hue shift (−1..1 ≈ ±180°)
saturationFLOAT0.00-1–1Saturation offset (−1..1)
brightnessFLOAT0.00-1–1Brightness offset (−1..1)
contrastFLOAT0.00-1–1Contrast offset (−1..1)
sharpnessFLOAT0.00-1–1Sharpness (−1 soft … 1 sharp)

Outputs (1)

NameTypeDescription
imageIMAGE