Radeonで使える上にcaffeの上位互換「waifu2x-ncnn-vulkan-GUI-Edition」

PC

少し前に「waifu2x ncnn vulkan」を間接的に導入してみましたが…GUI Editionが気になったので試してみました。

「waifu2x-ncnn-vulkan-GUI-Edition」について

「waifu2x-ncnn-vulkan-GUI-Edition」はwaifu2x-ncnn-vulkanをGUI化して、caffeのように直感的に使えるようにしたソフトウェア。

中身は「waifu2x ncnn vulkan」なので、VulkanAPIを利用してGPU処理を実行するためCUDAを利用するが故に、GPUがNVIDIA製GPUに限られていた「waifu2x-caffe」と違い、Radeon/Intel/NVIDIAのGPUで実行することが可能です。

【GitHubにあったシステム条件】

ダウンロードリンク

どちらも同じwaifu2x-ncnn-vulkanをGUI化したもので、好きな方をダウンロードすれば良いかと。

できることは結局同じです。

導入

GitHubからGUI-Editionのzipファイルをダウンロードし、任意の場所に解凍。waifu2x-caffe同様に、中にある「waifu2x-ncnn-vulkan-gui」のexeファイルを実行。

Windowsが邪魔してくるので無視。

「waifu2x-ncnn-vulkan-gui」のインターフェースが起動します。

「waifu2x-ncnn-vulkan-GUI-Edition」

設定

GUI(グラフィカルユーザインターフェース)が取り入れられたので、waifu2x-caffeのように直感的に扱えるようになりました。

入・出力先の選択、変換時設定はwaifu2x-caffeとほぼ同じ要領で設定できます。

項目内容
出力拡張子・画質設定png/jpg/webp/avifから拡張子を選択

画質は、0~100から入力
変換モード・ノイズ除去と拡大
・拡大
・ノイズ除去
・ノイズ除去(jpgのみ)と拡大
ノイズ除去ノイズ除去のレベルを0~3から指定
(数値が増える程強い)
拡大サイズ・拡大率を指定(倍率は任意)
・横幅を指定(指定した横幅に合わせて拡大)
・縦幅を指定(指定した縦幅に合わせて拡大)
・横幅と縦幅を指定(指定した横・縦幅に合わせて拡大)
モデル・二次元イラスト(CUnet)
・二次元イラスト(UpRGB)
・写真・アニメ(upPhoto)

内容は恐らくcaffeと共通(CUnetでOK)
分割サイズ分割するGPUメモリ消費量を指定

数値を上げることでGPUメモリ消費量が増加し、処理が高速化
size100=1GB程度(らしい)
(恐らくwaifu2x ncnn vulkanのblocksize部分に相当)
デバイス・GPU ID(複数GPUがある場合に、処理を実行するGPUを選択)
・Threads(1回の処理で使える・画像を生成するスレッド数を指定)

・TTA mode(caffeにもあった、画像評価指数を上げるモード)

動作設定

動作の設定です。

項目内容
前回出力したパスを記憶するwaifu2x-ncnn-vulkan-GUIの終了時に出力したパスを記憶
出力ファイルを上書きしない入・出力パスが同一の場合に、拡大元を残したまま上書きせずに出力
処理が終わったら音を鳴らすノイズ除去・拡大処理後にOSのシステム通知音を鳴らしてお知らせ
高精度処理を行うTTA modeとは別枠、fp32モードで処理(違いは分からんです)
アルファチャンネルを
ImageMagickで分割して処理する
アルファチャンネルの分割処理を、GUIEdition同梱のソフトウェアスイート
ImageMagickで処理
縦横比を維持する拡大時に縦横比が崩れないように維持

使ってみる

いつも通りですが…一応、waifu2x-ncnn-vulkan-GUIの実行環境も書いておきます。

waifu2x-caffeの時はGTX 1660sでしたが、waifu2x-ncnn-vulkanならRadeonでも使えることが分かったので、RX 6600 XTに換装しました。

CPURyzen 7 3700X@4.2GHz(1.3V)クロック固定
CPUクーラーAMD純正 Wraith PRISM
マザーボードB450 STEELE LEGEND(P4.20)
メモリ8GB×4(DDR4-3,200MHz)
PATRIOT VIPERSTEELE
GPUASRock Radeon RX 6600 XT Challenger D 8GB OC
SSDSamsung 980 1TB(PCIe 3.0×4)
Samsung 860 EVO 1TB(SATA 3)
電源ユニット650W(80+Bronze)
玄人志向 KRPW-BK650W/85+
OSWindows 11 Pro(21H2)

