项目简介
一张图提供人脸,一张图提供发型,一张图提供发色,合成最终的图片。跟之前的一张图提供人脸,一张图提供服装,一张图提供动作,合成最终图片有异曲同工之妙。
我们的论文解决了将发型从参考图像转移到输入照片以进行虚拟试发的复杂任务。由于需要适应各种照片姿势、发型的敏感性以及缺乏客观指标,这项任务具有挑战性。目前最先进的发型转移方法对方法的不同部分使用优化过程,使它们变得不可原谅地缓慢。同时,基于编码器的更快模型的质量非常低,因为它们要么在 StyleGAN 的 W+ 空间中运行,要么使用其他低维图像生成器。此外,当源姿势与目标姿势非常不同时,这两种方法都存在发型转移问题,因为它们要么根本不考虑姿势,要么处理效率低下。在本文中,我们提出了HairFast模型,该模型独特地解决了这些问题,并与基于优化问题的方法相比,实现了高分辨率、近乎实时的性能和卓越的重建。我们的解决方案包括在 StyleGAN 的 FS 潜在空间中运行的新架构、增强的修复方法和改进的编码器,以实现更好的对齐、颜色传输,以及用于后处理的新编码器。我们的方法的有效性在随机发型转移和原始发型转移时重建后的真实感指标上得到了证明。在从不同图像中传输发型形状和颜色的最困难情况下,我们的方法在 Nvidia V100 上不到一秒钟即可完成。
先决条件
您需要以下硬件和 python 版本来运行我们的方法。
-
Linux
-
NVIDIA GPU + CUDA CuDNN
-
Python 3.10
-
PyTorch 1.13.1+
安装
git clone https://github.com/AIRI-Institute/HairFastGAN
cd HairFastGAN
git clone https://huggingface.co/AIRI-Institute/HairFastGAN
cd HairFastGAN && git lfs pull && cd ..
mv HairFastGAN/pretrained_models pretrained_models
mv HairFastGAN/input input
rm -rf HairFastGAN
选项 1 [推荐],安装 Poetry,然后:
推理
main.py 您可以使用该方法运行该方法,无论是用于单次运行还是用于一批实验。
python main.py --face_path=6.png --shape_path=7.png --color_path=8.png \
--input_dir=input --result_path=output/result.png
cat > example.txt << EOF
6.png 7.png 8.png
8.png 4.jpg 5.jpg
EOF
现在,您可以运行以下方法:
python main.py --file_path=example.txt --input_dir=input --output_dir=output
from hair_swap import HairFast, get_parser
hair_fast = HairFast(get_parser().parse_args([]))
result = hair_fast(face_img, shape_img, color_img)