Quality and models

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.

Face enhancement settings in a local desktop face swap app

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:

SettingModelDownload sizePositioned for
OffFastest. Keeps the raw swap result with no extra repair.
Fast repairGPEN-BFR-256≈ 76 MBLightweight repair for live preview or low-end devices.
HD repairGPEN-BFR-512≈ 284 MBBetter facial detail for video and images, with a larger FPS cost.
Strong repairGFPGAN (1024)≈ 366 MBStrongest 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

SettingModel fileWorking resolutionPixel areaVs GPEN-256Download
Off
Fast repairGPEN-BFR-256.onnx256 × 25665,536 px76 MB
HD repairGPEN-BFR-512.onnx512 × 512262,144 px284 MB
Strong repairgfpgan-1024.onnx1024 × 10241,048,576 px16×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 groupFilesSize
Required to runinswapper_128.onnx + buffalo_l.zip843 MB
Optional swap variantinswapper_128_fp16.onnx278 MB
All three enhancersGPEN-256 + GPEN-512 + GFPGAN726 MB
Everything6≈ 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.

SituationStart withWhy
Portrait photo, face fills the frameHD repair (GPEN-512)Enough working resolution for a large face without the over-smoothing risk of the strongest model.
Talking-head video, 1080pHD repair (GPEN-512)Best balance of detail and per-frame cost for a face that stays medium-to-large.
Wide shot, small facesOff, or Fast repairThe swap patch is already close to the on-screen face size; enhancement mostly adds time.
Old, compressed, or low-resolution footageStrong repair (GFPGAN)The most aggressive restoration, which is what heavily degraded input needs.
Live webcam previewFast repair (GPEN-256), if availableSmallest model, lowest latency; see the runtime requirement below.
Multi-person group shotOff first, then step upEnhancement 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