ComfyUI Node

Enhance Faces (Advanced)

ComfyUI Node Guide

By cdb-boop·Created 2 years ago·Updated 2 years ago· 510
Enhance Faces (Advanced)
  • face_enhance_model
  • face_count
  • cropped_faces
  • face_parts
  • part_skin
  • part_hair
  • part_l_brow
  • part_r_brow
  • part_l_eye
  • part_r_eye
  • part_eye_g
  • part_l_ear
  • part_r_ear
  • part_ear_r
  • part_nose
  • part_mouth
  • part_u_lip
  • part_l_lip
  • part_neck
  • part_neck_l
  • part_cloth
  • part_hat
  • face_count
  • enhanced_cropped_faces

This is the "I want to control every inch of the face" version of face enhancement in the Bringing Old Photos Back to Life pack. The plain Enhance Faces node takes one crop and runs it through the enhancement GAN. This one is the same underlying model, but it opens up close to twenty optional inputs, one per facial region - skin, hair, both eyebrows, both eyes, eyeglasses, both ears, an earring slot, nose, mouth, both lips, neck, a second neck slot, clothing, hat. It's the node behind the "Face Enhancement (Advanced)" workflow screenshot in the README, and it exists because the original Microsoft model was trained with face-parsing supervision - it already understands "this pixel region is an eyebrow, this one is a lip" internally, and this node is what lets you feed those regions in explicitly rather than relying entirely on the model's own internal parsing.

Practically: if you already have a face-parsing node upstream producing segmented crops per region, you can route them into the matching slots here for more deliberate control over what gets touched. If you don't have anything producing those segments, wiring this node buys you nothing over the simpler Enhance Faces - leave the optional inputs disconnected and it behaves identically, just with more empty sockets sitting on the canvas.

Required inputs are the same three as the plain version: face_enhance_model (from Load Face Enhancer Model), face_count, and cropped_faces - both of the latter coming straight from Detect Faces. Optional is where it diverges: face_parts plus the full list of named region inputs (part_skin, part_hair, part_l_brow, part_r_brow, part_l_eye, part_r_eye, part_eye_g, part_l_ear, part_r_ear, part_ear_r, part_nose, part_mouth, part_u_lip, part_l_lip, part_neck, part_neck_l, part_cloth, part_hat), all typed IMAGE. Outputs are face_count (passthrough) and enhanced_cropped_faces, which feed into Blend Faces the same way the plain node's output does.

For a first attempt, honestly, skip the advanced inputs entirely. Wire the three required sockets and run it - that's the exact behavior of the plain Enhance Faces node, and for a typical restored family photo it's plenty. Reach for the per-part inputs specifically when the default result is doing something wrong to one region - say, garbling an earring or over-smoothing a mustache - and you have (or can build) a way to isolate that region and hand it in separately.

Install is identical to the rest of the face-enhancement chain: the face_enhance_model this node depends on comes from Load Face Enhancer Model, which needs face_checkpoints.zip extracted into models/checkpoints/. See that node's page for the full download breakdown rather than repeating it here - there's nothing extra to install specifically for the advanced variant, it's the same checkpoint doing more granular work.

Troubleshooting mostly inherits from upstream. If cropped_faces came back empty because Detect Faces found nothing, this node has nothing to enhance - the README documents that face-detection nodes in this pack silently return the original image when no face is found, so check that before assuming the enhancer is broken. If output faces look off regardless of how many part inputs you wire, the more common culprit is a mismatch between the model_face_size set on Load Face Enhancer Model and the crop resolution coming out of Detect Faces - those two need to agree. And as with every image-processing node in this pack, feed it dimensions that aren't multiples of 8 or 16 pixels and you risk a crash rather than a graceful resize; pad or round beforehand if you're not sure.

Categorybringing old photos back to life/image

Inputs (22)

NameTypeDefaultDescription
face_enhance_modelFACE_ENHANCE_MODEL
face_countFACE_COUNT
cropped_facesIMAGE
face_partsoptIMAGE,
part_skinoptIMAGE,
part_hairoptIMAGE,
part_l_browoptIMAGE,
part_r_browoptIMAGE,
part_l_eyeoptIMAGE,
part_r_eyeoptIMAGE,
part_eye_goptIMAGE,
part_l_earoptIMAGE,
part_r_earoptIMAGE,
part_ear_roptIMAGE,
part_noseoptIMAGE,
part_mouthoptIMAGE,
part_u_lipoptIMAGE,
part_l_lipoptIMAGE,
part_neckoptIMAGE,
part_neck_loptIMAGE,
part_clothoptIMAGE,
part_hatoptIMAGE,

Outputs (2)

NameTypeDescription
face_countFACE_COUNT
enhanced_cropped_facesIMAGE