背景区域增强:Real-ESRGAN vs CodeFormer 自己的 --bg_upsampler
Real-ESRGAN 是什么
Real-ESRGAN 是腾讯 ARC Lab 开源的通用图像超分辨率模型,不是专门做人脸的——它擅长任何图像的 2-4 倍放大增强:
- 风景照片
- 建筑内部
- 衣物纹理
- 人物背景
- 甚至文字(虽然 CodeFormer 不推荐修文字)
CodeFormer 怎么用 Real-ESRGAN
# CodeFormer 只修人脸
python inference_codeformer.py -w 0.7 photo.jpg
# 结果:人脸清晰、背景还是原来的低分辨率
# CodeFormer + Real-ESRGAN 背景增强
python inference_codeformer.py -w 0.7 --bg_upsampler realesrgan photo.jpg
# 结果:人脸 + 背景都清晰
CodeFormer 在内部会:
- 用 Real-ESRGAN 放大整张图(人脸 + 背景都增强)
- 用 CodeFormer 单独修复人脸
- 把 CodeFormer 修复的人脸覆盖到 Real-ESRGAN 放大的脸上
- 边界处 back projection 融合
Real-ESRGAN 单独使用 vs CodeFormer + Real-ESRGAN 组合
| 维度 | Real-ESRGAN 单独 | CodeFormer + Real-ESRGAN |
|---|---|---|
| 人脸修复 | ⚠️ Real-ESRGAN 是通用模型,对人脸的修复不如 CodeFormer | ✅ CodeFormer 专门修人脸,效果更好 |
| 背景增强 | ✅ | ✅ 同样好 |
| 融合自然度 | — | ✅ back projection 边界平滑 |
| 身份保持 | ⚠️ 通用模型可能改人脸特征 | ✅ CodeFormer w 权重可调身份 |
| 速度 | 快(只有一次推理) | 慢(两次推理 + 融合) |
| 显存 | 低 | 高 |
什么时候只用 Real-ESRGAN
| 场景 | 推荐 |
|---|---|
| 风景照片 | Real-ESRGAN 单独(没人脸) |
| 人物背景占比 > 90% | Real-ESRGAN 单独(人脸不重要) |
| 照片里人脸很小(远景) | Real-ESRGAN 单独 |
| 只需拉高分辨率,不特别关心人脸 | Real-ESRGAN 单独 |
| 显存紧张(< 12GB) | Real-ESRGAN 单独 |
什么时候用 CodeFormer + Real-ESRGAN
| 场景 | 推荐 |
|---|---|
| 人像特写(人脸占主要位置) | CodeFormer + Real-ESRGAN |
| 老照片修复 | CodeFormer + Real-ESRGAN |
| AI 生图后处理 | CodeFormer w=0.3 + Real-ESRGAN |
| 修复后要打印 | CodeFormer + Real-ESRGAN |
和 Real-ESRGAN 其他变体对比
Real-ESRGAN 有多个预训练权重:
| 权重 | 特点 | 适合 |
|---|---|---|
| RealESRGAN_x4plus | 通用 4x 放大 | 大多数场景 |
| RealESRGAN_x2plus | 通用 2x 放大 | 只需要小幅度拉高 |
| realesrgan_x4plus_anime | 动漫风格 | 二次元图片 |
| RealESRGANv2-animevideo | 视频专用 | 逐帧风格化增强 |
CodeFormer 默认用 RealESRGAN_x4plus。如果你的输入是动漫/二次元风格,可以手动换 anime 权重放到 weights/realesrgan/。
显存和时间对比
| 方案 | 显存 | 单张时间(RTX 3060) |
|---|---|---|
| Real-ESRGAN 单独 4x | 4GB | 0.4s |
| CodeFormer 单独 | 6GB | 0.8s |
| CodeFormer + Real-ESRGAN 背景 | 12GB | 1.4s |
| CodeFormer + Real-ESRGAN + face_upsample | 14GB | 1.7s |
一句话总结
Real-ESRGAN 是背景专家,CodeFormer 是人脸专家。人像处理两者配合、风景处理只用 Real-ESRGAN。 不要指望 Real-ESRGAN 修好模糊的人脸——它不是为那个设计的。