Nodes/ComfyUI GOAT Nodes/🐐 Advanced Color Correction
ComfyUI Node

🐐 Advanced Color Correction

An auto-grade node with the individual knobs still exposed

By AconexOfficialΒ·Created 2 years agoΒ·Updated 12 months agoΒ· 11
🐐 Advanced Color Correction
  • image
  • IMAGE
β—„brightness_modeautoβ–Ί
β—„color_stylenaturalβ–Ί
β—„overall_strength1.00β–Ί
β—„strength_white_balance0.60β–Ί
β—„strength_stat_transfer0.20β–Ί
β—„strength_selective_hue0.20β–Ί
β—„strength_clahe0.20β–Ί
β—„gamut_clippingtrueβ–Ί
β—„debug_printsDisabledβ–Ί
β—„deviceautoβ–Ί

Quick heads-up before anything else: this node doesn't have a description in the pack's own README yet - it's newer than the last documented changelog entry (which stops at Image Crop/Image Stitch). So everything below comes straight from the node's own inputs, which is honestly enough to tell you exactly what it does.

Advanced Color Correction is a one-node auto-grade: point it at an image and it runs a stack of standard color-correction techniques - white balance, statistical color matching, local contrast, selective hue work - with each one individually dialed by its own strength slider, plus a couple of high-level presets on top so you're not always tuning five sliders from scratch. It's the same general niche WAS Node Suite has occupied for years with its color-correction utilities, just built as one combined node instead of several you'd chain together.

How it works

Four correction stages run under the hood, each with its own strength control so you can lean on some and disable others:

  • White balance (strength_white_balance) - neutralizes a color cast, the classic "this image looks too warm/too blue" fix.
  • Statistical transfer (strength_stat_transfer) - nudges the image's overall color statistics (mean/variance per channel, roughly) toward a natural target, which is the same family of technique color-matching tools use to make two images "feel" like they were shot under the same light.
  • Selective hue (strength_selective_hue) - targeted hue adjustments rather than a blanket shift across the whole image.
  • CLAHE (strength_clahe) - Contrast Limited Adaptive Histogram Equalization, a well-established local-contrast technique that boosts contrast within small regions of the image independently rather than applying one global curve, which is why it's good at pulling detail out of both shadows and highlights in the same frame without blowing either out.

brightness_mode and color_style sit above all four as presets: brightness_mode (auto/original/dark/normal/bright) picks a target exposure level, while color_style (natural/vibrant/cinematic/enhanced_naturalism/black_white_tonal) picks an overall grading direction - black_white_tonal being the odd one out, presumably desaturating toward a tonal black-and-white look rather than correcting color at all. overall_strength is the master dial on top of everything; gamut_clipping keeps the result within a displayable color range so aggressive correction doesn't push values out of bounds into colors your screen (or a later save-to-JPEG step) can't actually represent.

Inputs and outputs that matter

  • image - required, obviously.
  • brightness_mode (default auto) and color_style (default natural) - the two preset dials; start here before touching individual strengths.
  • overall_strength (0–1, default 1) - master intensity.
  • strength_white_balance (default 0.6), strength_stat_transfer (default 0.2), strength_selective_hue (default 0.2), strength_clahe (default 0.2) - the four sub-techniques, each independently dialable; note white balance runs at a much higher default weight than the other three, suggesting it's meant to do most of the heavy lifting by default.
  • gamut_clipping (default on) - leave this on unless you have a specific reason not to; it's a safety net, not a stylistic choice.
  • debug_prints (Disabled/Enabled) - turn on if you want console output about what the node's doing internally, useful if a correction looks off and you're trying to figure out which stage caused it.

One output: IMAGE.

How to install it

ComfyUI Manager: search "GOAT Nodes", install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/AconexOfficial/ComfyUI_GOAT_Nodes.git

then restart. A device input (auto/cuda/cpu) is exposed, so force cpu if you're not on an Nvidia card and auto picks wrong.

Common issues & troubleshooting

Result looks over-processed. With four correction stages stacking on top of each other plus a style preset, it's easy to end up with more correction than you meant. Bring overall_strength down first before fighting individual sliders - it's the single dial that scales everything else.

black_white_tonal combined with the hue/white-balance strengths doing something odd. Since that style is presumably desaturating, running high strength_selective_hue alongside it is fighting itself - set the color-specific strengths low when you're going for a tonal B&W look.

No description in the README yet. Worth restating: this is a newer addition than the pack's last documented release, so if something here doesn't match behavior you see in practice, the info_schema (what's above) is more current than the README's own node list.

Category🐐 GOAT Nodes/Postprocessing

Inputs (11)

NameTypeDefaultDescription
imageIMAGEβ€”
brightness_modeCOMBOauto5 options: auto, original, dark, normal, bright
color_styleCOMBOnatural5 options: natural, vibrant, cinematic, enhanced_naturalism, black_white_tonal
overall_strengthFLOAT1.000–1β€”
strength_white_balanceFLOAT0.600–1β€”
strength_stat_transferFLOAT0.200–1β€”
strength_selective_hueFLOAT0.200–1β€”
strength_claheFLOAT0.200–1β€”
gamut_clippingBOOLEANtrueβ€”
debug_printsCOMBODisabled2 options: Disabled, Enabled
deviceCOMBOauto3 options: auto, cuda, cpu

Outputs (1)

NameTypeDescription
IMAGEIMAGEβ€”