Androidかつローカルで動く「Stable Diffusion-NCNN」で遊んでみたが…

Android

何かと話題が尽きない夜食生成機ことStable Diffusionですが、ローカルなAndroid環境で動かしてベンチマークテストに使えないかほんの少しだけ模索してました。

で…NCNN(apk)だとAndroidでも動くらしいので遊んでみました。が、何とも言えない具合でとりあえず動作と結果を簡単なメモ的に残します。

ただし、この記事を読んでStable Diffusion-NCNNをAndroid端末に入れても、多分思ってたのと違うと思いますし、時間を無駄にするだけだと先に言っておきます。

Stable Diffusion-NCNN

  • 生成サイズ:android apk版256×256(512固定かどうか不明、そもそも画像を保存不可)
  • 動作要件:RAM 7GB以上
  • まだ実験段階(というかデモ版?)で、自由度はかなり低い

【GitHub】

【参考】

使ってみる

インストールはapkをダウンロードするだけなので割愛。どっちもそこそこ時間が掛かります。

起動すると簡素なStable Diffusion-NCNNのUIが表示されます。できることはSetpとSeed値の変更、プロンプトの記述とテキストから生成するtxt2img、画像ベースのimg2imgのみ。

画像の生成中はRedmi Note 12 Turbo(GSI環境/RAM8GB)でOS込み、約5.5GB前後使用、処理は純粋にCPUしか使わないみたいです。生成した画像はそのまま…というか保存項目が多分apk版は未実装。

生成した物を古典的な方法のスクショで保存し、PC側(もしくはブラウザベース)のwaifu2xとかでアップスケーリングすれば、一応やってることはAIピカソだとか画像生成AIよりは、値変更+ポジ/ネガプロンプトも使えるのでそれっぽくなります。

ただまぁ…ぶっちゃけStable DiffusionとしてNCNNの”apk版は”実用性がよく分からない存在で、スマホ上で動かすために簡易化されてるとはいえ、やれることがNMKD以下なので本当に”AndroidでStable Diffusionっぽいこと”をやってみるだけの体験版止まりな存在。

ブラウザとかで用意されたサイト or サービスのレンタルとかではない、ただ呪文を入れるだけのStable Diffusionもどきでもなく、ローカルのAndroid上で動いて処理がスマホ依存なStable Diffusionという意味では、今のところAndroidにはNCNNくらいですが…。

ベンチマーク的なもの…?

本題的な奴。

そもそもAIお絵かきは大して興味が無く、最近はGPUベンチマークとしてStable Diffusionが用いられているため、今後のスマホレビューで何か応用できないかなー…というのが始まり。

手持ちのXiaomi端末でなるべく条件を統一して動作比較してみた結果がこちら。RAM8GBは共通。

設定はデフォルトからSetp変更のみ、プロンプトは空(無し)でNCNN内のデフォルトを使用してます。

Step 15/30だとCPU性能による差は僅かで、Snapdragon 888に8 Gen 1が逆転される場面も存在します。

Setp 60辺りでCPU性能の差が現れ、Snapdragon 8 Gen 1や888がSetp 60での生成に2分弱要するところ、Snapdragon 8 Gen 2は約1分30秒で生成可能です。Snapdragon 7+ Gen 2とは6秒程度の差しかないですが…。

生成処理をCPU側が行うため、思っていたよりCPU性能差が反映された様に見えます。実行中はCPU使用率が5~60%前後なので、主に中程度の負荷状況におけるマルチスレッド性能がそのまま反映されてるかもしれません。

あとがき

で、結局のところAndroid上で動作するStable Diffusion-NCNNは、CPU性能差が割りと反映されるアプリなのは一応確認できたので、試験的にベンチマークもどきにしています。ただ…

【懸念事項】

  • Stable Diffusion-NCNN(apk)がマイナーで情報量が少なく、参考指標として微妙(サンプル数不足)
  • Stable Diffusion-NCNN(apk)の画像生成がそんなに実用的じゃないし、定番のハローアスカも勿論設定不可…
  • そもそもAndroid(スマホ)でStable Diffusionをやる人はいない&CPUで生成できたから何だよ状態

【とはいえ】

  • 割りとしっかりSoCのCPU構成・性能差が生成時間に反映される
  • マイナーということはネタ被りや競合での取り扱いが少ない
  • 画像生成時間での優劣のため、動画エンコードみたいな感覚でスコアだけのベンチよりは参考になるかも…?

こんな具合で良い面・悪い面それぞれなので微妙な所です。良ければStable Diffusion-NCNN(apk)のAndroidベンチ利用について、意見を貰えるとありがたいです。