ComfyUI Node

Face Restore

Cleaning up a face after a swap

By jeffy5·Created 2 years ago·Updated 4 months ago· 61
Face Restore
  • images
  • IMAGE
restoration_model

This is the node you run after a face swap, not instead of one. Face swap tools built on the common inswapper engine (this pack included, per its own README) produce results capped at a low internal resolution no matter how big your source image is, so the swapped face comes out a little soft. Restore is the cleanup pass - it sharpens the face back up before you call the result finished.

What's actually running

Per the README's default model list, the model here is gfpgan_1.4.onnx - GFPGAN, the same face-restoration GAN that powered the old "restore faces" checkbox in tools like A1111 (and which, worth knowing, conflicts with ADetailer if you're also running that in a wider Stable Diffusion pipeline - the two fight over the same job). It works by cropping each detected face, running a generative pass that hallucinates plausible high-frequency detail - skin texture, sharper eyes and eyelashes - constrained by what was actually there, then blending the result back into the frame.

That word generative matters. GFPGAN isn't a sharpen filter reading pixels back into focus; it's inventing detail that's statistically plausible. On a real photo, that mostly reads as "cleaner." On a stylized or illustrated face, or one that already had painterly texture, it can go the other way - flattening the character of the original into that recognizable smooth, slightly waxy "AI-restored" look. It's a real, reported complaint about this exact model, not a rare edge case: run a before/after comparison rather than trusting it blind, especially on anything that wasn't a real photo to begin with.

Inputs and outputs

  • images - the face(s) you want restored. Usually the direct output of a Face Swap node.
  • restoration_model - a dropdown, sourced from whatever restoration model files you've placed on disk.

Output is a single IMAGE.

Installing it

Manager: search Faceless Node for ComfyUI. By hand:

cd ComfyUI/custom_nodes
git clone https://github.com/jeffy5/comfyui-faceless-node
pip install -r requirements.txt

Models for this node live under ComfyUI/models/faceless/face_restoration/ - not ComfyUI's regular model directories. Use the bundled download_models.py script (python download_models.py for the defaults, which includes GFPGAN, or --all for every model the pack supports) and restart ComfyUI so the dropdown sees the new files.

Where people get burned

Empty restoration_model dropdown. Same story as every enum in this pack - it reads from disk at startup, so download the model and restart before it'll show up.

Over-smoothed faces. If a restored face looks waxy or has lost its original character, that's GFPGAN doing what it does at full strength, not a bug. There's no strength or blend slider exposed on this node to back it off - your options are to skip restoration on inputs that were already clean, or accept the trade for a soft-but-more-detailed face.

Chaining order. This node makes the most sense right after a Face Swap node, not as a general-purpose "fix any face" step - that's the pipeline the pack's own example workflow (image_face_swap_and_restore.json) demonstrates, and it's the use case the model's actually solving here.

Categoryfaceless

Inputs (2)

NameTypeDefaultDescription
imagesIMAGE
restoration_modelCOMBO0 options:

Outputs (1)

NameTypeDescription
IMAGEIMAGE