Stable DiffusionをAndroidスマホ単体で動かす方法:時間はかかるが完全オフラインで動作
今話題のイラストや画像を生成するAIツール「Stable Diffusion」をAndroidスマホ上で動作させる方法を紹介する。
まず前提として、「AIによる画像生成処理は高性能なパソコンを必要とする」というのは多くの人にとって想像し易いことだろう。実際、そのとおりである。高品質な画像を生成できるほど、高性能なCPUやグラフィックボードが求められるため、スマートフォンだけでは動作させるのは難しい。最適化や端末自体の性能向上が必須となる。
このような背景から現状、スマートフォンで利用可能なイラスト生成アプリは殆ど「高性能な外部サーバーに処理させて、それを表示させる」という方法で提供しており、「スマートフォンで処理」していない。
しかし、絶対できないとは限らない。まだ開発途上ではあるが、Stable DiffusionをCPUだけで処理する派生プロジェクト「Stable-Diffusion-NCNN」が配布するアプリを使えば実現できる。
では早速試してみよう!と言いたいところだが、「Stable Diffusionが軽量になった」というわけではないため、なおかつある程度の性能は必要とされる。プロジェクトによると【メモリ7GB以上】のAndroidスマートフォンのみで動作可能だとのこと。(モデル読み込みの都合上)
アプリは実験段階なので勿論Google Playにはなく、apkファイル経由でインストールする必要がある。こちらのGoogleドライブ(stable-diffusion.apk)からダウロードが可能だ。ただし、1.98GBと膨大なのでご注意を。
インストールして起動すると早速画像生成を試すことができ、これまでStable Diffusionを触ったことがある人ならお馴染みの「Positive Prompt」「Negative Prompt」を入力する欄と試行回数・シード値を入力する欄がある。なお、生成画像の画質は「512px x 512px」のみ。また、生成モードはテキストから画像を作成できる「txt2img」だけでなく画像から画像を作成する「img2img」にも対応している。
実際に処理してみるとどれくらい時間がかかるのか、以下の動画にて検証しているので確かめてほしいが結論から言うと30秒ほど要した。(Step:15)
試した端末は超高性能ではないものの、メモリ12GB・MediaTek Dimensity 1200と平均以上の性能だったがそれでも性能不足が如実に現れた。Snapdragon 8 Gen2を搭載した最新の超高性能スマホだと更もっと早く生成できるだろうが、検証端末が不在だったので試すことはできなかった。(是非お持ちの方はTwitterなどにてご報告お願い致します)また、img2imgも同じ時間だった。
時間がかかるとはいえ、生成される画像のクオリティは通常のStable Diffusionと同じくらい高いというのはやはり素晴らしいことだ。現状、前述のようにアプリやGoogle Colaboratoryといった外部サーバーで処理する必要があるが、Stable Diffusionの軽量化や端末の性能向上によって、将来的には「スマートフォンで処理」がスタンダードになる可能性にも期待したい。