waifu2x-ncnn-vulkan-guiは画像の設定に変更、同時実行スレッドは5。

pixivから持ってきた尊い画像10枚を、waifu2x-ncnn-vulkanで拡大した時に1440×2560(WQHD)になるように「Caesium」で720×1280に一括リサイズ。

10枚の画像をCUnet、分割サイズ100、スレッド5にてRX 6600 XTで処理した時の所要時間は9秒弱でした。

画質はwaifu2x-caffeと違いがなく、非GUIのwaifu2x ncnn vulkanとも差が分かりません。薄っぺらい言い方ですが、waifu2x系統は全部綺麗です。

https://www.pixiv.net/artworks/80315592

720×1280の画像100枚を1440×2560に拡大した場合の所要時間は3分12秒でした。

非GUIのwaifu2x ncnn vulkanで1920×1080から3840×2160に、blocksize150でアップスケールした際の所要時間が2分28秒だったので、1440×2560で3分12秒に増えたのはCUnetと分割サイズが関係してそうです。

かんたんアプコンキットで、間接的にwaifu2x ncnn vulkanを使えるようにして、グルグルしながら作業してましたが、やっぱりGUIの方が手間が少ないですね。

「image-frames」と「image-frames2x」に拡大する画像をぶちこむ手間がなくなったのと、出力パスを1フォルダに絞れて実行スレッドを指定できるので…waifu2x-caffe→アプコンキットと来て、完全にGUI-Editionに乗り換えました。

GPUドライバーに注意(特にRadeon)

【6/22:追記】waifu2x-ncnn-vulkanの出力でエラーが発生するようになりました。

エラー内容を見ても、具体的にどの部分・プロセスでエラってるのかコード的なものはなく、ユーザーのローカルにあるTempファイル表記しかしてくれません。何の関係があるのか私にはさっぱり。

SAMやシステムメモリのクロックが、定格ではなく3200MhzのOCメモリかつ4枚刺しなど、色々原因が考えられるので一度をBIOSリセットしました。

が…駄目。GPU本体が逝った可能性もありますが、ゲームや動画視聴などでは不具合の兆候はなく「waifu2x-ncnn-vulkan-GUI-Edition」出力でのみエラーが発生するので、GPUが逝ったのであればそもそも動作しないはず。

仕方ないのでAMD Softwareとドライバーのバージョンを、工場リセットありでダウングレードしてみることに。

直りました。最新ドライバーが腐ってたみたいです。

GPUはRDNA以降かなり良い製品が多くなったのに、肝心のソフトウェアやドライバー周りで微妙なのがAMDの典型なので…安易にドライバー更新しない方が良いです。

まぁ…一時期の初期ドライバーを延々と拾ってきて上書きするクソムーブよりは、入れ直せば改善するだけマシですが。

あとがき

waifu2x-caffeと同じ使い勝手ですが、caffeはフォルダをドロップする度に出力するフォルダを勝手に生成するので変換後に空のフォルダが大量に生成されてウザかったです。

「waifu2x-ncnn-vulkan-gui」なら入出力のパスを選択しても、その通りにしか動作しないので無駄なフォルダを生成せず面倒がなくなりました。

AMDはPolaris辺りまでは電気バカ食いのうんこGPUでしたが、GCNを捨ててRDNAに移行してからはマトモ、RDNA2とAmpereではSamsungファブが原因でRTX30xx系はワッパと歩留まりが悪化しましたし。

いつまたNVIDIAがFermi(GTX 480)みたいにズッコケるか、はたまたRadeonが躍進するのか分からんので…CUDAでしか使えないcaffeはもうダメですね。

非GUIのwaifu2x ncnn vulkanで既に試して分かってましたが、vulkan APIで処理するncnn vulkanの方が速いしGPUを選ばないのでかなり優秀です。

コマンド操作のみでGUIでなかったのがネックでしたが「waifu2x-ncnn-vulkan-gui」がある以上、最早NVIDIA製のGPUでしか高速に変換できないwaifu2x-caffeは不要な存在です。