SwinIRで画像を超解像度化する
前回の記事で今月発売予定のカードゲーム「レジサイド」用にプレイマットを作りました。そのときにオフィシャルの背景画像をGoogleの画像検索で探しました。
見つけた画像が少し小さかったので、SwinIRを使って4倍の大きさに超解像度化しました。以下画像の左がダウンロードした画像ファイルで、右側がSwinIRで4倍に超解像度化したものです。スマホ画面ですと拡大しないと分からないかもしれません。
このように超解像度化は画像の解像度を擬似的に上げる技術で、解像度が低い画像の成分の予測に基づいて画像を復元することによって解像度を高めていくことができます。この過程でPytorch+cudaを使います。
SwinIRはNovelAI Diffusionで生成した画像にも使えます。私が使用しているパソコン性能では512*512ピクセルでの画像作成が限界ですが、SwinIRで4倍に超解像化できます。これによって生成した画像の用途が広がるのではないでしょうか。当記事の表紙もNovelAI Diffusionが生成した画像をSwinIRで超解像度しています。
今回はこちらのSwinIRをパソコンで設定して、動かすまでを紹介します。
1. SwinIRの設定方法
今回はWindowsパソコンで実行する方法を紹介します。SwinIRはPytorch+cudaを使いますので、Stable DiffusionかWhisperを動かす環境がパソコンにできていれば、そのまま流用できます。
Pythonの動作環境、cuda、PyTorchの導入につきましては以前の記事「Stable Diffusion を試せる4つの方法」の中で「(4)パソコンを利用する」で紹介させていただいていますので、参照いただけると幸いです。
SwinIRと同様に音声ファイルから文字を起こすWhisperにつきましてもPytorch+cudaで動作します。以前にこちらも紹介させていただいていますのでよろしければ見ていただけると幸いです。
SwinIRはgitからクローンしますので、WindowsパソコンではGitをインストールする必要があります。インストールしていなければこちらからダウンロードしてください。
インストール時にいくつかウィンドウが表示されますが、「Adjusting your PATH environment」を「Use Git from the Windows Command Prompt」を選択します。これでコマンドプロンプトからgitコマンドを実行できます。
ここまで見ていただくと以下の設定が行われていると思います。
Windowsを開発者モードを設定
NVIDIAアカウント / NVIDIA Developer Programメンバーシップに登録
Pythonコードの実行環境
PyTorchが使うCUDAバージョンの確認
CUDA+cuDNNの実行環境
Gitの導入
こちらが完了しましたら、SwinIRのファイルをコピーするディレクトリに移動して以下をコマンドプロンプトかWindows Power Shellに入力、実行します。今回はCドライブ直下に作成したswinirフォルダにSwinIRをクローンしたと仮定します。
cd C:\swinir
git clone https://github.com/JingyunLiang/SwinIR.git
そのほかにSwinIRを動かすために必要なPythonライブラリもインストールします。
pip install opencv-python tqdm timm ipython
2. SwinIRの動作確認
コマンドプロンプトかWindows Power Shellを立ち上げ、SwinIRのPythonプログラムがあるディレクトリに移動します。SwinIRをCドライブ直下に作成したswinirフォルダにクローンしていれば以下のコマンドです。
cd C:\swinir\SwinIR
超解像化する元の画像をまとめたフォルダーを作成します。今回はC:\swinirにpictureフォルダーを作成して、このフォルダーに画像ファイルをコピーします。
この状態で以下のコマンドを実行します。--folder_lqのところは画像を置いたファイルパスですので、ご自身のパソコン環境に応じて変更してください。
python main_test_swinir.py --task real_sr --scale 4 --large_model --model_path model_zoo/swinir/003_realSR_BSRGAN_DFOWMFC_s64w8_SwinIR-L_x4_GAN.pth --folder_lq C:\swinir\picture
エラーなく実行が完了しましたら、SwinIRフォルダのresultフォルダ内に超解像度化した画像ファイルが生成されます。
途中でCUDAのエラーが発生した場合にはグラフィックカードの性能が不足している可能性がありますので、画像を切り取る、縮小するなどを行うと解消できる可能性があります。
個人的にはnoteの表紙絵で非常に重宝しており、過去記事のいくつかは画像を差し替えました。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?