Face Restore
Cleaning up a face after a swap
- images
- IMAGE
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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| restoration_model | COMBO | 0 options: |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |