【Python】AI高画質化ツールCodeFormerのインストール

【Python】AI高画質化ツールCodeFormerのインストール 機械学習

「人の顔写真を綺麗に復元したい」
「Real-ESRGANのインストールに失敗してしまう・・・」

このような場合には、CodeFormerがオススメです。
この記事では、CodeFormerのインストールについて解説しています。

本記事の内容

  • CodeFormerとは?
  • CodeFormerのシステム要件
  • CodeFormerのインストール
  • CodeFormerの動作確認

それでは、上記に沿って解説していきます。

CodeFormerとは?

CodeFormerは、顔面修復のアルゴリズムのことを言います。
顔面修復を簡単に言うと、顔を綺麗にすることです。

次の画像を見れば、CodeFormerで可能なことが一目瞭然でしょう。

これと同じようなことは、GFPGANでも可能です。

あと、CodeFormerではReal-ESRGANを統合しています。

Real-ESRGAN単独のインストールは、そこそこ面倒です。
それについては、次の記事で説明しています。

ただ、CodeFormerに統合されたReal-ESRGANでは、細かいモデル指定まではできないようです。
CodeFormerのソースを見ると、「RealESRGAN_x2plus.pth」が固定で指定されています。

現状では、「RealESRGAN_x4plus.pth」を指定することは無理そうです。
「RealESRGAN_x4plus.pth」を利用したいなら、本家(Real-ESRGAN単独)を利用しましょう。

以上、CodeFormerについて説明しました。
次は、CodeFormerのシステム要件を説明します。

CodeFormerのシステム要件

現時点(2022年10月)でのCodeFormerの最新バージョンは、0.1.0となります。
この最新バージョンは、2022年8月10日にリリースされています。

リリースされているとは言え、GitHub上の最新ソースを取得します。
そのため、正確にはバージョンはあってないようなモノです。

実際、変更は頻繁に実施されているようです。

CodeFormerのシステム要件は、以下のように記載されています。

  • Pytorch >= 1.7.1
  • CUDA >= 10.1
  • Other required packages in requirements.txt

CUDAのバージョンが指定されています。
最新のGPU版PyTorchをインストールすれば、問題ないと言えます。

GPU版Pytorchのインストールについては、次の記事で解説しています。

requirements.txtには、必要なパッケージが記載されています。
それは、まとめてインストールすればよいでしょう。

とにかく、GPU版PyTorchを事前にインストールしておきます。

以上、CodeFormerのシステム要件を説明しました。
次は、CodeFormerのインストールを説明します。

CodeFormerのインストール

CodeFormerのインストールを行っていきます。
CodeFormerは、Python仮想環境にインストールすることをオススメします。

検証は、次のバージョンのPythonで行います。

> python -V  
Python 3.10.4

まずは、現状のインストール済みパッケージを確認しておきます。
事前にGPU版PyTorchがインストール済みです。

> pip list 
Package            Version 
------------------ ------------ 
certifi            2022.9.24    
charset-normalizer 2.1.1        
idna               3.4          
numpy              1.23.3       
Pillow             9.2.0        
pip                22.2.2       
requests           2.28.1       
setuptools         65.4.1       
torch              1.12.1+cu113 
torchaudio         0.12.1+cu113 
torchvision        0.13.1+cu113 
typing_extensions  4.3.0        
urllib3            1.26.12      
wheel              0.37.1

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、CodeFormerのインストールです。
CodeFormerのインストールは、GitHubからプロジェクトをダウンロードします。

git clone https://github.com/sczhou/CodeFormer

gitコマンドでGitHubからCodeFormerのソース一式を取得します。
Windowsの場合であれば、gitコマンドが利用できないかもしれません。

その場合は、次の記事を参考にしてください。

プロジェクトのダウンロードが完了したら、リポジトリルートに移動します。

cd CodeFormer

基本的には、この場所でコマンドを実行することになります。
次は、パッケージのインストールです。

requirements.txtを同一ディレクトリ上で確認できます。

requirements.txt

addict 
future 
lmdb 
numpy 
opencv-python 
Pillow 
pyyaml 
requests 
scikit-image 
scipy 
tb-nightly 
torch>=1.7.1 
torchvision 
tqdm 
yapf 
lpips 
gdown # supports downloading the large file from Google Drive 
# cmake 
# dlib 
# conda install -c conda-forge dlib

PyTorchさえインストール済みであれば、そのままインストールしても問題ありません。
次のコマンドにより、まとめてインストールします。

pip install -r requirements.txt

インストールが完了したら、インストール済みパッケージの確認です。

