GFPGAN vs GPEN: which face enhancer should you use?
Both are face restoration models that run after the swap, not swap models themselves. The right choice depends on how large the face is on screen, how degraded the footage is, and whether you are exporting a file or watching a live preview.
Short answer: GPEN-512 is the sensible default for exported images and video. GPEN-256 is the lightweight option for live preview and slower machines. GFPGAN restores the most on badly degraded or low-resolution faces, at the cost of looking smoother and less natural. Off is still correct when the face is small in frame and the footage is already clean.
1. What a face enhancer actually does here
A face swap and a face enhancer are two separate models doing two separate jobs, and confusing them is where most of the disappointment comes from.
The swap model in Deep Face Cam is INSwapper 128, which produces a face at 128×128 pixels. That patch is then warped back onto the target frame. On a wide shot where the face occupies a small part of the frame, 128 pixels is plenty. On a 1080p or 4K close-up, it is not — the swapped face is being scaled up, and it shows as softness and lost skin texture.
The enhancer's job is to restore that face region afterwards. It crops and aligns the face, runs a restoration model over it, and blends the result back into the frame with a feathered edge so the boundary is not visible. GFPGAN and GPEN are two different restoration models used for exactly that step.
What enhancement cannot fix
Enhancement runs on the face region after the swap. It cannot correct the wrong source face being mapped to the wrong person, poor alignment, or tracking that jumps between frames. On unstable footage, heavy enhancement often makes the instability more visible, because each frame is sharpened independently. Fix mapping and alignment first — see the multi-face mapping guide.
2. The four options in the app
Deep Face Cam exposes the enhancer as a single choice under Advanced options, not as a stack of toggles. You pick one:
| Setting | Model | Download size | Positioned for |
|---|---|---|---|
| Off | — | — | Fastest. Keeps the raw swap result with no extra repair. |
| Fast repair | GPEN-BFR-256 | ≈ 76 MB | Lightweight repair for live preview or low-end devices. |
| HD repair | GPEN-BFR-512 | ≈ 284 MB | Better facial detail for video and images, with a larger FPS cost. |
| Strong repair | GFPGAN (1024) | ≈ 366 MB | Strongest repair for blurry or low-resolution faces; can look smoother or less natural. |
The number in each model name is its working resolution — the size of the aligned face crop the model operates on. That is the core of the comparison. GPEN-256 restores a 256-pixel face; GPEN-512 restores a 512-pixel one and therefore has four times the pixel area to work with; the GFPGAN model shipped here targets 1024. More working resolution means more recoverable detail and more computation per face.
None of these models ship inside the source repository. They are downloaded on demand into your user model directory after confirmation, and verified against a published SHA-256 checksum before use. If you plan to work offline, download the enhancer you intend to use before disconnecting.
Model sizes, working resolution and disk footprint
| Setting | Model file | Working resolution | Pixel area | Vs GPEN-256 | Download |
|---|---|---|---|---|---|
| Off | — | — | — | — | — |
| Fast repair | GPEN-BFR-256.onnx | 256 × 256 | 65,536 px | 1× | 76 MB |
| HD repair | GPEN-BFR-512.onnx | 512 × 512 | 262,144 px | 4× | 284 MB |
| Strong repair | gfpgan-1024.onnx | 1024 × 1024 | 1,048,576 px | 16× | 366 MB |
For scale: the swap model outputs a 128 × 128 face, which is 16,384 pixels. HD repair therefore rebuilds that face at 16× the pixel area, and Strong repair at 64×. This is the whole reason enhancement matters more on close-ups than on wide shots.
| Download group | Files | Size |
|---|---|---|
| Required to run | inswapper_128.onnx + buffalo_l.zip | 843 MB |
| Optional swap variant | inswapper_128_fp16.onnx | 278 MB |
| All three enhancers | GPEN-256 + GPEN-512 + GFPGAN | 726 MB |
| Everything | 6 | ≈ 1.85 GB |
Sizes are the values published in the model manifest; each file is checksum-verified after download and stored in your user model directory. On Apple silicon, generated CoreML cache files are written in addition to these.
3. How to choose, by situation
The useful question is not “which model is best” but “how many pixels does the face occupy, and how bad is the source footage.” Those two answers pick the model for you.
| Situation | Start with | Why |
|---|---|---|
| Portrait photo, face fills the frame | HD repair (GPEN-512) | Enough working resolution for a large face without the over-smoothing risk of the strongest model. |
| Talking-head video, 1080p | HD repair (GPEN-512) | Best balance of detail and per-frame cost for a face that stays medium-to-large. |
| Wide shot, small faces | Off, or Fast repair | The swap patch is already close to the on-screen face size; enhancement mostly adds time. |
| Old, compressed, or low-resolution footage | Strong repair (GFPGAN) | The most aggressive restoration, which is what heavily degraded input needs. |
| Live webcam preview | Fast repair (GPEN-256), if available | Smallest model, lowest latency; see the runtime requirement below. |
| Multi-person group shot | Off first, then step up | Enhancement runs per face, so cost multiplies with the number of faces. |
4. The trade-offs nobody puts on the settings screen
Detail recovery versus identity
Restoration models reconstruct plausible facial detail. The stronger the restoration, the more the output is influenced by what the model considers a face should look like. On a heavily degraded input that is exactly what you want. On an already-decent face it can quietly shift skin texture, pore detail, and micro-expression — the result looks cleaner and slightly less like the person. Strong repair carries this risk most.
Over-smoothing
The most common complaint about aggressive face restoration is a waxy, airbrushed look: skin texture gone, stubble smoothed away, wrinkles flattened. If your output looks "too clean" next to the untouched surroundings, step down a model rather than trying to compensate with sharpening.
The face-versus-background mismatch
Enhancement is applied to the face region only. On low-quality footage a strongly restored face sitting in a grainy, compressed scene reads as fake even when the face itself looks good in isolation. Judge the whole frame, never a cropped face.
Temporal consistency
In video, each frame is enhanced on its own. Small per-frame differences can appear as shimmer on skin or flicker at the face boundary — most visible in exactly the frames that were already hard: motion blur, lighting changes, profile turns. If enhancement makes flicker worse, the problem to fix is upstream.
Cost per face, not per frame
Enhancement runs once per detected face. Four faces in a frame means four enhancement passes on top of four swaps. This is the single biggest reason multi-person renders take much longer than expected.
5. Live preview has a hard runtime requirement
This is the practical detail that surprises people most. In Deep Face Cam, live face repair is enabled when the runtime is using CUDA or DirectML. When the app is running on another execution provider, the live pipeline runs the face swapper only, and the app says so in the options panel.
Image and video generation are not affected — you can still use any enhancer for exports on those runtimes. It is specifically the live camera path that drops the enhancement stage. If live-preview quality is your priority, that requirement should shape which build you install. The real-time face swap guide covers provider selection.
The provider preference order in the backend is CUDA, then ROCm, then CoreML, then DirectML, then CPU. On Apple silicon the app uses ONNX Runtime's CoreML provider, which is a good path for exports but does not meet the live-enhancer condition above.
6. How to test this yourself in ten minutes
Model comparisons are only meaningful on your footage and your hardware. A repeatable test is short:
- Pick one clip with a close-up, one with a wide shot, and one with visibly poor quality.
- Export each one four times — Off, Fast, HD, Strong — changing nothing else.
- Compare at 100% zoom on the full frame, not on a cropped face.
- Record wall-clock render time for each pass, plus your machine and execution provider.
- For live, enable Show FPS and note the frame rate with the enhancer off and on.
- Look specifically for over-smoothing, boundary flicker, and face-to-background mismatch.
Keep that table with your project notes. It is worth far more than any generic benchmark, because enhancement cost depends on your provider, your resolution, and how many faces are in frame.
FAQ
Is GFPGAN better than GPEN?
Neither is universally better. GFPGAN is the strongest restoration and the right pick for badly degraded or low-resolution faces, but it is the most likely to look smoothed. GPEN-512 is the balanced default for images and video. GPEN-256 is the lightweight option where speed matters more than detail.
Do I need a face enhancer at all?
Not always. The swap produces a 128-pixel face patch, so enhancement matters most when the face is large on screen or the source is degraded. On small faces in clean footage, "Off" is often the more natural result and is always the fastest.
Can enhancement fix a bad face swap?
No. It cannot correct identity mapping, alignment, or unstable tracking, and it can make instability more visible. Fix those first, then decide on enhancement.
Why did my render get much slower after enabling the enhancer?
Because enhancement runs per detected face and adds a full restoration pass on top of each swap. On group footage the cost multiplies with the number of faces in frame.
Where are the enhancement models stored?
In your user model directory, downloaded after explicit confirmation and checksum-verified. They are not committed to the source repository, which is why the first run of a new enhancer needs a network connection.
Can I use two enhancers at once?
The app presents enhancement as a single choice, so you select one model rather than stacking them. Running multiple restoration passes over the same face would compound both the cost and the smoothing.
Pick the enhancer from the footage, not from the model name
Test Off, Fast, HD, and Strong on your own clip, compare full frames rather than cropped faces, and keep the render times next to the results.
Related guides and references
- How to face swap a video locally on PC or Mac
- How to swap multiple faces in a video locally — per-face enhancement cost
- Real-time face swap on a local PC — execution providers and live limits
- How to face swap a GIF locally without uploading it — why heavy enhancement hurts a 256-colour GIF
- Local face swap software for PC and Mac
- InsightFace project — face detection and analysis models
- Deep Face Cam source repository
- Deep Face Cam privacy notes