今回は画像を高画質化できる機械学習モデル、Real-ESRGANを使ってStable Diffusionで生成した画像を高画質化できるかを試してみましたので、使用方法と実行結果について解説します。Pythonのコードを掲載していますので、ぜひトライしてみてください。
また、以下の記事でStable Diffusionの使い方をまとめていますので、あわせてご覧ください。
以下のページで自然言語処理モデルGPT-3を使ったライティングツールCatchyで、Stable DiffusionのPromptを自動生成する方法について解説していますので、あわせてご覧ください。
\ 機械学習を学びたい人には自宅で学べるUdemyがおすすめ! /
講座単位で購入できます!
Real-ESRGANとは
Real-ESRGANは画像を高画質化することが可能な機械学習をベースとしたアプリケーションです。画像サイズを大きくしたり、画像のノイズを除去したりすることが可能です。PyTorchを使って実装されているようです。
Real-ESRGANのGitHubのリポジトリは以下となります。
画像生成AIであるStable Diffusionは使用するグラフィックボードのメモリ容量によって生成できる画像サイズに制約があります。そのため、今回はStable Diffusionで生成した画像のサイズを、Real-ESRGANを使って拡張できないかを試してみたいと思います。
Stable Diffusionの使い方は以下の記事で解説しています。
Real-ESRGANのインストール
GitHubからReal-ESRGANのリポジトリをダウンロードします。
git clone https://github.com/xinntao/Real-ESRGAN.git
cd Real-ESRGAN
続いて以下を1つづつインストールします。
pip install basicsr
pip install facexlib
pip install gfpgan
pip install -r requirements.txt
python setup.py develop
学習済みモデルの取得
続いてReal-ESRGANで推論を実行するための学習済みモデルをダウンロードします。以下のURLからダウンロードしてください。
1つ目はデフォルトのモデル。
https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth
2つ目はアニメ画像に特化したモデルです。
https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth
ダウンロードした学習済みモデルを以下のディレクトリに配置します。
(Real-ESRGANが格納されているディレクトリ)\Real-ESRGAN\weights
Real-ESRGANの推論を実行する
先ほどダウンロードしたReal-ESRGANのリポジトリと学習済みモデルを使って実際に高画質化を行います。
推論を実行するためのコマンドは以下となります。オプションの「-i」は入力したい画像ファイルが格納されるディレクトリ、「-n」が使用するモデルとなります。
./realesrgan-ncnn-vulkan.exe -i input -n model_name
その他のパラメータについては以下を参照してください。
https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan#computer-usages
また、私の環境では以下のようなエラーが発生したため、解決方法も記載しておきます。
発生したエラー 1つ目
AttributeError: 'NoneType' object has no attribute 'shape'
こちらは初期状態で「input」の中にフォルダが含まれているため発生するようです。
input内のフォルダを削除すると解消されました。
発生したエラー 2つ目
Error "slow_conv2d_cpu" not implemented for 'Half'
If you encounter CUDA out of memory, try to set --tile with a smaller number.
CUDAが使用できないノートPCなどで実行すると発生するようです。
CPUのみで処理する場合は「–fp32」のオプションを指定してください。
python inference_realesrgan.py -n RealESRGAN_x4plus_anime_6B -i inputs --fp32
実行結果
まずはReal-ESRGANにデフォルトで入っているサンプルを試してみます。
サンプルは2次元キャラなので「RealESRGAN_x4plus_anime_6B」を使用します。
python inference_realesrgan.py -n RealESRGAN_x4plus_anime_6B -i inputs --fp32
実行前
Real-ESRGANでの高解像度化前の画像がこちらです。
画像サイズが小さく、圧縮されているため画像が劣化しています。
実行後
Real-ESRGANで推論を実行し、高解像度化された後の画像です。
画像サイズが大きくなり、綺麗になっています。特に猫の輪郭周りの劣化していた部分を比較すると良くわかるかと思います。
Stable Diffusion(Waifu Diffusion)で生成した画像を高解像度化
最後にStable Diffusionを使って生成した画像を、Real-ESRGANで実際に高画質化してみます。
今回、使用する画像はStable Diffusionの2次元用モデル、Waifu Diffusionを使って生成しています。Waifu Diffusionの使い方は以下の記事で解説しています。
実行前
こちらが実行前の画像です。Stable Diffusionのデフォルトサイズの512×512となっています。
実行後
こちらが実行後の画像です。
サイズが2048×2048まで拡大されました。拡大による画質の劣化もなく非常に奇麗です。
Stable Diffusionのテクニックを効率よく学ぶには?
Stable Diffusionを使ってみたいけど、ネットで調べた情報を試してもうまくいかない…
そんな時は、操作方法の説明が動画で見られるUdemyがおすすめだよ!
動画学習プラットフォームUdemyでは、画像生成AIで高品質なイラストを生成する方法や、AIの内部で使われているアルゴリズムについて学べる講座が用意されています。
Udemyは講座単体で購入できるため安価で(セール時1500円くらいから購入できます)、PCが無くてもスマホでいつでもどこでも手軽に学習できます。
Stable Diffusionに特化して学ぶ
Stable Diffusionに特化し、クラウドコンピューティングサービスPaperspaceでの環境構築方法から、モデルのマージ方法、ControlNetを使った構図のコントロールなど、中級者以上のレベルを目指したい方に最適な講座です。
画像生成AIの仕組みを学ぶ
画像生成AIの仕組みについて学びたい方には、以下の講座がおすすめです。
画像生成AIで使用される変分オートエンコーダやGANのアーキテクチャを理解することで、よりクオリティの高いイラストを生成することができます。
まとめ
今回はStable Diffusionで生成した画像をReal-ESRGANで高画質化できるかを試してみました。一番の目的は画像サイズを大きくすることですが、4倍の画像サイズになり画質も非常に奇麗でしたので、十分実用できるかと思いました。
「Stable Diffusionでもっと大きい画像を作りたい!」と思っている方にはおすすめです。
以下のページで自然言語処理モデルGPT-3を使ったライティングツールCatchyで、Stable DiffusionのPromptを自動生成する方法について解説していますので、あわせてご覧ください。
また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。
スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。
それでは、また次の記事でお会いしましょう。
コメント