Stable Diffusionで描いた人物の顔をGFPGANで補正する方法

  • URLをコピーしました!

高品質なイラストが生成できることで話題のStable Diffusionですが、人間を描かせると良い絵ができるまでにかなりの回数をトライしなければいけません。そこで、人の顔の画像を補正するAIであるGFPGANを使って、Stable Diffusionのイラストの顔を補正してみたいと思います。

Stable Diffusion自体の使い方は以下のページで解説していますので、あわせてご覧ください。

目次

GFPGANとは

GFPGANは、GenerativeFacial Prior GANの略称で、ディープラーニングを使って古い写真やノイズが載っている写真に写っている人物の顔を復元するモデルです。
元々は実写の画像を補正するために用いられるモデルのようですが、今回はStable Diffusionで生成した2次元のイラストに適用してみたいと思います。

GFPGANのインストール

インストールしたいディレクトリに移動し、GitHubからリポジトリをダウンロードします。

git clone https://github.com/TencentARC/GFPGAN.git

ダウンロードしたリポジトリのディレクトリに移動します。

cd GFPGAN

requirements.txtを使って必要なライブラリを一括インストールします。以下のコマンドを実行してください。

pip install -r requirements.txt
pip install realesrgan

セットアッププログラムを実行します。

python setup.py develop

GFPGANのバージョンが表示されたら完了です。

Finished processing dependencies for gfpgan==1.3.7

学習済みモデルの取得

学習済みモデルをダウンロードします。

https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth

ダウンロードしたら先ほどのGFPGANのディレクトリの以下の場所にモデルファイルを配置します。

(GFPGANのファイルが配置されているディレクトリ)\GFPGAN\experiments\pretrained_models

使い方

ここからは実際にGFPGANを使って顔の補正を行う方法を解説します。
先ほどダウンロードしたGFPGANのディレクトリ内に「inference_gfpgan.py」というファイルがあります。このPythonのファイルが実際にAIを使って補正を行う処理のファイルとなります。

入出力されるディレクトリ

補正したい画像を入れるディレクトリは以下となります。「inference_gfpgan.py」を実行する前に画像ファイルを入れておいてください。

(GFPGANのファイルが配置されているディレクトリ)\GFPGAN\inputs\whole_imgs

処理が完了すると以下のディレクトリに補正された画像が出力されます。

(GFPGANのファイルが配置されているディレクトリ)\GFPGAN\results\restored_imgs

実行方法

「inference_gfpgan.py」のファイルがあるディレクトリで、以下のコマンドを実行して画像を補正します。

python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.3 -s 2

初期状態でも「whole_imgs」のフォルダ内にはサンプルファイルが入っており、実行すると以下のように補正されたファイルが出力されます。

補正前

雑誌をスキャンしたような画像でノイズが載っています。

補正後

プログラムを実行するとノイズが除去されてきれいになりました。また画像サイズも大きくなっています。

StableDiffusionで生成したイラストの顔をGFPGANで補正してみる

ここからは実際にStable Diffusionで生成したイラストを補正していきます。

イラスト例1

まず1枚目はこちらのイラストです。

補正前

全体的に奇麗なイラストが描けたと思ったのですが、目のあたりが明らかに崩壊してしまっています。

補正後

GFPGANで補正をかけた後の画像がこちらです。目と鼻の周りが綺麗になり違和感がなくなりました。

イラスト例 2

続いて2枚目のイラストがこちらです。

補正前

このイラストも目と鼻のあたりがぼやけた感じになっています。

補正後

GFPGANで補正後の画像がこちらです。1枚目と同じく目、鼻、口周りが綺麗に修正されました。

欲しい絵に出会うためにハードウェアを揃えよう

Google Colabでは無料でStable Diffusionを使用するためのコードを実行できますが、GPUリソースの制限がありますのでできればローカルでGPUマシンを用意してトライしたいところです。

Stable Diffusionで絵を生成する場合はグラフィックボードのGPUメモリの容量により生成できるサイズに制約ができますので、できれば12GB以上のメモリを積んでいるものがおすすめです。

まとめ

今回は人の顔の画像を高品質化するAI、GFPGANをStableDiffusionで生成した2次元イラストで補正してみるという実験でした。明らかに顔の構造がおかしいような絵は無理でしたが、「ちょっと違和感があるあるな?」レベルのイラストであれば綺麗に補正できることがわかりました。
「せっかく綺麗なイラストが出力されたのに顔周りだけがオシイ!」という場合にぜひ試してみてください。

それでは、また次の記事でお会いしましょう。

参考

よかったらシェアしてね!
  • URLをコピーしました!
目次