Color Corrector
One node that replaces your whole color-grading chain
- image
- reference_image
- mask
- image
- palette_data
- histogram
- palette_image
ComfyUI doesn't ship a color-grading toolkit. If you want proper white balance, selective saturation, lift/gamma/gain, and a palette preview, the "normal" way is to wire together half a dozen math and curve nodes and hope none of them fight each other. EasyColorCorrection - the pack's flagship, labeled just "Color Corrector" in the node list - is the author's answer to that: one node, three ways to drive it, built on actual color science instead of a pile of blend modes.
What it is and why you'd reach for it
The ComfyUI custom-node ecosystem is famous for exactly this kind of gap: something so common you'd assume there's an obvious built-in, and there isn't. That's this pack's whole pitch, and the author says as much: existing color tools were either nonexistent, or gave your image "the visual energy of wet cardboard." EasyColorCorrection collapses grading into a single node with four modes you pick per-run: Auto (AI decides what your image needs), Preset (pick one of 30 curated looks), Manual (Lightroom/DaVinci-style full control), and Colorize (turn a flat or black-and-white photo into color). You reach for it after your sampler, right before Save Image - same spot you'd put a color-correct node in any pipeline, just doing more per slot.
How it works
Under the hood it's genuine computer vision, not a tint filter. White balance runs in LAB color space with Bradford chromatic adaptation - the same math real color-grading tools use, not a hue-slider hack. Auto mode runs OpenCV face detection plus SLIC segmentation to find skin regions and protect them from your saturation and contrast pushes, and uses K-means clustering and edge-density analysis to guess whether your image is anime, concept art, a portrait, or a realistic photo - then applies a scene-specific profile (concept art gets more contrast and saturation punch than a portrait, which stays conservative on purpose to protect faces). Manual mode disables the AI layer automatically, on the theory that if you're dialing in numbers by hand you don't want the AI quietly fighting you - re-enable it if you actually want both.
The inputs and outputs that matter
Only image and mode are required - everything else is optional and scoped to whichever mode you're in. The ones worth knowing:
ai_analysisandadjust_for_skin_tone- toggle the face-detection/scene-analysis layer. On by default in Auto, off in Manual.white_balance_strength,warmth,vibrancy,contrast,brightness,tint- the sliders you'll actually touch in Manual mode. White balance runs -1.0 (cooler/blue) to +1.0 (warmer/orange), same convention as real grading software.preset- 30 named looks in Preset mode, from portrait presets (Natural, Warm, Dramatic) to cinematic (Teal & Orange, Film Noir) to stylized (Cyberpunk, Anime Bright). Sliders update live to show what the preset actually did, which is a nice bit of transparency.lift/gamma/gain- 3-way color correction for shadows/midtones/highlights, if you want to grade like an actual colorist.reference_image+reference_strength- feed it a mood-board image and it'll pull your grade toward its color palette.extract_palette- turns on the histogram and palette outputs (leave it off and those outputs are just black).
Outputs: image (your graded result, wire it to Save Image or downstream), palette_data (a comma-separated hex string other nodes can consume), histogram and palette_image (both IMAGE - connect either to a Preview Image node to actually see them).
How to install it
Via ComfyUI Manager: search "Easy Color Correction" and install - this is literally how the author tells people to do it. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/regiellis/ComfyUI-EasyColorCorrector.git
cd ComfyUI-EasyColorCorrector
pip install -r requirements.txt
then restart. The dependency list is long - opencv-python, scikit-learn, scikit-image, colour-science, scipy, torchvision, huggingface_hub, timm, plus a few RAW/EXR libraries other nodes in the pack need. The node is built to degrade gracefully: it runs without any of them, you just lose the AI face-detection and scene-analysis features and fall back to plain manual math.
Common issues & troubleshooting
Histogram and palette outputs are solid black. That's not a bug, it's extract_palette set to false - flip it on.
Old skin-tone green tint. Early builds had a bug where light skin picked up a green cast during AI processing; the author fixed it in the v1.2.1 rewrite. If you're still seeing it, you're on an old version - update.
You changed a Manual slider and nothing happened. Check mode is actually set to Manual - presets and AI analysis override those sliders in the other modes, which is by design but catches people.
It's installed but the name doesn't match what you searched. The pack was renamed from ComfyUI-EasyColorCorrection to ComfyUI-EasyColorCorrector in the same update that added the extra nodes - a genuine breaking change per the README's own warning. If you have the old-named version from before mid-2025, uninstall it first rather than running both.
Inputs (38)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| mode | COMBO | Auto | 4 options: Auto, Preset, Manual, Colorize |
| reference_imageopt | IMAGE | 🎨 Optional reference image for color matching (concept art/mood boards) | |
| reference_strengthopt | FLOAT | 0.30–1 | Strength of color matching to reference image |
| extract_paletteopt | BOOLEAN | false | 📊 Extract and display dominant color palette |
| lock_input_imageopt | BOOLEAN | false | 🔒 Lock input image to prevent upstream nodes from reprocessing when adjusting color parameters |
| ai_analysisopt | BOOLEAN | true | 🤖 Enable AI-powered face detection, scene analysis & content-aware enhancement |
| adjust_for_skin_toneopt | BOOLEAN | false | AI face detection + skin tone preservation (requires ai_analysis) |
| white_balance_strengthopt | FLOAT | 0.00-1–1 | White balance adjustment: -1.0 = cooler/blue, +1.0 = warmer/orange |
| enhancement_strengthopt | FLOAT | 0.200–2.5 | Overall strength of AI-powered enhancements |
| pop_factoropt | FLOAT | 0.700–2 | Extra pop factor for artistic content (anime, detailed photos) |
| effect_strengthopt | FLOAT | 0.600–3 | Strength of overall color correction effect |
| warmthopt | FLOAT | 0.00-2–2 | Green/Magenta warmth adjustment |
| vibrancyopt | FLOAT | 0.00-1–1 | Saturation boost for less saturated areas |
| contrastopt | FLOAT | 0.00-0.5–0.5 | Contrast adjustment for overall image |
| brightnessopt | FLOAT | 0.00-0.5–0.5 | Brightness adjustment for overall image |
| tintopt | FLOAT | 0.00-1–1 | Tint adjustment: -1.0 = green, +1.0 = magenta (Manual mode only) |
| presetopt | COMBO | 30 options: Natural Portrait, Warm Portrait, Cool Portrait, High Key Portrait, Dramatic Portrait, Epic Fantasy, +24 | |
| variationopt | FLOAT | 0.00–1 | Variation strength for preset adjustments |
| liftopt | FLOAT | 0.0-1–1 | Lift adjustment for shadows in the image |
| gammaopt | FLOAT | 0.0-1–1 | Gamma adjustment for midtones in the image |
| gainopt | FLOAT | 0.0-1–1 | Gain adjustment for highlights in the image |
| noiseopt | FLOAT | 0.00–1 | Noise reduction strength (0.0 = no noise reduction, 1.0 = maximum noise reduction) |
| skin_tone_adjustmentopt | FLOAT | 0.00-1–1 | 🧑 Adjust skin tones and flesh colors (targets warm oranges/yellows) |
| sky_adjustmentopt | FLOAT | 0.00-1–1 | 🌅 Adjust sky and blue regions (targets blues/cyans) |
| foliage_adjustmentopt | FLOAT | 0.00-1–1 | 🌿 Adjust foliage and vegetation (targets greens) |
| selective_hue_shiftopt | FLOAT | 0.00-1–1 | 🎨 Universal hue shift for targeted colors |
| selective_saturationopt | FLOAT | 0.00-1–1 | 🎨 Universal saturation adjustment for targeted colors |
| selective_strengthopt | FLOAT | 1.000–1 | 💪 Overall strength of selective color adjustments |
| colorize_strengthopt | FLOAT | 0.80–1 | 🎨 Overall colorization strength (only for photos, not art/anime) |
| skin_warmthopt | FLOAT | 0.30–1 | 🧑 Warmth applied to detected skin tones |
| sky_saturationopt | FLOAT | 0.60–1 | 🌅 Saturation boost for sky and blue regions |
| vegetation_greenopt | FLOAT | 0.50–1 | 🌿 Green enhancement for vegetation and foliage |
| sepia_toneopt | FLOAT | 0.00–1 | 🟤 Sepia tone blend for vintage photo colorization |
| colorize_modeopt | COMBO | deep_learning | 🎯 Colorization method: deep_learning (AI), classic (HSV), portrait, landscape, or vintage |
| force_colorizeopt | BOOLEAN | false | 🔄 Force colorization even for art/anime content (overrides AI detection) |
| use_gpuopt | BOOLEAN | true | 🚀 Use GPU acceleration for processing (disable to force CPU) |
| maskopt | MASK | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| palette_data | STRING | — |
| histogram | IMAGE | — |
| palette_image | IMAGE | — |