iPad で、Stable Diffusion を動かす手順。エッジデバイスで、画像生成を試す。オンデバイス AI に向けて。
はじめに
こんにちは、オートロ株式会社で代表をしております。福田です。今回も、オープン開発チームで試した内容を共有したいと思います。
前回、iPad で、LLM を動作させる手順詳細(Deep Seek R1, Qwen , MLX)、オンデバイスAIに向けてで、iPad 上で、LLMを動作させました。今回は、同一の iPad 上で、画像生成AIである、Stable Diffusionを動作させてみます。
結果
以下の動画が実際に iPad 上で、Stable Diffusionを実行させたものになります。思っていたよりも高速で、次々に画像を生成することができました。動画は、生成の実際のスピードになります。
このデモで使用されているモデルは、SDXL-Turbo になります。
今回使用した端末について
端末情報
今回は、検証用端末として「11インチ iPad Pro (M4) Wi-Fiモデル」を使用しました。以下にその詳細を載せます。
公式サイトより引用
項目 | スペック |
---|---|
機種 | 11インチ iPad Pro (M4) Wi-Fiモデル |
容量 | 1TB |
CPU | 4つの高性能コアと6つの高効率コアを搭載した10コアCPU |
GPU | 10コアGPU |
AI処理 | 16コアNeural Engine |
RAM | 16GB |
サイズ | 幅: 177.5 mm |
高さ | 249.7 mm |
厚さ | 5.3 mm |
重量 | 444 g |
Stable Diffusion とは?
Stable Diffusionは、2022年に公開された深層学習(ディープラーニング)に基づくテキスト・トゥ・イメージ(text-to-image)モデルです 。このモデルは、拡散モデル(Diffusion Model)と呼ばれる技術を基盤としており、Stability AI社の主要な製品として、現在進行中のAIブームの一翼を担う存在と見なされています。
技術的には、Stable Diffusionは潜在拡散モデル(Latent Diffusion Model, LDM)と呼ばれる深層生成人工ニューラルネットワークの一種です。拡散モデルの基本的な考え方は、まず元画像に徐々にノイズを加えていき、最終的に完全なノイズ画像にします。次に、モデルはこのノイズ除去プロセスを逆向きに学習し、ノイズから元の画像を復元できるようにします。Stable Diffusionが「潜在」拡散モデルと呼ばれるのは、このノイズ追加・除去プロセスをピクセル空間で直接行うのではなく、画像をより低次元の「潜在空間(latent space)」に圧縮してから行うためです。この圧縮・復元には変分オートエンコーダ(Variational Autoencoder, VAE)が用いられ、画像のより本質的な意味的特徴を捉えることができます 。潜在空間での処理により、計算負荷を大幅に削減し、高解像度画像の生成を効率化しています。
さらに、Stable Diffusionは、モデルが丸ごとオープンソースになっており誰でも使えるようになっていることも特筆すべきことでしょう。ただし、ライセンスはそれぞれのバージョンやエディションによって異なっていますので、自分の利用用途に応じて確認するようにしてください。
iPad で実行させる方法
前提条件
- Mac と iPad があること
- 開発する Mac に Xcode がインストールされていること
- Apple ID と Apple Developer Account があること
- 開発するMacに git がインストールされていること
などです。詳細は、こちらでも紹介済みですのでこちらも参照いただけると幸いです。
MLX のサンプルコードをダウンロード
git レポジトリから最新の mlx-swift-example のコードをダウンロードします。以下のコマンドでクローンできます。
git clone https://github.com/ml-explore/mlx-swift-examples.git
Xcode で、Stable Diffusion をコンパイル
クローンが完了したら、クローンしたフォルダ内の、 mlx-swift-examples.xcodeproj
をダブルクリックして開いてください。
iPad と Mac を USB ケーブルで接続して、信頼できるデバイスとして相互に通信可能にしておきます。
次に、ターゲットとデバイスを選択します。
- Xcodeの左ペインにあるプロジェクトナビゲータで、Applications フォルダを展開し、StableDiffusionExample ターゲットが選択されていることを確認します。
- 「Team」ドロップダウンメニューから、自分のApple ID(開発者アカウント)を選択します。初めての場合、XcodeにApple IDを登録する必要があります(Xcode > Settings > Accounts)。無料アカウントの場合、「Personal Team」として表示されることがあります 。Xcodeが自動的にプロビジョニングプロファイルを管理します。
- 署名に関連する警告やエラーが表示された場合は、Xcodeの指示に従って解決してください。Mac上で証明書を信頼するよう求められる場合があります。
ビルドします
- メニューバーから Product > Build を選択するか、キーボードショートカット Cmd+B を押して、プロジェクトのビルドを開始します 。XcodeはSwiftコードとMLXフレームワークの依存関係をコンパイルします。初回ビルド時や依存関係の更新時には、時間がかかることがあります。ビルドが成功すると、Xcodeのステータスバーに "Build Succeeded" と表示されます。
実行
- デプロイと実行: ビルドが成功したら、Xcodeツールバーの実行ボタン(▶︎ アイコン)をクリックするか、メニューバーから Product > Run を選択(または Cmd+R)します 。Xcodeはコンパイルされたアプリケーションを接続されているiPadにインストールし、自動的に起動します。
- iPadで開発者を信頼: 無料の開発者アカウントで署名されたアプリを初めてiPadで実行する場合、その開発者を信頼する設定が必要です。アプリを起動しようとすると「信頼されていない開発元」というメッセージが表示される場合があります。その場合は、iPadの 設定 (Settings) > 一般 (General) > VPNとデバイス管理 (VPN & Device Management) を開きます。「デベロッパAPP (DEVELOPER APP)」の項目に表示されている自分のApple ID(開発者プロファイル)をタップし、「信頼 (Trust)」ボタンをタップして確認します 。この操作は、その開発者アカウントで署名されたアプリを初めて実行するときに一度だけ必要です。
- 実行確認: 開発者を信頼した後、ホーム画面に戻り、インストールされた StableDiffusionExample アプリのアイコンをタップして起動します。アプリが正常に起動し、UIが表示されれば成功です。
はじめに generate する際には、モデルのダウンロードが始まるので、20分程度かかるかもしれません。その後は、ダウンロードされないため、上記のサンプルのように実行されます。
Mac上で実行されて、iPad で実行されない場合は、デバイスでiPad が選択されているかを確認してください。下記のように Xcode 上部のターゲットの右側でデバイスを選択できます。
実行結果
サンプルの UI は、非常にシンプルで真っ白です。プロンプトを入力して、generate をタップすれば、画像を生成できます。
起動時の画面
画像生成後の画面
まとめ
今回は、iPad を使って、画像生成 AI の Stable Diffusion をオンデバイスで実行してみました。画像生成をオンデバイスで実行するニーズはそれほどないかもしれませんが、思ったよりも高速に動作するため、何度も生成してもストレスがありません。
オンデバイスで実行できることによって、プロンプトに入力されたテキストが漏洩する心配はありません。トークン使用量を気にせずに使い続けれられるようになれば、量だけでなく質的な変化ももたらすかもしれません。また、プライバシーが重視される領域での活用も進むことになります。
オープンでは、エッジデバイス、オンデバイスAIを実装し、AI活用の新たなステージにチャレンジしていきます。
Discussion