GFPGAN 与 GPEN:换脸后该用哪种画质增强?
两者都是在换脸之后运行的人脸修复模型,而不是换脸模型本身。怎么选取决于脸在画面里有多大、素材劣化到什么程度,以及你是在导出文件还是在看实时预览。

结论: 导出图片和视频时,GPEN-512 是合理的默认值。实时预览和性能一般的机器用轻量的 GPEN-256。GFPGAN 对严重劣化、低分辨率的人脸修复力最强,代价是更容易显得平滑、不自然。当脸在画面里很小、素材本身又干净时,关闭增强仍然是正确选择。
换脸和画质增强是两个模型在做两件不同的事,混淆这一点正是大多数失望的来源。
增强修不好的东西
增强是在换脸之后作用于人脸区域的。它修不好源脸被指派到错误的人、对齐偏移,或者逐帧跳变的跟踪。在不稳定的素材上,强增强往往让抖动更明显,因为每一帧都被单独锐化。请先解决映射和对齐,见多人换脸指南。
1. 增强模型在这里到底做了什么
Deep Face Cam 的换脸模型是 INSwapper 128,输出的是 128×128 像素的人脸,然后再变形贴回目标帧。在人脸占比很小的远景里,128 像素绰绰有余;在 1080p 或 4K 的特写里就不够了——换出来的脸正在被放大,表现为皮肤纹理丢失、发糊。
增强的职责是在这之后修复那块人脸区域:裁出并对齐人脸,跑一遍修复模型,再用羽化边缘把结果融合回画面,让接缝看不出来。GFPGAN 和 GPEN 就是用于这一步的两种不同修复模型。
2. 应用里的四个选项
Deep Face Cam 把增强做成 Advanced options 里的单选,而不是一堆可以叠加的开关。你只能选其中一个:
| 设置 | 模型 | 下载体积 | 定位 |
|---|---|---|---|
| Off | — | — | 最快。保留原始换脸结果,不做额外修复。 |
| Fast repair | GPEN-BFR-256 | 约 76 MB | 轻量修复,适合实时预览或低配设备。 |
| HD repair | GPEN-BFR-512 | 约 284 MB | 视频和图片的人脸细节更好,FPS 代价更大。 |
| Strong repair | GFPGAN(1024) | 约 366 MB | 对模糊或低分辨率人脸修复力最强,但可能更平滑、更不自然。 |
模型名里的数字是它的工作分辨率,也就是模型处理的对齐人脸裁片尺寸,这正是对比的核心。GPEN-256 修复 256 像素的脸;GPEN-512 的像素面积是它的四倍;这里搭载的 GFPGAN 模型面向 1024。工作分辨率越高,可恢复的细节越多,单张人脸的计算量也越大。
这些模型都不随源码仓库分发。它们在你确认后按需下载到用户模型目录,并在使用前对照公开的 SHA-256 校验值验证。如果打算离线工作,请先把要用的增强模型下载好。
模型体积、工作分辨率与磁盘占用
| 设置 | 模型文件 | 工作分辨率 | 像素面积 | 相对 GPEN-256 | 下载体积 |
|---|---|---|---|---|---|
| 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 |
作为参照:换脸模型输出的是 128 × 128 的人脸,也就是 16,384 像素。因此 HD repair 是在 16 倍像素面积上重建这张脸,Strong repair 则是 64 倍。这也正是增强对特写比对远景更重要的根本原因。
| 下载组合 | 文件 | 体积 |
|---|---|---|
| 运行必需 | inswapper_128.onnx + buffalo_l.zip | 843 MB |
| 可选换脸变体 | inswapper_128_fp16.onnx | 278 MB |
| 三个增强模型全部 | GPEN-256 + GPEN-512 + GFPGAN | 726 MB |
| 全部文件 | 6 | ≈ 1.85 GB |
体积取自模型清单中公布的数值;每个文件下载后都会校验和验证,并保存在用户模型目录中。在 Apple 芯片上还会额外生成 CoreML 缓存文件。
3. 按场景选择
有用的问题不是“哪个模型最好”,而是“脸占了多少像素、原始素材有多差”。这两个答案会替你把模型选出来。
| 场景 | 先试 | 原因 |
|---|---|---|
| 人像照片,脸占满画面 | HD repair(GPEN-512) | 工作分辨率足够处理大脸,又不像最强模型那样容易过度平滑。 |
| 1080p 口播视频 | HD repair(GPEN-512) | 细节与单帧开销之间最平衡。 |
| 远景,人脸很小 | 关闭或 Fast repair | 换脸裁片尺寸已经接近屏幕上的人脸大小,增强主要只是增加耗时。 |
| 老素材、压缩严重或低分辨率 | Strong repair(GFPGAN) | 最激进的修复,正是严重劣化输入需要的。 |
| 实时摄像头预览 | Fast repair(GPEN-256,若可用) | 模型最小、延迟最低;注意下文的运行环境要求。 |
| 多人合影镜头 | 先关闭,再逐级往上试 | 增强按人脸执行,开销会随人数成倍增加。 |
4. 设置界面上没写的取舍
细节与本人特征。修复模型重建的是“看起来合理”的人脸细节。修复越强,模型对“脸应该长什么样”的先验影响就越大。对严重劣化的输入,这正是你要的;对本来还不错的脸,它会悄悄改变皮肤纹理和微表情——结果更干净,也更不像本人。Strong repair 在这一点上风险最高。
过度平滑。对激进修复最常见的抱怨是蜡像感:皮肤纹理消失、胡茬被抹平、皱纹被熨平。如果成片里的脸相对周围显得“太干净”,请降一档模型,而不是靠锐化去补救。
脸与背景不匹配。增强只作用于人脸区域。在低质量素材里,一张被强修复的脸放在噪点明显的画面中,即使单看脸不错,整体也会显得假。请以整帧为准,不要只看裁下来的脸。
时间一致性。视频里每一帧都是单独增强的。帧间的细小差异会表现为皮肤闪烁或人脸边缘抖动,而且最容易出现在本来就难处理的帧上:运动模糊、光线变化、侧脸。
开销按人脸算,不按帧算。增强对每一张检测到的脸各执行一次。一帧里四个人,就是四次换脸之外再加四次增强。这是多人渲染远比预期慢的最大原因。
5. 实时预览有一条硬性运行环境要求
这是最容易让人意外的实际细节。在 Deep Face Cam 中,实时人脸修复只有在运行环境使用 CUDA 或 DirectML 时才会启用。当应用运行在其他 execution provider 上时,实时链路只跑换脸,应用会在选项面板中说明这一点。
图片和视频生成不受影响——在这些运行环境下导出依然可以使用任意增强模型。被去掉增强环节的只是实时摄像头这条路径。如果实时画质是你的首要目标,这条要求应当直接影响你安装哪个版本。见本地实时换脸指南。
后端的 provider 优先顺序是 CUDA、ROCm、CoreML、DirectML、CPU。在 Apple 芯片上应用使用 ONNX Runtime 的 CoreML provider,导出表现不错,但不满足上面的实时增强条件。
6. 十分钟自测方法
模型对比只有放在你自己的素材和硬件上才有意义。可复现的测试很短:
- 各取一段特写、一段远景,以及一段画质明显较差的素材。
- 在其他设置完全不变的前提下,每段导出四次:Off、Fast、HD、Strong。
- 以 100% 比例对比整帧,而不是裁出来的人脸。
- 记录每一次的实际渲染耗时,以及机器配置和 execution provider。
- 实时场景请开启 Show FPS,记录增强开与关时的帧率。
- 重点看:过度平滑、边缘闪烁、脸与背景的质感差异。
把这张表和项目笔记放在一起。它比任何通用跑分都有价值,因为增强开销取决于你的 provider、分辨率和画面里的人脸数量。
常见问题
GFPGAN 比 GPEN 更好吗?
没有绝对更好的一方。GFPGAN 修复力最强,适合严重劣化或低分辨率的人脸,但也最容易显得平滑。GPEN-512 是图片和视频的平衡默认值。GPEN-256 是速度优先时的轻量选择。
一定要开增强吗?
不一定。换脸输出的是 128 像素的人脸裁片,所以增强主要在人脸占画面较大或源素材较差时才明显有用。素材干净且人脸较小的情况下,关闭增强通常更自然,而且一定最快。
增强能修复失败的换脸吗?
不能。它修不了身份映射、对齐和不稳定的跟踪,还可能让抖动更明显。请先解决这些问题。
开了增强之后渲染为什么慢很多?
因为增强按检测到的每张脸执行,在每次换脸之上再加一整轮修复。多人素材下开销会成倍增加。
增强模型存放在哪里?
在用户模型目录中,经过明确确认后下载并做校验和验证。它们不随仓库分发,所以首次使用某个增强模型时需要联网。