はじめに
PTIとは「Pivotal Tuning for Latent-based editing of Real Images」の略です。こちらを参照して下さい。
github.com
方法
画像の前処理
python alignment.py --image-folder img/test/ --output-folder aligned_image/
PTIの実行
python run_pti.py
確認
python edit.py \ --network outputs/pti/checkpoints/model_test.pkl \ --attr_name upper_length \ --outdir outputs/edit_results \ --real True \ --real_w_path outputs/pti/embeddings/test/PTI/test/0.pt \ --real_img_path aligned_image/test.png
結果
うまくいった例
写真はぱくたそから使わせて頂きました。こちらの画像です。
LPIPS_value_threshold = 0.005 max_pti_steps = 1000
うまくいかなかった例
写真はぱくたそから使わせて頂きました。こちらの画像です。
LPIPS_value_threshold = 0.01 max_pti_steps = 750
写真によってはうまくいかない場合があります。いろいろ設定をいじっても無理でした。
環境構築
Ubuntu 20.04 on WSL2 CUDA 11.6 Python 3.9
pip install -r https://raw.githubusercontent.com/dai-ichiro/myEnvironments/main/StyleGAN-Human/requirements_cu116.txt
pip install paddlepaddle-gpu==2.4.2.post116 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html git clone https://github.com/PaddlePaddle/PaddleSeg cd PaddleSeg git checkout release/2.5 pip install -U setuptools wheel pip install -r requirements.txt pip install -v -e . pip install wandb==0.15.4
環境構築ではまったところ
はまったところを書いておきます。cuDNNのインストール
cuDNNのバージョンはなんでも良いと思いますがこちらに従いv8.4.0としました。NVIDIA公式から「cudnn-local-repo-ubuntu2004-8.4.0.27_1.0-1_amd64.deb」をダウンロードしてからインストールしました。(ダウンロードにはアカウントが必要です)
sudo dpkg -i cudnn-local-repo-ubuntu2004-8.4.0.27_1.0-1_amd64.deb sudo apt update sudo apt install libcudnn8 sudo apt install libcudnn8-dev
インストール後に以下を実行してWSL2を再起動する必要があります。
sudo ln -s /usr/lib/wsl/lib/libcuda.so.1 /usr/local/cuda/lib64/libcuda.so
paddlepaddle-gpuのインストール
「paddlepaddle」のインストールはこちらに従いました。pip install paddlepaddle-gpu==2.4.2.post116 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
paddlesegのインストール
「paddleseg」は2.5.0が良いとのことです。pip install paddleseg==2.5.0
なぜかこれではうまくいきませんでしたので以下のようにしました。
git clone https://github.com/PaddlePaddle/PaddleSeg cd PaddleSeg git checkout release/2.5 pip install -U setuptools wheel pip install -r requirements.txt pip install -v -e .
すべてうまくいくと以下を実行してみてください。
import paddle paddle.utils.run_check()
このような結果が返ってくれば環境構築は成功しています。
Running verify PaddlePaddle program ... W0628 10:19:57.095593 16151 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 8.6, Driver API Version: 12.1, Runtime API Version: 11.6 W0628 10:19:57.101826 16151 gpu_resources.cc:91] device: 0, cuDNN Version: 8.4. PaddlePaddle works well on 1 GPU. PaddlePaddle works well on 1 GPUs. PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.
補足
良い結果を得るためには「max_pti_steps」と「LPIPS_value_threshold」を変更すれば良さそうです。github.com
設定を変更するには「StyleGAN-Human/pti/pti_configs/hyperparameters.py」を書き換えます。