Nodes/S42 CutFlow/☀ S42 CutFlow Color Adjust
ComfyUI Node

☀ S42 CutFlow Color Adjust

Brightness, Gamma, and Everything in Between

By GeekyGhost·Created 6 months ago·Updated 4 months ago· 3
☀ S42 CutFlow Color Adjust
  • clip
  • clip
  • frame_count
  • info
brightness0.00
contrast1.00
saturation1.00
hue_shift0
gamma1.00
temperature0.00

Where S42 CutFlow's Style Transfer node imposes an opinionated cinematic grade, S42CF_ColorAdjust is the boring, essential one: six independent controls - brightness, contrast, saturation, hue, gamma, temperature - that fix what's actually wrong with your footage. If your LTX or Wan output comes out washed out, crushed, or with the color cast of a hospital hallway, this is the node you reach for first.

Here's the thing the tooltips get right: brightness and gamma are not the same operation. Brightness is additive - it adds a constant offset to every pixel, which flattens contrast and clips highlights fast. Gamma is a power curve; it lifts shadows or darkens mids without moving your whites. When a VAE decode comes out underexposed, the classic move is a touch of gamma below 1.0 to lift shadow detail you thought was gone, rather than dragging brightness up and turning the whole frame milky. That's the single most useful trick in this node, and it's straight out of the post-processing playbook.

The inputs that matter

  • brightness (-1 to +1) - additive offset. Keep it in the -0.2 to +0.2 range; past that you're just washing out.
  • contrast - a multiplier. 1.0 is unchanged, 1.3–1.5 gives that "punchy" look, 0.0 collapses to flat gray.
  • saturation - 0 is grayscale, 1.0 unchanged, 1.5 vivid.
  • hue_shift - rotation in degrees. ±30 moves warmth around; 180 inverts everything.
  • gamma - the power curve. <1.0 lifts shadows, >1.0 darkens mids. Your best friend for rescued shadow detail.
  • temperature - cool/blue on the negative side, warm/orange positive. The mood dial.

Run it on a frame-by-frame basis, but it processes the whole IMAGE batch - the same tensor format every ComfyUI video node uses - so you drop it mid-chain after a trim or filter and before export. It outputs clip (the graded frames), plus frame_count and info like every CutFlow clip node.

The workflow habit that saves you time

Put S42CF_QuickPreview (480p preview mode) ahead of your color chain, and you can iterate grades almost instantly before flipping to passthrough for the real render. This is where the "AI look" argument actually lands: people blame the model for flat color, but a lot of it is just VAE-decoded footage sitting at an awkward tonal range. Gamma plus a subtle temperature shift fixes more of it than re-rolling the seed, and it's deterministic and instant.

Install

Same as every node in the pack: ComfyUI Manager → search "S42 CutFlow" → Install → restart. Or clone and pip install by hand:

cd ComfyUI/custom_nodes/
git clone https://github.com/GeekyGhost/S42-CutFlow.git
pip install -r S42-CutFlow/requirements.txt

Restart fully and check the console for the [S42 CutFlow] Loaded 53 total nodes line. Color Adjust has zero GPU/model dependencies - it's pure CPU tensor math, so it runs anywhere and costs nothing in VRAM. The only dependency in the whole pack you actually need for the filter nodes is OpenCV, and the shipped requirements.txt pulls opencv-python-headless for you.

CategoryS42 CutFlow/Filters

Inputs (7)

NameTypeDefaultDescription
clipIMAGEVideo clip to color-adjust.
brightnessFLOAT0.00-1–1Brightness offset. -1 = black, 0 = no change, +1 = white. Typical range: -0.2 to +0.2.
contrastFLOAT1.000–3Contrast multiplier. 0 = flat gray, 1.0 = no change, 1.5 = punchy, 2.0+ = extreme.
saturationFLOAT1.000–3Color saturation. 0 = grayscale, 1.0 = no change, 1.5 = vivid, 2.0+ = oversaturated.
hue_shiftFLOAT0-180–180Hue rotation in degrees. 0 = no change. 30 = warm shift. -30 = cool shift. 180 = complementary.
gammaFLOAT1.000.1–3Gamma correction. <1.0 = brighten midtones (lift shadows). >1.0 = darken midtones. 1.0 = no change.
temperatureFLOAT0.00-1–1Color temperature shift. Negative = cooler/blue. Positive = warmer/orange. 0 = no change.

Outputs (3)

NameTypeDescription
clipIMAGE
frame_countINT
infoSTRING