2023/04/18(火) [n年前の日記]
#1 [cg_tools] 画像ビューア XnView について調べてた
XnView (Classic) という画像ビューワは、各画像に対して、5段階の中からレーティングをつけて、レーティング順でサムネイル一覧を表示したりすることができる。
_The Best Windows Photo Viewer, Image Resizer and Batch Converter - XnView
_「XnView」エクスプローラー型画像ビューワー - 窓の杜
_XnView のダウンロード - k本的に無料ソフト・フリーソフト
ただ、このレーティング情報は、一体どこに記録されるのか、そのあたりが気になった。もし、画像ファイルの中に埋め込む形で実現しているなら、Stable Diffusion web UI で生成したpng画像の中身を微妙に破壊してしまって、後からプロンプト情報を取り出せなくなるかもしれないなと…。
そのあたりの仕組みについてググってたら、以下の記事に遭遇。
_日常のメモ XnViewMPのデータベースをいじる
XnView ではなくて、XnViewMP の話ではあるけど、画像ではなく、SQLite用のデータベースファイルに記録されるようだなと…。であれば、安心して使えそうかな…。確認してないけれど、おそらく XnView (Classic) も同様なのではあるまいか。分らんけど。
_The Best Windows Photo Viewer, Image Resizer and Batch Converter - XnView
_「XnView」エクスプローラー型画像ビューワー - 窓の杜
_XnView のダウンロード - k本的に無料ソフト・フリーソフト
ただ、このレーティング情報は、一体どこに記録されるのか、そのあたりが気になった。もし、画像ファイルの中に埋め込む形で実現しているなら、Stable Diffusion web UI で生成したpng画像の中身を微妙に破壊してしまって、後からプロンプト情報を取り出せなくなるかもしれないなと…。
そのあたりの仕組みについてググってたら、以下の記事に遭遇。
_日常のメモ XnViewMPのデータベースをいじる
カテゴリやレーティングなどのデータは XnView.db に記録される。
SQLite で管理されているので中を調べてみた。
XnView ではなくて、XnViewMP の話ではあるけど、画像ではなく、SQLite用のデータベースファイルに記録されるようだなと…。であれば、安心して使えそうかな…。確認してないけれど、おそらく XnView (Classic) も同様なのではあるまいか。分らんけど。
◎ 表示画質がよろしくない :
XnView (Classic) 2.51.2 を使って、512x512 の画像を拡大しつつ全画面表示すると、表示画質が荒れるというか、ボケるというか、とにかく見た目があまりよろしくないことに気づいた。
設定を眺めてみたけど、拡大表示する際のアルゴリズムを選んだりはできないようだなと…。
一応、設定ダイアログ → 表示 → 「表示」タブの中に、「高画質ズーム(低速)」という項目があって、「縮小」「拡大」「アニメーションGIFに適用」のそれぞれにチェックを入れられるようではあった。この「拡大」にチェックを入れると、拡大表示をする際も多少はマシな見た目になる模様。ただ、それでもイマイチ…。
仕方ないので、同じ設定画面の中の、「シャープ化を使用」にチェックを入れて有効化してみた。値は35。
ところで、XnView は拡大縮小表示時のアルゴリズムを選べないけれど、XnViewMP 1.4.3 なら色々なアルゴリズムを選べるように見えた。設定ダイアログ → 表示 → 「表示」タブの中に、「高ズーム画質」という項目があって、「Spline36」「Lanczos 3」「Lanczos 4」等々が選べる。
_Lanczos(ランチョス法)【ついでにSpline36】 | Rain or Shine
_リサイズ設定 - Nilposoft
_AviUtl使用フィルタ紹介(リサイズ系) ちりとまとチャンネル
XnViewMP のほうが、見た感じでは良さそうな表示をしてくれるような気がする…。今まで XnView をちょくちょく使ってたけど、XnViewMP への移行を意識したほうがいいのかもしれない。
まあ、両方インストールしておいて、XnViewMP では機能が足りないなと思った時だけ、XnView を使えば済むかな…。
設定を眺めてみたけど、拡大表示する際のアルゴリズムを選んだりはできないようだなと…。
一応、設定ダイアログ → 表示 → 「表示」タブの中に、「高画質ズーム(低速)」という項目があって、「縮小」「拡大」「アニメーションGIFに適用」のそれぞれにチェックを入れられるようではあった。この「拡大」にチェックを入れると、拡大表示をする際も多少はマシな見た目になる模様。ただ、それでもイマイチ…。
仕方ないので、同じ設定画面の中の、「シャープ化を使用」にチェックを入れて有効化してみた。値は35。
ところで、XnView は拡大縮小表示時のアルゴリズムを選べないけれど、XnViewMP 1.4.3 なら色々なアルゴリズムを選べるように見えた。設定ダイアログ → 表示 → 「表示」タブの中に、「高ズーム画質」という項目があって、「Spline36」「Lanczos 3」「Lanczos 4」等々が選べる。
_Lanczos(ランチョス法)【ついでにSpline36】 | Rain or Shine
_リサイズ設定 - Nilposoft
_AviUtl使用フィルタ紹介(リサイズ系) ちりとまとチャンネル
XnViewMP のほうが、見た感じでは良さそうな表示をしてくれるような気がする…。今まで XnView をちょくちょく使ってたけど、XnViewMP への移行を意識したほうがいいのかもしれない。
まあ、両方インストールしておいて、XnViewMP では機能が足りないなと思った時だけ、XnView を使えば済むかな…。
[ ツッコむ ]
#2 [prog] Pandocに渡すgithub風cssについて
Pandocというツールを使うと、Markdownファイルをhtmlに変換できる。その際、github風の見た目になるcssを指定することで、出力されるhtmlをgithub風にすることができるのだけど。
昔の解説記事で紹介されていた件のcssは、一部で画像を使っていて、しかし、その画像の入手先URLが今では違ってしまったようで、画像を入手できなくてちょっと困ってしまった。
諦めきれずにググってたら、github上に置いてくれていた方が居たようで。ありがたや。助かった。ということでメモ。
_pandoc-md2github1html/css at master - tukiyo/pandoc-md2github1html - GitHub
上記のページから、以下の3つのファイルを入手できる。
ちなみに、Pandoc を使った、gfm (github上で規定されてるMarkdown風記法)からhtml5への変換は以下。
昔の解説記事で紹介されていた件のcssは、一部で画像を使っていて、しかし、その画像の入手先URLが今では違ってしまったようで、画像を入手できなくてちょっと困ってしまった。
諦めきれずにググってたら、github上に置いてくれていた方が居たようで。ありがたや。助かった。ということでメモ。
_pandoc-md2github1html/css at master - tukiyo/pandoc-md2github1html - GitHub
上記のページから、以下の3つのファイルを入手できる。
- dirty-shade.png
- github.css
- para.png
ちなみに、Pandoc を使った、gfm (github上で規定されてるMarkdown風記法)からhtml5への変換は以下。
pandoc hoge.md -f gfm -t html5 -s --self-contained -c github.css -o hoge.html
- hoge.md : 入力ファイル名。
- -f gfm : 入力ファイルがgfm形式であると指定。
- -t html5 : 出力ファイルがhtml5であると指定。
- -s : Standaloneのs。html文書として完結してる状態で出力。これをつけないと、htmlタグやbodyタグが無い状態で出力されてしまう。
- --self-contained : css や画像ファイルを内包したhtmlファイルとして出力。
- -c github.css : cssを指定。この場合、github.css を使えと指定している。
- -o hoge.html : 出力ファイル名の指定。
◎ css内に画像を含めたい :
コレって、画像が別ファイルとして必要になっているけれど、css内に画像を含めておくことはできないのだろうか。
ググってみたら、Data URI scheme という技があるらしい。画像をbase64に変換して、"data:image/png;base64,..." と記述することで内包できるのだとか。
_表示速度改善 Data URIスキーム | 前編 仕組みとメリット
_Data URLスキームとは何なのか?便利な理由と扱うときの注意点 | PisukeCode - Web開発まとめ
_CSSのbackgroundに画像を直接埋め込む方法 | HTML・CSS・JavaScriptのテクニック集 | Webサイト制作支援 | ShanaBrian Website
_Data URI scheme - Wikipedia
画像をbase64に変換する作業は、以下のページを使わせてもらった。ありがたや。
_画像をData URI schemeでテキストに変換するツール - PEKO STEP
つまり、前述の github.css の中で、以下のように記述すれば画像ファイルを別途用意しなくて済む、ということになるのだろうか。
試してみたところ、hrタグの見た目はたしかに変わったけれど…。h1 や h2 タグの周辺は、どう記述すればいいのか…。
ググってみたら、Data URI scheme という技があるらしい。画像をbase64に変換して、"data:image/png;base64,..." と記述することで内包できるのだとか。
_表示速度改善 Data URIスキーム | 前編 仕組みとメリット
_Data URLスキームとは何なのか?便利な理由と扱うときの注意点 | PisukeCode - Web開発まとめ
_CSSのbackgroundに画像を直接埋め込む方法 | HTML・CSS・JavaScriptのテクニック集 | Webサイト制作支援 | ShanaBrian Website
_Data URI scheme - Wikipedia
画像をbase64に変換する作業は、以下のページを使わせてもらった。ありがたや。
_画像をData URI schemeでテキストに変換するツール - PEKO STEP
つまり、前述の github.css の中で、以下のように記述すれば画像ファイルを別途用意しなくて済む、ということになるのだろうか。
h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor { /* background: url("para.png") no-repeat 10px center; */ background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAZ0lEQVQ4T2NkoBAwUqifAZsBgkBDZwJxKBbDK4Bincji2AzYDVTggqQIpAYkdg+I09ENRTdACajgLpoi+hoAspwiL4AMAHljFRAbQ71CkheQvZ8GjY1RAxjAqZXohETVQCQqn1GcGwEpnyMREv2DmQAAAABJRU5ErkJggg==") no-repeat 10px center; text-decoration: none; }
hr { /* background: transparent url("dirty-shade.png") repeat-x 0 0; */ background: transparent url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAIklEQVQIW2NkQAXGMC4jkjhcECh2FiaBIghSDJLAEARJAABzRgM4pXO10AAAAABJRU5ErkJggg==") repeat-x 0 0; border: 0 none; color: #cccccc; height: 4px; padding: 0; }
試してみたところ、hrタグの見た目はたしかに変わったけれど…。h1 や h2 タグの周辺は、どう記述すればいいのか…。
[ ツッコむ ]
#3 [cg_tools] 画像拡大ツールを試用
Stable Diffusion web UIで画像を生成する際、512x512で出力しているのだけど、ちょっと画像サイズが小さい気がしてきた。Stable Diffusion web UIは512x512に最適化して作られているという話をどこかで見かけたので、そういうことなら合わせておいたほうがいいかなと、そのサイズにしているのだけど…。
そんなわけで、画像拡大ツールを試しに使ってみようかなと。
Stable Diffusion web UI にも画像拡大ツールは入ってる。Extrasタブを選択すれば、色々なアルゴリズムを選んで画像拡大ができるし、txt2img を使う場合も Hires.fix という機能が使える。
ただ、それとは別に、画像拡大処理を専門にしているツールのほうが元画像に近い結果を得られるかもしれないと思えてきたので、そのあたりも使ってみることにした。
環境は、AMD Ryzen 5 5600X + GeForce GTX 1060 6GB。RAM 16GB。Windows10 x64 22H2。
そんなわけで、画像拡大ツールを試しに使ってみようかなと。
Stable Diffusion web UI にも画像拡大ツールは入ってる。Extrasタブを選択すれば、色々なアルゴリズムを選んで画像拡大ができるし、txt2img を使う場合も Hires.fix という機能が使える。
ただ、それとは別に、画像拡大処理を専門にしているツールのほうが元画像に近い結果を得られるかもしれないと思えてきたので、そのあたりも使ってみることにした。
環境は、AMD Ryzen 5 5600X + GeForce GTX 1060 6GB。RAM 16GB。Windows10 x64 22H2。
◎ NiceScalerを試用 :
NiceScaler というツールがあるらしい。AIで学習した結果に基づいて拡大処理をしてくれる模様。
_GitHub - Djdefrag/NiceScaler: NiceScaler - image/video deeplearning upscaler (OpenCV)
_NiceScaler のダウンロードと使い方 - k本的に無料ソフト・フリーソフト
_AIで写真を一番きれいに拡大するのはどれ?「NiceScaler」「Real-ESRGAN」「Upscayl」 - パソコン鳥のブログ
_画像や動画をAIが高画質にしてくれるソフト 『NiceScaler』 | PCあれこれ探索
_画質を落とさずに、拡大!AI画像加工ソフト「NiceScaler」 |
2倍に拡大した結果は、かなりイイ感じに見えた。写真画像の拡大には向いているという話を見かけたけれど、たしかにヨサゲ。ちなみに、512x512 を、2倍の 1024x1024 にした場合、以下の処理時間になった。
アルゴリズムは色々選べるけれど、各アルゴリズムがどういうものなのかは、以下のページが参考になった。
_【Intern CV Report】超解像の歴史探訪 -2016年編- - Sansan Tech Blog
_コンピュータビジョンの最新論文調査 Single Image Super-Resolution 前編 | BLOG - DeNA Engineering
上記の記事によると…。
_GitHub - Djdefrag/NiceScaler: NiceScaler - image/video deeplearning upscaler (OpenCV)
_NiceScaler のダウンロードと使い方 - k本的に無料ソフト・フリーソフト
_AIで写真を一番きれいに拡大するのはどれ?「NiceScaler」「Real-ESRGAN」「Upscayl」 - パソコン鳥のブログ
_画像や動画をAIが高画質にしてくれるソフト 『NiceScaler』 | PCあれこれ探索
_画質を落とさずに、拡大!AI画像加工ソフト「NiceScaler」 |
2倍に拡大した結果は、かなりイイ感じに見えた。写真画像の拡大には向いているという話を見かけたけれど、たしかにヨサゲ。ちなみに、512x512 を、2倍の 1024x1024 にした場合、以下の処理時間になった。
- ESPCN と FSRCNN は2秒ほどで処理が終わった。
- LapSRN は3秒。
- EDSRはめっちゃ時間がかかって、127秒。
アルゴリズムは色々選べるけれど、各アルゴリズムがどういうものなのかは、以下のページが参考になった。
_【Intern CV Report】超解像の歴史探訪 -2016年編- - Sansan Tech Blog
_コンピュータビジョンの最新論文調査 Single Image Super-Resolution 前編 | BLOG - DeNA Engineering
上記の記事によると…。
- ESPCN と FSRCNN は、SRCNN というアルゴリズムをそれぞれ別のやり方で高速化したアルゴリズム。
- EDSR は、ESPCN や FSRCNN で得られた知見から SRResNet が作られて、その SRResNet よりも高精細さを追求したアルゴリズム。
◎ Upscaylを試用 :
Upscayl というツールもあるらしい。これも、AIで学習した結果に基づいて拡大処理をしてくれる。
_GitHub - upscayl/upscayl: Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy.
_Upscayl のダウンロードと使い方 - k本的に無料ソフト・フリーソフト
_無料で簡単にAIで低画質な画像を高画質に4倍アップコンバートできる「Upscayl」を使ってみた - GIGAZINE
_AIでディテールを保ったまま画像を拡大する無償ツール「Upscayl」がv2.0.0に - 窓の杜
_AI…とりあえず高画質化ツールを入れてみた、という話 - FURYU Tech Blog - フリュー株式会社
こちらは、4倍に拡大することしかできないらしい。試してみたところ、こちらも数秒で結果を生成してくれた。
Real-ESRGAN はアニメっぽくのっぺりした結果になった。人物の肌などはつるんとしていて、奇麗な見た目ではあるのだけど…。Remacri はシャープさが増したけれど、画像の明るさ? 色? が大きく変化した。
_GitHub - upscayl/upscayl: Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy.
_Upscayl のダウンロードと使い方 - k本的に無料ソフト・フリーソフト
_無料で簡単にAIで低画質な画像を高画質に4倍アップコンバートできる「Upscayl」を使ってみた - GIGAZINE
_AIでディテールを保ったまま画像を拡大する無償ツール「Upscayl」がv2.0.0に - 窓の杜
_AI…とりあえず高画質化ツールを入れてみた、という話 - FURYU Tech Blog - フリュー株式会社
こちらは、4倍に拡大することしかできないらしい。試してみたところ、こちらも数秒で結果を生成してくれた。
Real-ESRGAN はアニメっぽくのっぺりした結果になった。人物の肌などはつるんとしていて、奇麗な見た目ではあるのだけど…。Remacri はシャープさが増したけれど、画像の明るさ? 色? が大きく変化した。
◎ Stable Diffusion web UIのExtrasを試用 :
Stable Diffusion web UIのExtrasでも拡大処理ができるので試用してみた。
Upscaler 1 と Upscaler 2 の2つを重ね掛けすることができるらしい。パラメータは以下。
アルゴリズムは以下が選べる。
とりあえず SwinIR_4x を使ってみた。パラメータは全部0。2倍拡大でも精細さは NiceScaler の処理結果より高いように感じた。ただ、肌はアニメっぽくのっぺりしてしまう…。いやまあ、美肌云々を求めてるならこれでいいのだろうけど…。
アルゴリズムによる結果の違いは、以下が参考になりそう。
_Stable DiffusionのUpscalerの各メソッド比較|Nobu|note
Upscaler 1 と Upscaler 2 の2つを重ね掛けすることができるらしい。パラメータは以下。
- Upscaler 2 visibility
- GFPGAN visibility
- CodeFormer visibility
- CodeFormer weight : 0なら最大効果、1なら最小効果。
アルゴリズムは以下が選べる。
- Lanczos
- Nearest
- ESRFAN_4x
- LDSR
- R-ESRGAN 4x+
- R-ESRGAN 4x+Anime6B
- ScuNET GAN
- ScuNET PSNR
- SwinIR_4x
とりあえず SwinIR_4x を使ってみた。パラメータは全部0。2倍拡大でも精細さは NiceScaler の処理結果より高いように感じた。ただ、肌はアニメっぽくのっぺりしてしまう…。いやまあ、美肌云々を求めてるならこれでいいのだろうけど…。
アルゴリズムによる結果の違いは、以下が参考になりそう。
_Stable DiffusionのUpscalerの各メソッド比較|Nobu|note
◎ 感想 :
精細な画像が欲しいなら、Stable Diffusion web UI の SwinIR を使ったほうがいいかな…。ただ、元画像に近いのは、NiceScaler のような気もする…。SwinIR はアニメ調というか…。
[ ツッコむ ]
以上、1 日分です。