顔専用のアップスケーラーCodeFormer https://t.co/UOqrvx29o8 を試し中。左→右。これくらいならまだいいが、ボケボケの顔をくっきりさせると自分じゃない顔になってしまう pic.twitter.com/SGWZa92QyM
— Haruhiko Okumura (@h_okumura) November 8, 2022
微妙に自分じゃない顔になる例(顔以外はReal-ESRGAN) pic.twitter.com/dDP17eB1ku
— Haruhiko Okumura (@h_okumura) November 8, 2022
上は CodeFormer という顔専用のアップスケーラー(高解像度化ツール)を使った例である。論文は https://arxiv.org/abs/2206.11253、ソースコードは https://github.com/sczhou/CodeFormer にある。
私は M1 Mac 上の Python 3.10(公式サイトからインストールしたもの)を使っているので、次のようにしてインストールした。
git clone https://github.com/sczhou/CodeFormer.git cd CodeFormer python3 scripts/download_pretrained_models.py facelib python3 scripts/download_pretrained_models.py CodeFormer pip3 install lpips # ほかにも必要に応じてインストール python3 basicsr/setup.py develop --user
まずはサンプルの画像で試してみる:
python3 inference_codeformer.py -w 0.7 --input_path inputs/whole_imgs/00.jpg
出力が results/test_img_0.7/final_results/00.png に入る。
顔以外も高解像度化する際には Real-ESRGAN が使われる。初回実行時に https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/RealESRGAN_x2plus.pth が weights/realesrgan/RealESRGAN_x2plus.pth にダウンロードされる(64M ほど)。
python3 inference_codeformer.py -w 0.7 --bg_upsampler realesrgan \ --input_path inputs/whole_imgs/00.jpg
いちえふの写真をSwinIRで縦横とも4倍にしようとしたんだけれど、何となくそれらしいけれど文字がダメだ pic.twitter.com/tKjLQkpzJi
— Haruhiko Okumura (@h_okumura) November 2, 2022
こちらは SwinIR というアップスケーラーである。Swin Transformer というものを使っている(Swin = Shifted windows)。
git clone https://github.com/JingyunLiang/SwinIR.git cd SwinIR
モデルのどれかを取得して適当な場所(例:experiments/pretrained_models)に入れる。主なモデル:
例えば上の最後のもの(large)をコマンドで取得する例:
wget https://github.com/JingyunLiang/SwinIR/releases/download/v0.0/003_realSR_BSRGAN_DFOWMFC_s64w8_SwinIR-L_x4_GAN.pth \ -P experiments/pretrained_models
実際に動かしてみよう。次のコマンドがエラーになれば不足ライブラリを入れる(私の場合は pip3 install timm
が必要であった)。画像は testsets/okumura
の中に入れた。
4倍 large:
python3 main_test_swinir.py --task real_sr --scale 4 --large_model \ --model_path experiments/pretrained_models/003_realSR_BSRGAN_DFOWMFC_s64w8_SwinIR-L_x4_GAN.pth \ --folder_lq testsets/okumura
結果は results/swinir_real_sr_x4_large に入る。
2倍 middle:
python3 main_test_swinir.py --task real_sr --scale 2 \ --model_path experiments/pretrained_models/003_realSR_BSRGAN_DFO_s64w8_SwinIR-M_x2_GAN.pth \ --folder_lq testsets/okumura
結果は results/swinir_real_sr_x2 に入る。