m3 macでStable Diffusionの検討

MacBook Air m3を購入しました。
せっかくならneural engineと16GBメモリを活用したいと思ったため
Stable Diffusionを実行します。そのときの脳の動きのメモです。

実行環境の検討

実行環境は以下3種類
・クラウドで実行
・サーバ上で起動し、接続して実行
・macのローカル環境で実行
→今回はm3チップのneural engineを利用したいのでローカルで実行一択です

macで配布されている環境の検討

1:Mac App Storeアプリ版で実行
とっても簡単に実行できます。インストールして起動後にパラメータを選択するだけです。

アプリ例1:Diffusers
neural engine対応しています。
学習モデルはあらかじめ用意されているものしか選択できないようです。

アプリ例2:Draw Things:AI Generation
学習モデルを任意に追加可能なようです。neural engineの利用可否が不明だったため
選択肢から外しました。簡単に色々作成したいならこちらが良いかと思います。
個人的には有名なアプリ以外でソースコードが公開されていないと心配です。

2:自力でコンパイル
新しいmac環境を汚したくないので選択肢から外しました。

3:コンパイル済のアプリを利用
今回はこちらを選択しました。

コンパイル済アプリの選定

neural engineを利用する場合、Appleが提供しているcore MLと呼ばれるフレームワークに
対応している必要があります。
参考

流行しているStable diffusionはAUTOMATIC1111やStable Diffusion WebUI Forgeのようです。
コンパイル済のアプリが見つからずcore ML対応の記載もなかったため対象から割愛しました。
参考

Stable Diffusionは 2.1になった後、Stable Diffusion XL(SDXL) 0.9になりました。
そのためSDXL対応が明記しているアプリが良さそうです。

バックエンドはAppleが提供しているcore ML版のStable Diffusionが良いでしょう。
SDXL対応に関しても明記されていました。
参考

フロントエンドはApple用に作成されておりcore ML向けであること、
SDXL対応していることが明記されているMochi Diffusionにしました。
更新も盛んです。
バックエンドが含まれているためcore ML版のStable Diffusionに
関する別途ダウンロードは不要です
参考

Mochi Diffusionで実行する場合、学習モデルに関してはcoreML用に
変換しないといけません。変換に時間がかかるのですが以下に変換済の
モデルがありました。
参考1
参考2
参考2のページでneural engineを利用できるのはsplit_einsumVersionのみです

結論

今回は以下の構成でStable Diffusionを利用します。
MacBookAir M3
・CPU:8core
・GPU:10core
・メモリ:16GB
・アプリ:MochiDiffusion

作り方や結果は次の記事で公開します。

コメント

タイトルとURLをコピーしました