> pip list 
Package                 Version 
----------------------- --------------- 
absl-py                 1.2.0 
addict                  2.4.0 
beautifulsoup4          4.11.1 
cachetools              5.2.0 
certifi                 2022.9.24 
charset-normalizer      2.1.1 
colorama                0.4.5 
filelock                3.8.0 
future                  0.18.2 
gdown                   4.5.1 
google-auth             2.12.0 
google-auth-oauthlib    0.4.6 
grpcio                  1.49.1 
idna                    3.4 
imageio                 2.22.0 
lmdb                    1.3.0 
lpips                   0.1.4 
Markdown                3.4.1 
MarkupSafe              2.1.1 
networkx                2.8.6 
numpy                   1.23.3 
oauthlib                3.2.1 
opencv-python           4.6.0.66 
packaging               21.3 
six                     1.16.0 
soupsieve               2.3.2.post1 
tb-nightly              2.11.0a20220930 
tensorboard-data-server 0.6.1 
tensorboard-plugin-wit  1.8.1 
tifffile                2022.8.12 
torch                   1.12.1+cu113 
torchaudio              0.12.1+cu113 
torchvision             0.13.1+cu113 
tqdm                    4.64.1 
typing_extensions       4.3.0 
urllib3                 1.26.12 
Werkzeug                2.2.2 
wheel                   0.37.1 
yapf                    0.32.0

CodeFormerは多くのパッケージに依存しています。
やはり、CodeFormerはPython仮想環境へインストールするのが無難でしょうね。

以上、CodeFormerのインストールを説明しました。
次は、CodeFormerの動作確認を説明します。

CodeFormerの動作確認

CodeFormerの動作確認を行います。
次の流れで動作確認を説明していきます。

  • 顔認識のための学習済みモデル設置
  • CodeFormerのための学習済みモデル設置
  • 動作確認

顔認識のための学習済みモデル設置

顔認識の学習済みモデルをダウンロードする必要があります。
このモデルは、一般的によく利用されています。

Google Driveなどからダウンロードして設置します。
しかし、CodeFormerでは専用のスクリプトが用意されています。

リポジトリルートで以下を実行すると、自動的にダウンロードが開始されます。
そして、モデルを必要な場所へ自動的に設置まで行います。

python scripts/download_pretrained_models.py facelib

しかし、次のエラーが発生することがあります。

ModuleNotFoundError: No module named 'basicsr'

「basicsr」が未インストールだと、上記エラーが出ます。

そこで、対象のパッケージをインストールします。
AIで画像・映像を扱う際に便利なツールだということです。

BasicSR
https://github.com/XPixelGroup/BasicSR

pip install basicsr

BasicSRのインストール後に、ダウンロード用のスクリプトをもう一度実行してみてください。
今度は、処理が上手くいくはずです。

処理が完了すると、「weights」ディレクトリ以下にモデルが保存されています。

CodeFormerのための学習済みモデル設置

CodeFormer専用の学習済みモデルをダウンロードします。
これは、CodeFormerの本体とも言えますね。

facelibと同じように、以下のコマンドを実行します。

python scripts/download_pretrained_models.py CodeFormer

処理が完了すると、「weights」ディレクトリ以下にモデルが保存されています。

動作確認

次のコマンドでは、サンプル画像をそのまま利用できます。

python inference_codeformer.py --w 0.5 --has_aligned --test_path inputs/cropped_faces

「–has_aligned」を付ける場合は、お膳立てをした画像である必要があります。
次の画像は、「inputs\cropped_faces\」ディレクトリ以下の画像一覧です。

お膳立てとは、顔が中心になるように切り抜いた画像ということです。
サイズは、512 x 512となります。

上記コマンドを実行すると処理が走りますが、次のようなエラーが出るかもしれません。
おそらく、出るはずです。

ModuleNotFoundError: No module named 'basicsr.version'

このエラーは、次のファイルを修正することで対応できます。

basicsr/__init__.py

11行目をコメントアウトするだけです。
再度、コマンドを実行します。

実行すると、以下のエラーが表示されてしまいます。

NameError: name 'input_video' is not defined

おそらく、次の更新と関係があるのでしょう。

エラーと言っても、処理自体は問題なく進みます。
でも、やはりエラーは気持ちの良いものではありません。
次の更新ぐらいで、解決されることを期待しましょう。

処理が完了すると、「result」ディレクトリ以下に動きがあります。

作成された画像の一覧です。

見事に画質がUPしています。
サイズは、512 x 512です。

以上、CodeFormerの動作確認を説明しました。

タイトルとURLをコピーしました