🐡
CodeFormerでピンボケ画像を補正する
CodeFormer
低画質の顔画像を高画質化することが可能なCodeFormerを試してみます。
セットアップ方法
ここでは、Google Colab等でなく、ローカルPCで実行します。
> https://github.com/sczhou/CodeFormer.git
> cd CodeFormer
> pip install -r requirements.txt
> python basicsr/setup.py develop
> python scripts/download_pretrained_models.py facelib
> python scripts/download_pretrained_models.py CodeFormer
ディレクトリ構成
下記のようなディレクトリ構成とし、任意のディレクトリ下でコマンドを実行しました。
- 任意のディレクトリ
- CodeFormer (git clone したもの)
- input (入力画像を格納)
- output (処理画像を出力)
使い方
コマンドパラメータ
人物の顔を含む写真全体を処理する場合は下記のコマンドを実行します。
このコマンドでは、顔の領域をクロップして補正し、合成する処理をするようです。
顔の領域をクロップした結果は cropped_faces ディレクトリに、これを処理したものは restored_faces に保存されます。
最終結果は、final_results ディレクトリに格納されます。
python CodeFormer/inference_codeformer.py -w 0.7 --input_path input --output_path output --bg_upsampler realesrgan --face_upsample
補足
上記は、2022/10/09 masterブランチの最新(fa547b7aba3ef0a2b1b8db9956e6dba2984de218)での引数となっており、それ以前は下記のような引数でした。
(test_path → input_path、save_path → output_path に見直されています)
python CodeFormer/inference_codeformer.py -w 0.7 --test_path input --save_path output --bg_upsampler realesrgan --face_upsample
実行例
ピンボケ写真を想定した画像を Stable Diffusion で生成して試しました。
Prompt は下記の通りです。
Photographic color portrait of software engineer, out of focus shot
何度か試してそれらしき画像が生成されました(seed値は 134066498474236 でした)。
変換前の画像
変換後の画像
参考
- CodeFormerで、低画質の顔画像を高画質化する | cedro-blog
- cedro3/CodeFormer: PyTorch codes for "Towards Robust Blind Face Restoration with Codebook Lookup Transformer" (NeurIPS 2022)
参考にしました。上記記事では Google Colab が使われています。
Discussion