☰
CodeFormer 实战:3 步跑通人脸修复,w 值怎么选一篇讲清
2026/10/31 1:21:47 网站建设 项目流程

CodeFormer 实战:3 步跑通人脸修复,w 值怎么选一篇讲清

【免费下载链接】CodeFormer[NeurIPS 2022] Towards Robust Blind Face Restoration with Codebook Lookup Transformer项目地址: https://gitcode.com/gh_mirrors/co/CodeFormer

效果速览 ✨

CodeFormer 是南洋理工大学 S-Lab 提出的人脸修复工具,基于 NeurIPS 2022 论文的 Codebook Lookup Transformer,可把模糊、退化的人脸重建为高质量图像。它也支持黑白照片上色与遮挡区域补全。

从零到出图:最短路径 🚀

官方要求 Python 3.8、PyTorch >= 1.7.1、CUDA >= 10.1。最短链路分四步:

  • 用 conda 创建python=3.8环境并激活
  • 安装依赖并编译basicsr
  • 下载 facelib 人脸检测模型与 CodeFormer 主模型
  • 跑第一条修复命令
git clone https://gitcode.com/gh_mirrors/co/CodeFormer cd CodeFormer pip3 install -r requirements.txt python basicsr/setup.py develop

接着下载模型并运行第一条修复命令:

python scripts/download_pretrained_models.py facelib python scripts/download_pretrained_models.py CodeFormer python inference_codeformer.py -w 0.5 --input_path inputs/whole_imgs

输出默认写入results/<输入文件夹名>_<w>:final_results是人脸贴回后的整图,restored_faces是单独修复的人脸。-w取值 0 到 1,0.5是安全的起步值。

原理 60 秒 ⚡

低质量人脸先经检测、裁剪、对齐成 512×512 再进入网络。编码器把图像压缩成特征序列,Transformer 解码器不直接逐像素预测,而是从一个 1024 项的码本中检索组合——类似查词典找固定搭配,先找到最优的“视觉词组”,再由解码器按w参数加权拼出高清纹理,最后贴回原图坐标。w取小值偏向高质量重建,取大值更贴近原图特征。

保真度权重 w 值怎么选

选参的核心就是w:小w质量高但保真度低,大w保真度高。几个高频场景:

  1. 整图修复、背景也模糊:-w 0.7 --bg_upsampler realesrgan。背景用 Real-ESRGAN 一并放大,人脸与背景观感一致,整图更协调。
  2. 已裁剪人脸的评测或论文对比:-w 0.5 --has_aligned。跳过整图融合流程,避免发丝边缘被破坏,结果可复现。
  3. AI 生成图面部崩坏:-w 0.3到0.5。原始缺陷大时,小w给模型更多重建自由度,修复上限更高。
  4. 视频修复:-w 1.0 --face_upsample。保真优先,配合背景超分能压住帧间闪烁。

命令可以直接复制:

python inference_codeformer.py -w 0.7 --bg_upsampler realesrgan --input_path inputs/whole_imgs python inference_codeformer.py -w 0.5 --has_aligned --input_path inputs/cropped_faces python inference_codeformer.py -w 0.3 --has_aligned --input_path inputs/cropped_faces python inference_codeformer.py -w 1.0 --bg_upsampler realesrgan --face_upsample --input_path your_video.mp4

大图显存紧张时可用--bg_tile调小分块尺寸,--upscale控制最终放大倍数(默认 2 倍)。

真实使用场景

1. 遮挡区域补全:给旧照片换背景后,脸上残留一块白色擦除痕迹。把白色涂抹区域作为 mask 放进inputs/masked_faces,运行python inference_inpainting.py --input_path inputs/masked_faces,被遮的眼部和鼻梁会根据周围皮肤与结构推断补出。

2. 黑白老照片上色:从相册扫描出来的老照片是黑白且发灰的。运行python inference_colorization.py --input_path inputs/gray_faces,肤色、发色和衣物颜色基于面部光照与纹理推断,逐张手调颜色的工作量可以省掉。

3. 摄像设备画面修复:剪辑家庭录像时,早期摄像头的画面噪点多、人脸发糊。用-w 1.0加--bg_upsampler realesrgan --face_upsample处理后,results/下直接输出可用的 mp4。

踩坑与排错

  1. 日志里显示 0 faces detected:默认 RetinaFace 对低质量或大角度侧脸容易失效。换--detection_model dlib(需先装 dlib),或加--only_center_face只处理主脸。
  2. 大图配--bg_upsampler realesrgan时显存溢出:Real-ESRGAN 需要整图参与计算。把--bg_tile 400降到--bg_tile 200,或先去掉--face_upsample。
  3. CPU 上跑得很慢且有警告:Real-ESRGAN 在 CPU 上未做优化。去掉--bg_upsampler和--face_upsample,人脸修复部分不受影响。
  4. 模型下载失败:网络访问不到 GitHub Releases 时,手动下载codeformer.pth放入weights/CodeFormer/,facelib 模型放入weights/facelib/,推理脚本会直接使用本地权重。
  5. 修复结果发丝边缘不自然:整图流程含人脸与背景融合,边界可能被损伤。若在意对比的严谨性,先用scripts/crop_align_face.py裁出人脸,再走--has_aligned。

仓库导览 & 下一步

几个对使用者有用的路径:

  • inference_codeformer.py:主入口,修复、上色、补全都由它的命令行参数驱动
  • inputs/whole_imgs、inputs/cropped_faces:示例输入,可直接运行
  • options/CodeFormer_stage3.yml:第三阶段训练配置,自定义训练的起点
  • docs/train_CN.md:中文训练文档
  • scripts/crop_align_face.py:把整图里的人脸裁剪对齐成 512×512

生态侧,Hugging Face Spaces 有官方在线 Demo 可直接试玩,Replicate 提供 API 服务方便接入自己的应用,Stable Diffusion WebUI 与 ComfyUI 也能调用 CodeFormer 节点。

建议先用默认参数跑一遍inputs/whole_imgs,在results/里对比几个w值的输出再定值;如果打算在自己的数据集上微调,顺着docs/train_CN.md走即可。

【免费下载链接】CodeFormer[NeurIPS 2022] Towards Robust Blind Face Restoration with Codebook Lookup Transformer项目地址: https://gitcode.com/gh_mirrors/co/CodeFormer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询