JoJoGAN: One Shot Face Stylization. 只用一张人脸图片,就能学习其风格,然后迁移到其他图片。训练时长只用 1~2 min 即可。
效果:
主流程:
本文分享了个人在本地环境(非 colab)实践 JoJoGAN 的整个过程。你也可以依照本文上手训练自己喜欢的风格。
准备环境
安装:
conda create -n torch python=3.9 -y
conda activate torch
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch -y
检查:
$ python - <<EOF
import torch, torchvision
print(torch.__version__, torch.cuda.is_available())
EOF
1.10.1 True
准备代码
git clone https://github.com/mchong6/JoJoGAN.git
cd JoJoGAN
pip install tqdm gdown matplotlib scipy opencv-python dlib lpips wandb
# Ninja is required to load C++ extensions
wget https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-linux.zip
sudo unzip ninja-linux.zip -d /usr/local/bin/
sudo update-alternatives --install /usr/bin/ninja ninja /usr/local/bin/ninja 1 --force
然后,将本文提供的几个 *.py
放进 JoJoGAN
目录,从这里获取: https://github.com/ikuokuo/start-deep-learning/tree/master/practice/JoJoGAN 。
download_models.py
: 获取模型generate_faces.py
: 生成人脸stylize.py
: 风格化train.py
: 训练
之后,于训练流程一节,会结合代码,讲述下 JoJoGAN 的工作流程。其他些 *.py
只提下用法,实现就不多说了。
获取模型
python download_models.py
获取模型,如下:
models/
├── arcane_caitlyn_preserve_color.pt
├── arcane_caitlyn.pt
├── arcane_jinx_preserve_color.pt
├── arcane_jinx.pt
├── arcane_multi_preserve_color.pt
├── arcane_multi.pt
├── art.pt
├── disney_preserve_color.pt
├── disney.pt
├── dlibshape_predictor_68_face_landmarks.dat
├── e4e_ffhq_encode.pt
├── jojo_preserve_color.pt
├── jojo.pt
├── jojo_yasuho_preserve_color.pt
├── jojo_yasuho.pt
├── restyle_psp_ffhq_encode.pt
├── stylegan2-ffhq-config-f.pt
├── supergirl_preserve_color.pt
└── supergirl.pt
生成人脸
用 StyleGAN2 预训练模型随机生成人脸,用于测试:
python generate_faces.py -n 5 -s 2000<