Nodes/comfyui_face_parsing/FaceParsingResultsParser(FaceParsing)
ComfyUI Node

FaceParsingResultsParser(FaceParsing)

Turn the segmentation into the exact mask you want

By Ryuukeisyou·Created 3 years ago·Updated about a year ago· 193
FaceParsingResultsParser(FaceParsing)
  • result
  • MASK
backgroundfalse
skintrue
nosetrue
eye_gtrue
r_eyetrue
l_eyetrue
r_browtrue
l_browtrue
r_eartrue
l_eartrue
mouthtrue
u_liptrue
l_liptrue
hairtrue
hattrue
ear_rtrue
neck_ltrue
necktrue
clothtrue

FaceParse gives you a full segmentation of every part of a face in one pass, but most of the time you don't want all of that as a mask - you want skin, or skin plus lips, or everything except hair. This node is the checkbox panel that turns FaceParse's raw result into the one MASK you actually need, and it's the reason FaceParse and this node are two separate steps instead of one: run the expensive segmentation once, then build as many different masks from it as your workflow needs, each with a different checklist.

How it works

Every region the underlying face-parsing model can label gets its own boolean toggle here. Check a box, that region is included in the output mask; uncheck it, it's excluded. There's no threshold or blend to tune - it's a straight include/exclude per label, and the node ORs together every checked region into one combined mask.

The inputs that matter

One required input, result (FACE_PARSING_RESULT), from FaceParse - that's the segmentation data being filtered.

Then a full set of boolean toggles, one per labeled region, each defaulting to true except background which defaults to false:

  • background - off by default, since you're usually building a mask of the face, not the space around it.
  • skin, nose, mouth, u_lip (upper lip), l_lip (lower lip) - the core "face surface" set. This combination is the one you want for skin-smoothing or retouching passes, since it covers the face without eating into hair, eyes, or clothing.
  • r_eye, l_eye, r_brow, l_brow - right/left eye and eyebrow. Uncheck these if you're smoothing skin and don't want to touch the eye area.
  • r_ear, l_ear, ear_r - right/left ear plus earring.
  • hair, hat - separate toggles, useful if you want a mask that follows the hairline without grabbing a hat, or vice versa.
  • eye_g - eyeglasses, as a distinct region from the eyes themselves.
  • neck, neck_l, cloth - neck, necklace, and clothing/collar, for masks that need to extend below the jawline.

All 19 default to on except background, so out of the box you get everything-but-background - a full-face-plus-everything-around-it mask. For a targeted use like skin retouching, you'll want to uncheck most of these down to just skin (and maybe nose, u_lip, l_lip if you want mouth texture included too).

The output is a single MASK, ready to plug into any standard masking node - a masked inpaint, a composite, a blur, whatever your downstream step is.

Installing it

Bundled with the whole pack:

  • ComfyUI Manager - search "comfyui_face_parsing", install, restart.
  • Manual - cd ComfyUI/custom_nodes && git clone https://github.com/Ryuukeisyou/comfyui_face_parsing.git, restart ComfyUI.

No extra dependencies beyond what FaceParse already needs upstream.

Common issues

The mask coming out empty or oddly shaped almost always traces back to two unchecked boxes you forgot about, not this node being broken - with 19 toggles, it's easy to leave something on (or off) that you meant the opposite for. If a mask looks like it's missing the mouth area, check that u_lip and l_lip are both on - lips are split into upper and lower rather than one combined toggle, which catches people who only flip mouth. And if you're chaining this into a skin-smoothing workflow (a common use for this pack), remember mouth here refers to the inner mouth region, not the lips - you likely want it off while u_lip/l_lip stay on, so the smoothing pass doesn't blur teeth.

Categoryface_parsing

Inputs (20)

NameTypeDefaultDescription
resultFACE_PARSING_RESULT
backgroundBOOLEANfalse
skinBOOLEANtrue
noseBOOLEANtrue
eye_gBOOLEANtrue
r_eyeBOOLEANtrue
l_eyeBOOLEANtrue
r_browBOOLEANtrue
l_browBOOLEANtrue
r_earBOOLEANtrue
l_earBOOLEANtrue
mouthBOOLEANtrue
u_lipBOOLEANtrue
l_lipBOOLEANtrue
hairBOOLEANtrue
hatBOOLEANtrue
ear_rBOOLEANtrue
neck_lBOOLEANtrue
neckBOOLEANtrue
clothBOOLEANtrue

Outputs (1)

NameTypeDescription
MASKMASK