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

以下のページで自然言語処理モデルGPT-3を使ったライティングツールCatchyで、Stable DiffusionのPromptを自動生成する方法について解説していますので、あわせてご覧ください。

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



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枚目と同じく目、鼻、口周りが綺麗に修正されました。

Stable Diffusionのテクニックを効率よく学ぶには?

Stable Diffusionを使ってみたいけど、ネットで調べた情報を試してもうまくいかない…



そんな時は、操作方法の説明が動画で見られるUdemyがおすすめだよ!
動画学習プラットフォームUdemyでは、画像生成AIで高品質なイラストを生成する方法や、AIの内部で使われているアルゴリズムについて学べる講座が用意されています。
Udemyは講座単体で購入できるため安価で(セール時1500円くらいから購入できます)、PCが無くてもスマホでいつでもどこでも手軽に学習できます。
Stable Diffusionに特化して学ぶ
Stable Diffusionに特化し、クラウドコンピューティングサービスPaperspaceでの環境構築方法から、モデルのマージ方法、ControlNetを使った構図のコントロールなど、中級者以上のレベルを目指したい方に最適な講座です。


画像生成AIの仕組みを学ぶ
画像生成AIの仕組みについて学びたい方には、以下の講座がおすすめです。
画像生成AIで使用される変分オートエンコーダやGANのアーキテクチャを理解することで、よりクオリティの高いイラストを生成することができます。


まとめ
今回は人の顔の画像を高品質化するAI、GFPGANをStableDiffusionで生成した2次元イラストで補正してみるという実験でした。
明らかに顔の構造がおかしいような絵は無理でしたが、「ちょっと違和感があるあるな?」レベルのイラストであれば綺麗に補正できることがわかりました。「せっかく綺麗なイラストが出力されたのに顔周りだけがオシイ!」という場合にぜひ試してみてください。
以下のページで自然言語処理モデルGPT-3を使ったライティングツールCatchyで、Stable DiffusionのPromptを自動生成する方法について解説していますので、あわせてご覧ください。


また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。


スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。


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






参考


コメント