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]