2023/04/19(水) [n年前の日記]
#1 [cg_tools] 画像拡大ツールをもう少し試用してみた
_昨日、
各種画像拡大ツールを試用してみたけれど、せっかくだから実験結果の画像群をアップロードしてみる。やはり画像を見てみないと判断がつかないだろうし…。
環境は、Windows10 x64 22H2。CPU : AMD Ryzen 5 5600X。RAM : 16GB。GPU : NVIDIA GeForce GXT 1060 6GB。
使用ツールは以下。
_GitHub - Djdefrag/NiceScaler: NiceScaler - image/video deeplearning upscaler (OpenCV)
_GitHub - upscayl/upscayl: Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy.
_GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI
_samj Creations: GIMP 2.10.32 Portable 32 bits et 64 bits Win
_IrfanView - Official Homepage - One of the Most Popular Viewers Worldwide
環境は、Windows10 x64 22H2。CPU : AMD Ryzen 5 5600X。RAM : 16GB。GPU : NVIDIA GeForce GXT 1060 6GB。
使用ツールは以下。
- NiceScaler 1.13
- Upscayl 2.0.1
- Stable Diffusion web UI
- GIMP 2.10.32 x64 Portable samj版
- IrfanView 4.62 32bit
_GitHub - Djdefrag/NiceScaler: NiceScaler - image/video deeplearning upscaler (OpenCV)
_GitHub - upscayl/upscayl: Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy.
_GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI
_samj Creations: GIMP 2.10.32 Portable 32 bits et 64 bits Win
_IrfanView - Official Homepage - One of the Most Popular Viewers Worldwide
◎ 元画像について :
まずは元画像。Stable Diffusion web UI と、museV1_v1.safetensors という学習モデルデータを使って生成してみた。512x512の画像。
_00_img_orig.png
これを、GIMP 2.10.32 を使って、キュービック(Bicubic?)で4/1に縮小。128x128の画像にした。
この128x128の画像を、縦横4倍、512x512の画像に拡大してみる。さて、どうなるか。
parameters 1 asian girl, masterpiece, best quality, photo realistic, realistic, ultra high res, 8k, RAW photo, High detail RAW color photo, professional photograph, smile, looking at viewer, beautiful face, cute eyes, cowboy shot, school uniform, dynamic lighting, dynamic pose, Negative prompt: painting, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowers, ((monochrome)), ((grayscale)), bad hands, bad arms, missing fingers, missing arms, missing hands, bad anatomy, bas legs, nsfw, Steps: 40, Sampler: DPM++ SDE Karras, CFG scale: 5, Seed: 2968748192, Face restoration: CodeFormer, Size: 512x512, Model hash: 84a23b651d, Model: museV1_v1
これを、GIMP 2.10.32 を使って、キュービック(Bicubic?)で4/1に縮小。128x128の画像にした。
この128x128の画像を、縦横4倍、512x512の画像に拡大してみる。さて、どうなるか。
◎ 結果画像一覧 :
GIMP 2.10.32 + Nearest neighbor で拡大。
1x1ドットが4x4ドットに単純に引き延ばされてる。処理の速さだけが取り柄だなと…。
GIMP 2.10.32 + Bilinear で拡大。
GIMP 2.10.32 + Bicubic で拡大。
BilinearとBicubicは、あまり変わらない気がする…。本当に GIMP はそのアルゴリズムを使っているのだろうか。 *1 別のツールを使ったほうが良かったのかな…?
何にせよ、AIを使わない、既存の拡大アルゴリズムでは、大体こんな感じのぼやけた結果しか得られない。
NiceScaler 1.13 + ESPCN x4 で拡大。
NiceScaler 1.13 + FSRCNN x4 で拡大。
NiceScaler 1.13 + LapSRN x4 で拡大。
NiceScaler 1.13 + EDSR x4 で拡大。
EDSR は、他のアルゴリズムと比べて、10〜20倍ほど処理時間がかかった。そのせいか、若干精細な結果を出せている気がする。
Upscayl 2.0.1 + RealESRGAN-x4+ で拡大。
Upscayl 2.0.1 + Remacri x4 で拡大。
Remacri が極めて優秀なのではなかろうか…。
Stable Diffusion web UI + Extras + ESRGAN で拡大。
背景部分はどのアルゴリズムよりも精細さがあるけれど、人物の輪郭部分や画像端に謎の二重線が出始めている。自然物を相手にする時は使えるのかもしれない…?
Stable Diffusion web UI + Extras + R-ESRGAN-4x+ で拡大。
Stable Diffusion web UI + Extras + SwinIR_4x で拡大。
Stable Diffusion web UI + Extras + LDSR で拡大。
LDSR は、他のアルゴリズムと比べると、とんでもなく時間がかかった。その代わり、かなり精細な結果をだしてきたように見える。
Stable Diffusion web UI + Extras + R-ESRGAN-4x+ + SwinIR_x4 で拡大。
Stable Diffusion web UIは、Upscaler を2種類指定することができるので試してみた。しかし、劇的な効果は得られなかった。ただ、選ぶアルゴリズムの組み合わせによっては大化けしそうな気もする…。
Stable Diffusion web UI + Extras + R-ESRGAN-4x+ + SwinIR_x4 + GFPGAN 1.0 + CodeFormer 1.0 で拡大。
Stable Diffusion web UIは、顔部分を修復できる、GFPGAN、CodeFormer を使うこともできる。顔の部分だけに注目すると、グンと精細さが増している。ただし、顔以外は今までとほとんど違いは無い。
余談。Upscayl + Remacri の結果が優秀だったので、試しに、その結果画像に対して再度 Remacri をかけてみて(元画像から16倍、2048x2048の画像にして)、そこから IrfanView + Lanczos で 4/1 に(512x512の画像に)縮小してみた。
1x1ドットが4x4ドットに単純に引き延ばされてる。処理の速さだけが取り柄だなと…。
GIMP 2.10.32 + Bilinear で拡大。
GIMP 2.10.32 + Bicubic で拡大。
BilinearとBicubicは、あまり変わらない気がする…。本当に GIMP はそのアルゴリズムを使っているのだろうか。 *1 別のツールを使ったほうが良かったのかな…?
何にせよ、AIを使わない、既存の拡大アルゴリズムでは、大体こんな感じのぼやけた結果しか得られない。
NiceScaler 1.13 + ESPCN x4 で拡大。
NiceScaler 1.13 + FSRCNN x4 で拡大。
NiceScaler 1.13 + LapSRN x4 で拡大。
NiceScaler 1.13 + EDSR x4 で拡大。
EDSR は、他のアルゴリズムと比べて、10〜20倍ほど処理時間がかかった。そのせいか、若干精細な結果を出せている気がする。
Upscayl 2.0.1 + RealESRGAN-x4+ で拡大。
Upscayl 2.0.1 + Remacri x4 で拡大。
Remacri が極めて優秀なのではなかろうか…。
Stable Diffusion web UI + Extras + ESRGAN で拡大。
背景部分はどのアルゴリズムよりも精細さがあるけれど、人物の輪郭部分や画像端に謎の二重線が出始めている。自然物を相手にする時は使えるのかもしれない…?
Stable Diffusion web UI + Extras + R-ESRGAN-4x+ で拡大。
Stable Diffusion web UI + Extras + SwinIR_4x で拡大。
Stable Diffusion web UI + Extras + LDSR で拡大。
LDSR は、他のアルゴリズムと比べると、とんでもなく時間がかかった。その代わり、かなり精細な結果をだしてきたように見える。
Stable Diffusion web UI + Extras + R-ESRGAN-4x+ + SwinIR_x4 で拡大。
Stable Diffusion web UIは、Upscaler を2種類指定することができるので試してみた。しかし、劇的な効果は得られなかった。ただ、選ぶアルゴリズムの組み合わせによっては大化けしそうな気もする…。
Stable Diffusion web UI + Extras + R-ESRGAN-4x+ + SwinIR_x4 + GFPGAN 1.0 + CodeFormer 1.0 で拡大。
Stable Diffusion web UIは、顔部分を修復できる、GFPGAN、CodeFormer を使うこともできる。顔の部分だけに注目すると、グンと精細さが増している。ただし、顔以外は今までとほとんど違いは無い。
余談。Upscayl + Remacri の結果が優秀だったので、試しに、その結果画像に対して再度 Remacri をかけてみて(元画像から16倍、2048x2048の画像にして)、そこから IrfanView + Lanczos で 4/1 に(512x512の画像に)縮小してみた。
◎ 雑感 :
既存のアルゴリズム、Nearest neighbor、Bilinear、Bicubic はともかくとして、それ以外、AIを使って拡大するツールのアルゴリズムは、どれも比較的良い結果を出しているような気がする。
何せ、元画像が128x128。「それ、只のサムネイル画像じゃん」状態。なのに、それらしい画像を出力できているわけで…。
ざっと眺めた感じでは、Upscayl + Remacri の結果が、群を抜いてそれっぽくなっているように思えた。
以下に、オリジナル画像と Remacri の結果画像を再掲してみるけれど、サムネイル画像モドキからここまで復元できたのだからスゴイ気がする…。
拡大処理前の画像が、コレですからね…。
もっとも、Remacri の結果画像を拡大して眺めると、もはや写真ではなく、完全に絵になっている印象も受けた。例えば、以下は Remacri を2回かけた 2048x2048の画像だけど、ほとんどの部分がぬるっとした見た目になっている。これはもう絵だなと…。
_22_img_remacri_x4x4_upscayl.jpg
何せ、元画像が128x128。「それ、只のサムネイル画像じゃん」状態。なのに、それらしい画像を出力できているわけで…。
ざっと眺めた感じでは、Upscayl + Remacri の結果が、群を抜いてそれっぽくなっているように思えた。
以下に、オリジナル画像と Remacri の結果画像を再掲してみるけれど、サムネイル画像モドキからここまで復元できたのだからスゴイ気がする…。
拡大処理前の画像が、コレですからね…。
もっとも、Remacri の結果画像を拡大して眺めると、もはや写真ではなく、完全に絵になっている印象も受けた。例えば、以下は Remacri を2回かけた 2048x2048の画像だけど、ほとんどの部分がぬるっとした見た目になっている。これはもう絵だなと…。
_22_img_remacri_x4x4_upscayl.jpg
◎ 画像へのリンク :
一応、各画像へのリンクも貼っておきます。
_00_img_orig.png
_01_img_orig.png
_02_img_quarter_gimp210.png
_03_img_nearest_neighbor_x4_gimp210.png
_04_img_bilinear_x4_gimp210.png
_05_img_bicubic_x4_gimp210.png
_06_img_espcn_x4_nicescaler.png
_07_img_fsrcnn_x4_nicescaler.png
_08_img_lapsrn_x4_nicescaler.png
_09_img_edsr_x4_nicescaler.png
_10_img_realesrgan-x4plus_x4_upscayl.png
_11_img_remacri_x4_upscayl.png
_12_img_esrgan_x4_sdwebui.png
_13_img_r-esrgan-4xplus_x4_sdwebui.png
_14_img_swinir_x4_sdwebui.png
_15_img_ldsr_x4_sdwebui.png
_15_img_r-esrgan-4xplus_swinir_x4_sdwebui.png
_16_img_r-esrgan-4xplus_swinir_gfpgan_x4_sdwebui.png
_22_img_remacri_x4x4_upscayl.jpg
_23_img_remacri_x4x4_upscayl_x025lanczos_irfan.png
_00_img_orig.png
_01_img_orig.png
_02_img_quarter_gimp210.png
_03_img_nearest_neighbor_x4_gimp210.png
_04_img_bilinear_x4_gimp210.png
_05_img_bicubic_x4_gimp210.png
_06_img_espcn_x4_nicescaler.png
_07_img_fsrcnn_x4_nicescaler.png
_08_img_lapsrn_x4_nicescaler.png
_09_img_edsr_x4_nicescaler.png
_10_img_realesrgan-x4plus_x4_upscayl.png
_11_img_remacri_x4_upscayl.png
_12_img_esrgan_x4_sdwebui.png
_13_img_r-esrgan-4xplus_x4_sdwebui.png
_14_img_swinir_x4_sdwebui.png
_15_img_ldsr_x4_sdwebui.png
_15_img_r-esrgan-4xplus_swinir_x4_sdwebui.png
_16_img_r-esrgan-4xplus_swinir_gfpgan_x4_sdwebui.png
_22_img_remacri_x4x4_upscayl.jpg
_23_img_remacri_x4x4_upscayl_x025lanczos_irfan.png
*1: 昔のGIMPには、表記されてるアルゴリズム名と違うアルゴリズムを実際には使っていたというバグがあった気がする。
[ ツッコむ ]
#2 [zatta] 日記をアップロード
2023/03/22から日記をアップロードしてなかったのでアップロード。
[ ツッコむ ]
以上、1 日分です。