Stable Diffusionで生成した画像をReal-ESRGANを使って高画質化する方法

  • URLをコピーしました!

※本ページはアフィリエイト広告を利用しています

今回は画像を高画質化できる機械学習モデル、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の使い方は以下の記事で解説しています。

著:深津 貴之, 著:水野 祐, 著:酒井 麻里子
¥825 (2024/07/11 20:57時点 | Amazon調べ)

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
著:深津 貴之, 著:水野 祐, 著:酒井 麻里子
¥825 (2024/07/11 20:57時点 | Amazon調べ)

実行結果

まずは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まで拡大されました。拡大による画質の劣化もなく非常に奇麗です。

推論実行後
著:深津 貴之, 著:水野 祐, 著:酒井 麻里子
¥825 (2024/07/11 20:57時点 | Amazon調べ)

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

カピパラのエンジニア

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

猫のエンジニア

そんな時は、操作方法の説明が動画で見られるUdemyがおすすめだよ!

動画学習プラットフォームUdemyでは、画像生成AIで高品質なイラストを生成する方法や、AIの内部で使われているアルゴリズムについて学べる講座が用意されています。

Udemyは講座単体で購入できるため安価で(セール時1500円くらいから購入できます)、PCが無くてもスマホでいつでもどこでも手軽に学習できます。

Stable Diffusionに特化して学ぶ

Stable Diffusionに特化し、クラウドコンピューティングサービスPaperspaceでの環境構築方法から、モデルのマージ方法、ControlNetを使った構図のコントロールなど、中級者以上のレベルを目指したい方に最適な講座です。

icon icon ジェネレーティブAI(画像生成AI)入門【Stable Diffusion】-プロンプトでハイクオリティな画像制作が可能 icon

画像生成AIの仕組みを学ぶ

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

icon icon AIによる画像生成を学ぼう!【VAE / GAN】 -Google ColabとPyTorchで基礎から学ぶ生成モデル- icon

まとめ

今回はStable Diffusionで生成した画像をReal-ESRGANで高画質化できるかを試してみました。一番の目的は画像サイズを大きくすることですが、4倍の画像サイズになり画質も非常に奇麗でしたので、十分実用できるかと思いました。
「Stable Diffusionでもっと大きい画像を作りたい!」と思っている方にはおすすめです。

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

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

スキルアップや副業にぜひ活用してみてください。

スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。

講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。

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

参考

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

コメント

コメントする

CAPTCHA


目次