Nodes/comfyui_sunxAI_facetools/Color Adjust (Face Parsing) New
ComfyUI Node

Color Adjust (Face Parsing) New

Color-grade the face, not the whole frame

By upseem·Created about a year ago·Updated 11 months ago· 15
Color Adjust (Face Parsing) New
  • image
  • IMAGE
contrast1.00
brightness1.00
saturation1.00
hue0.000
gamma1.00
has_face

The name is a spoiler: this is the pack's color-adjust node, and the "(Face Parsing)" suffix is what makes it interesting. It's built for the moment after an InstantID or face-restore pass when the face comes back slightly off - too dark, washed out, skin tone not matching the reference - and you want to fix the face without dragging the whole background through a color-grade with it. This is the Sunx.ai comfyui_sunxAI_facetools pack's answer to that, and the "Face Parsing" half refers to how the pack carves out the face region for the adjustment.

The controls. It's a classic five-slider color-correction stack, all on an IMAGE input:

  • contrast (0–255, default 1)
  • brightness (-255 to 255, default 1)
  • saturation (0–255, default 1)
  • hue (-0.5 to 0.5, default 0)
  • gamma (0–255, default 1)

Neutral is 1 for everything except hue, where it's 0. The node skips any slider sitting at its neutral value - that's not just an optimization, it means you can leave most of them alone and the image stays untouched. The output is a single IMAGE you can feed straight into the next step or into a SaveImage.

The gating bit. Like the other "New" nodes in this pack, it takes an optional has_face boolean. When it's False, the node returns the input image unchanged - no point color-correcting a region that doesn't exist. Wire has_face from DetectFaceByIndex and you get a pipeline that color-grades faces only when there's actually a face to grade, in batch runs where most frames are empty this saves real time.

Where it fits. In the pack's native workflow it sits between face detection/cropping and the final output: you restore or restyle a face, the face comes back at a different luminance or saturation than the rest of the frame, and this node reconciles it. Skin-tone matching to a reference is the classic use - nudge hue and saturation until the face sits naturally in the scene instead of floating on top of it.

One honest caveat. The color science here is plain torchvision adjust_* operations - brightness and contrast as straightforward multipliers, gamma as a power curve. It's fast and predictable, but it's not a photographic-grade correction tool. If you need curves, color grading in LAB, or per-channel correction, you'll want a dedicated image-processing pack. This is the quick "make the face match the room" knob, and it's good at exactly that.

Install. It ships with the pack: ComfyUI Manager → search comfyui_sunxAI_facetools, or:

cd ComfyUI/custom_nodes
git clone https://github.com/upseem/comfyui_sunxAI_facetools

then restart. Pack-wide dependencies are heavy - insightface, onnxruntime, ultralytics, mediapipe, transformers - and the face-parsing model (a Segformer, jonathandinu/face-parsing) is fetched from Hugging Face on first use, so don't panic if the first run takes a moment to download it.

When your generated face looks right but sits in the frame wrong, this is the node that fixes the sitting.

CategorysunxAI_facetools

Inputs (7)

NameTypeDefaultDescription
imageIMAGE
contrastFLOAT1.000–255
brightnessFLOAT1.00-255–255
saturationFLOAT1.000–255
hueFLOAT0.000-0.5–0.5
gammaFLOAT1.000–255
has_faceoptBOOLEAN

Outputs (1)

NameTypeDescription
IMAGEIMAGE