github链接:https://github.com/sczhou/CodeFormer

1、配置环境

conda create -n codeformer python=3.8
conda activate codeformer 
pip install dlib-19.19.0-cp38-cp38-win_amd64.whl
pip install torch-1.10.0+cu113-cp38-cp38-win_amd64.whl
pip install torchvision-0.11.0+cu113-cp38-cp38-win_amd64.whl
pip install addict
pip install future
pip install lmdb
pip install numpy
pip install opencv-python
pip install Pillow
pip install pyyaml
pip install requests
pip install scikit-image
pip install scipy
pip install tb-nightly
pip install tqdm
pip install yapf
pip install lpips
pip install gdown

2、下载模型

文章的云盘链接提供

将codeformer.pth放入weights\CodeFormer文件目录

将detection_Resnet50_Final.pth放入weights\facelib文件目录

将shape_predictor_68_face_landmarks-fbdc2cb8.dat放入weights\dlib文件目录

3、运行

准备测试数据:

您可以将测试图像放在inputs/TestWhole文件夹中。如果您想在裁剪和对齐的面上进行测试,可以将它们放在inputs/clopped_faces文件夹中。通过运行以下命令,可以获得裁剪和对齐的面:

python scripts/crop_align_face.py -i [input folder] -o [output folder]

测试:

[注意]如果您想比较论文中的CodeFormer,请运行以下命令指示–has_aligned(用于裁剪和对齐的人脸),因为整个图像的命令将涉及人脸背景融合过程,这可能会破坏边界上的头发纹理,从而导致不公平的比较。

保真度权重w位于[0,1]中。通常,较小的w往往产生更高质量的结果,而较大的w产生更高的保真度结果。结果将保存在结果文件夹中。

面部恢复(裁剪和对齐的面部)

# 用于裁剪和对齐的面(512x512
python inference_codeformer.py -w 0.5 --has_aligned --input_path [image folder]|[image path]

全图像增强



#对于整个图像
#添加--bg_upsampler realesrgan以使用Real ESRGAN增强背景区域
#添加--face_upsample以使用Real ESRGAN进一步放大恢复的面部样本
python inference_codeformer.py -w 0.7 --input_path [image folder]|[image path]

视频增强

#对于Windows/Mac用户请先安装ffmpeg
conda install -c conda-forge ffmpeg
#用于视频剪辑
#视频路径应以.mp4|.mov|.avi结尾
python inference_codeformer.py --bg_upsampler realesrgan --face_upsample -w 1.0 --input_path [video path]

面部着色(裁剪和对齐的面部)

#用于裁剪和对齐的面(512x512
#将黑白或褪色的照片着色
python inference_colorization.py --input_path [image folder]|[image path]

面部修复(裁剪和对齐的面部)


#用于裁剪和对齐的面(512x512
#输入可以通过使用图像编辑应用程序例如Photoshop的白刷进行屏蔽
#(查看inputs/masked_faces中的示例
python inference_inpainting.py --input_path [image folder]|[image path]