CodeFormer 是一个基于 Transformer 的预测网络,旨在进行盲目人脸修复。它的目标是从低质量的输入中预测高质量的人脸图像,即使输入图像严重退化也能够发现与目标人脸相似的自然人脸
使用地址
CodeFormer - a Hugging Face Space by sczhou
GitHub地址
sczhou/CodeFormer: [NeurIPS 2022] Towards Robust Blind Face Restoration with Codebook Lookup Transformer (github.com)

- 离散码本和解码器:首先,CodeFormer 学习了一个离散码本和一个解码器,通过自重构学习存储高质量人脸图像的视觉部分。这些部分可以用于后续的人脸修复。
- Transformer 模块:在固定的码本和解码器的基础上,CodeFormer 引入了一个 Transformer 模块,用于预测码序列。这个模块可以建模低质量输入的全局人脸组合,从而实现对目标人脸的修复。
如果你想尝试 CodeFormer,你可以按照以下步骤操作:
- 克隆这个仓库:
git clone https://github.com/sczhou/CodeFormer
- 创建一个新的 Anaconda 环境:
conda create -n codeformer python=3.8 -y
,然后激活环境:conda activate codeformer
- 安装所需的 Python 依赖:
pip3 install -r requirements.txt
,以及 conda install -c conda-forge dlib
(仅用于使用 dlib 进行人脸检测或裁剪)
- 下载预训练模型:从 [Releases | Google Drive | OneDrive] 下载 facelib 和 dlib 预训练模型到
weights/facelib
文件夹,以及 CodeFormer 预训练模型到 weights/CodeFormer
文件夹。
- 准备测试数据:将测试图像放入
inputs/TestWhole
文件夹。如果你想测试裁剪和对齐的人脸,可以将它们放入 inputs/cropped_faces
文件夹。
参数 | |
Pre_Face_Align | 预对齐 |
Background_Enhance | 背景_增强 |
Face_Upsample | 面部采样 |
Rescaling_Factor (up to 4) | 重新缩放因子(最多 4) |
Codeformer_Fidelity (0 for better quality, 1 for better identity) | 保真度(0 表示质量更好,1 表示身份更好) |