Stable Diffusion用の画像ビュワーを作った

Tauri SD Image Viewerのスクリーンショット

Stable Diffusion(以下『SD』)の生成パラメーターを見つつ、 軽快に閲覧できるビュワーが欲しいなあと思っていたので、自作したった。

ダウンロード

GitHubのReleasesページ で配布してる。

できること

SDのパラメーターが見れる

Viewerページの右側にメタデータパネルを配置。 ここでSDのパラメータを確認できるようにした。

Tauri SD Image Viewerのスクリーンショット

コピーボタンも配置したので、パラメーターをDiscordで共有するときも楽ちん。

左右ナビゲーション

カーソルキーの左右、または、ナビゲーションボタンで前後の画像に移動できる。

前後の画像はバックグラウンドでプリローディングしてるので、 ナビゲーション時の待ち時間も最小限。動作感はかなり軽快になったと思う。

集中できる閲覧UI

生成した女の子をじっくりねっとり見るときに邪魔にならないよう、工夫を凝らしてある。

まず、メタデータパネルの境界部分をドラッグするとパネルを折りたためる。

Tauri SD Image Viewerのスクリーンショット

OSのウィンドウフルスクリーンモードと併用すると、ほぼ画面いっぱいに表示できて捗る。 何がとは言わないが捗る。

さらに、(スクショがないけど)操作してないとUI部分は自動で非表示になる。 ストレスフリーで閲覧に集中できるぞ❗️

さらにさらに、マウススクロールでズームイン・ズームアウトもできる。

Tauri SD Image Viewerのスクリーンショット

ディレクトリ内の画像を一覧表示できる

いわゆるサムネイル表示ってやつができる。

Tauri SD Image Viewerのスクリーンショット

元のアスペクト比が分かるよう、正方形にクリッピングしたりはしてない。

フィルタリング

レーティングとファイル名でフィルタリングできる。

Tauri SD Image Viewerのスクリーンショット

自作のランダムツールで無限生成してると、 1日に2000枚近く生成されるので、軽快な整理手段が必須なんだよね。 Ratingやファイル名でフィルタリングできると、そこが捗る。

削除も対応してるので、不要な画像をフィルタリングで絞り込んでサッと消せる。

なお、将来的にはSDのタグでフィルタリングできるようにするつもり。 (というか、以前はできてたけど、2週間前にガッツリ作り直したからデグレーションしてる。)

レーティング

Viewerページの下部やGridページのサムネイルの下部に⭐️が見えてたと思うけど、レーティングに対応してる。

レーティングボタンをマウスでクリックするか、 15 の数字キーでレーティングできる。 このあたりはLightroomを参考にした。

なお、レーティング情報はXMPタグとして画像内に保存する。 これにより、LightroomやSynology Photosなどの多くの外部アプリケーションとレーティング情報が共有できる。

作成モチベーション

後述の既存アプリでもSDのパラメーターを見るだけならできる。 が、Synology Photosとの併用や、動作の軽快性なんかを求めていくと、どうしても満足のいくものがなかった。 ちょうどデスクトップアプリの作成にも興味が出てきてたので、ちょうど良い機会だし作った、というわけ。

既存アプリとの比較

Eagle

おそらくStable Diffusionのパラメーターを見れることを主機能にあげてるアプリの中で、 最もおすすめされるであろうアプリ。

ただ、致命的な弱点として、画像ファイルをEagleのライブラリにインポートしないといけない。 また、このアーキテクチャのせいだと思うが、スマホ対応してない。よって、外出先から閲覧できない。

筆者はSynologyのNASを生成画像の出力先にしていて、外出先からはSynology Photosで閲覧してる。 Eagleだとこれと相性が悪すぎる。

マジでこの弱点さえなければ、ほとんど不満のないアプリだったと思う。 あとは有料なことくらいかなあ。

XnView MP

OSSの多機能画像ビュワー。OSSなのでタダ。

自作するまでは、レーティング以外はこれがベストの選択肢だった。 SDのパラメータも見れるし、Eagleみたいに独自ライブラリ方式じゃない。 Synology Photosとの使い分けもバッチリだ。 ついでに、OSとの親和性が高くて、画像をドラッグ&ドロップすればTwitterやDiscordへ直接添付できるのも良い。

ただ、これも弱点があって、動作が重い…。 特にレーティング時の動作が激重い。 先述の通り1日に2000枚近くの画像を次から次へとレーティングしていかないと捌けないのに、 1枚レーティングするだけで1, 2秒待たされるのは致命的な重さ。 多分、レーティング時に画像書き込みをしていて、それがアプリの動作をブロックしてるんだと思う。 良くないですなぁ(上から目線)😎

Adobe Lightroom

言わずと知れたRAW現像アプリ。 画像ビュワーではないんだけど、さすがのAdobe、めっちゃ使いやすいし軽快なんだよね。 元々はクラウドファイル専用だったんだけど、 数年前くらいのアップデートでローカルのファイルも見れるようになったのがグッド。

これの弱点はOSとの親和性で、画像をドラッグ&ドロップして別アプリに画像を渡したりできない。 OSのクリップボードにコピーしたりもできない。

これまたピンポイントで致命的な弱点なんだけど、NAS上のファイルが削除できない…。 1年以上前からバグ報告されてて、Voteもすごいついてるんだけど、一向に修正される気配がない💢 これのフラストレーションが溜まりに溜まって自作に踏み切ってるところはある。

あとがき

長くなってきたので技術的な話はまた別の記事にしよう(やる気があれば)。

まだまだ発展途上のアプリなので、これから継続的に改善していくつもり。 同じような要求を抱えてる人に刺さるアプリになってくれると嬉しいね。