GFPGAN の利用¶
GFPGANは、顔画像の復元や高品質化を目的とした生成対抗ネットワーク(GAN)ベースの深層学習モデルですが、コマンドを利用することで写真から顔の抽出ができます。
環境構築時にはまったのでメモとして残しておきます。
環境構築¶
前提条件¶
windows11環境
pythonバージョン : Python 3.10.6
CUDAバージョン : 12.8
実施手順¶
インストール先のフォルダを作成
「C:\app\tools」を起点として環境を構築します。
コマンドプロンプトを起動
以下のコマンド群を実行する
インストール用の資材をgitからCloneする。
git clone https://github.com/TencentARC/GFPGAN.git cd GFPGAN
仮想環境を利用するため以下のコマンドを実行する
python -m venv venv venv\Scripts\activate (venv) C:\app\tools\GFPGAN> ← このような表示になることを確認
pip install basicsr pip install facexlib pip install -r requirements.txt python setup.py develop pip install realesrgan
途中以下の内容でたら指示に従ってupdateする
[notice] A new release of pip available: 22.2.1 -> 25.2 [notice] To update, run: python.exe -m pip install --upgrade pip
以上でインストールは完了です。
インストール後の動作確認
以下のコマンドを実行して動作を確認します。 事前に「C:\app\tools\GFPGAN\output」を作成しておきます。
動作イメージとしては「C:\app\tools\GFPGAN\inputs\whole_imgs」に抽出元の画像を配置し、「C:\app\tools\GFPGAN\output」のフォルダに出力されます。 インストール直後はinputs配下に以下のような構成でファイルが配置されています。
以下のコマンドを実行します。
python inference_gfpgan.py -i "C:\app\tools\GFPGAN\inputs\whole_imgs" -o "C:\app\tools\GFPGAN\output" -v 1.3 -s 1 --ext png --bg_upsampler=none
以下のように個人単位で顔が抽出されます。
以下のエラーが出た場合には
(venv) C:\app\tools\GFPGAN>python inference_gfpgan.py -i "C:\app\tools\GFPGAN\inputs\whole_imgs" -o "C:\app\tools\GFPGAN\output" -v 1.3 -s 1 --ext png --bg_upsampler=none Traceback (most recent call last): File "C:\app\tools\GFPGAN\inference_gfpgan.py", line 7, in <module> from basicsr.utils import imwrite File "C:\app\tools\GFPGAN\venv\lib\site-packages\basicsr\__init__.py", line 4, in <module> from .data import * File "C:\app\tools\GFPGAN\venv\lib\site-packages\basicsr\data\__init__.py", line 22, in <module> _dataset_modules = [importlib.import_module(f'basicsr.data.{file_name}') for file_name in dataset_filenames] File "C:\app\tools\GFPGAN\venv\lib\site-packages\basicsr\data\__init__.py", line 22, in <listcomp> _dataset_modules = [importlib.import_module(f'basicsr.data.{file_name}') for file_name in dataset_filenames] File "C:\Users\snowh\AppData\Local\Programs\Python\Python310\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "C:\app\tools\GFPGAN\venv\lib\site-packages\basicsr\data\realesrgan_dataset.py", line 11, in <module> from basicsr.data.degradations import circular_lowpass_kernel, random_mixed_kernels File "C:\app\tools\GFPGAN\venv\lib\site-packages\basicsr\data\degradations.py", line 8, in <module> from torchvision.transforms.functional_tensor import rgb_to_grayscale ModuleNotFoundError: No module named 'torchvision.transforms.functional_tensor'
basicsr の最新版を GitHub から直接インストールすることで対応することが可能性があります。
エラーは basicsr/data/degradations.py 内で from torchvision.transforms.functional_tensor import rgb_to_grayscale をしていることに起因しています。バージョンによってはこの import が修正済みのコミットがあり、最新の basicsr ソースに更新すれば解決することがあります。
pip uninstall basicsr -y pip install git+https://github.com/XPixelGroup/BasicSR.git