老照片场景推荐 w 值:家人长辈别修成网红脸
老照片的典型退化
| 退化类型 | 描述 | CodeFormer 如何处理 |
|---|---|---|
| 扫描模糊 | 纸质老照片扫描时的采样丢失 | Codebook 重建补足细节 |
| 划痕 | 物理划痕 / 扫描噪点 | inpainting 脚本单独修 |
| 褪色 / 偏色 | 年代久的发黄、偏红 | colorization 脚本上色 |
| JPEG 压缩伪影 | 反复复制粘贴后的块状 artifact | Codebook 重建 + w 平衡 |
| 对比度低 | 老相纸色调发灰 | CodeFormer 默认增强对比度 |
老照片几乎总是混合退化——扫描模糊 + 褪色 + 压缩伪影 + 可能的划痕。
核心原则:身份优先
老照片修复最容易踩的坑就是把家人长辈修成网红脸——皮肤磨得过于光滑、眼睛变得过于对称、皱纹全部抹掉。这不是"修复",这是"换脸"。
所以老照片场景的 w 值不能太小:
父母长辈的照片 → w = 0.6 ~ 0.8
python inference_codeformer.py -w 0.7 \
--bg_upsampler realesrgan --face_upsample \
--input_path my_mom_1985.jpg
为什么 w=0.7 适合:
- 70% 的原图特征被保留(皱纹、肤色、小痣、不对称都在)
- 30% 的 Codebook 补充(补足模糊的细节、校正轻微偏色)
- 既"清楚了"又"还是她"
如果 w=0.3 会怎样
- 皱纹可能被磨掉(Codebook 里的"理想人脸"都没皱纹)
- 肤色变得过于光滑
- 原本的不对称眼型被 Codebook 拉得对称
- 看起来不像长辈了
分退化程度的推荐
轻度退化(扫描清晰、JPEG 伪影少)
# w 大一点,保住细节
python inference_codeformer.py -w 0.8 --input_path photo.jpg
轻度退化意味着原图本身信息还很完整,CodeFormer 的工作主要是"增强细节 + 上采样",不需要大幅重建。w 大保住原图特征。
中度退化(扫描模糊 + 轻微划痕 + 压缩伪影)
# w 居中,两边都帮
python inference_codeformer.py -w 0.65 --input_path photo.jpg
中度退化需要 Codebook 补足一些细节,但原图还能看清是谁,不能改得太狠。
重度退化(严重模糊 + 大面积划痕 + 褪色)
# w 小一点,让 Codebook 多帮忙
python inference_codeformer.py -w 0.5 --input_path photo.jpg
重度退化时原图信息缺失太多,w=0.5 让 Codebook 多参与重建。但注意:w=0.5 可能会产生"身份漂"——如果家人看完觉得"不太像",往 w=0.7 调。
黑白老照片
上色 + 修复两步走:
# 第一步:裁脸对齐
python scripts/crop_align_face.py -i old_bw_photo.jpg -o face.png
# 第二步:上色
python inference_colorization.py --input_path face.png
# 第三步:修复(上色后的脸)
python inference_codeformer.py -w 0.7 --has_aligned \
--input_path results/colorization/
老照片完整工作流
老照片原件(纸质 / 数码扫描件)
↓
预处理(裁脸对齐 → 512×512)
↓
检测划痕 / 污渍(Photoshop 白色画笔 mask)
↓
区域修复(inference_inpainting.py)← 有划痕才做
↓
上色(inference_colorization.py)← 黑白照片才做
↓
全局增强(inference_codeformer.py -w 0.7)
↓
背景增强(--bg_upsampler realesrgan)
↓
后期微调(Photoshop)
对比图提示
CodeFormer 官方项目页有丰富的老照片修复对比图,可以参考:
- 首页 imgsli 交互式对比滑条(前后拖动看效果)
- restoration_result1-4(修复后 vs 原图)
- color_enhancement_result1-2(上色 + 修复)
和 GFPGAN 选哪个
对于老照片修复,两者都是顶级选择,但各有侧重:
| 维度 | CodeFormer | GFPGAN |
|---|---|---|
| 身份保真度 | ✅ 有 w 权重可调 | 固定(GAN 倾向漂) |
| 划痕修复 | 需配合 inpainting | GFPGANv1.4 内建划痕修复 |
| 背景增强 | Real-ESRGAN 搭配 | 无 |
| 黑白上色 | 独立脚本 | 无 |
| 一键出结果 | 需调 w | ✅ 一键 |
| 学习成本 | 中(要理解 w) | 低 |
如果你的核心需求是"老照片修复且保持本人身份",CodeFormer 调 w=0.7 通常优于 GFPGAN。