codeformer 中文文档 下载 App

老照片场景推荐 w 值:家人长辈别修成网红脸

老照片的典型退化

退化类型描述CodeFormer 如何处理
扫描模糊纸质老照片扫描时的采样丢失Codebook 重建补足细节
划痕物理划痕 / 扫描噪点inpainting 脚本单独修
褪色 / 偏色年代久的发黄、偏红colorization 脚本上色
JPEG 压缩伪影反复复制粘贴后的块状 artifactCodebook 重建 + 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 适合:

如果 w=0.3 会怎样

分退化程度的推荐

轻度退化(扫描清晰、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 官方项目页有丰富的老照片修复对比图,可以参考:

和 GFPGAN 选哪个

对于老照片修复,两者都是顶级选择,但各有侧重:

维度CodeFormerGFPGAN
身份保真度✅ 有 w 权重可调固定(GAN 倾向漂)
划痕修复需配合 inpaintingGFPGANv1.4 内建划痕修复
背景增强Real-ESRGAN 搭配无
黑白上色独立脚本无
一键出结果需调 w✅ 一键
学习成本中(要理解 w)低

如果你的核心需求是"老照片修复且保持本人身份",CodeFormer 调 w=0.7 通常优于 GFPGAN。