M1 MacでStable Diffusionしたい人が試すときの一番簡単で高速な方法(M1 Mac GPUでの実行)
最初apple/ml-stable-diffusionに従ってPython環境を構築し、モデルを手元で変換して、プログラムを実行して画像を生成していたのですが、めっちゃ簡単な方法を見つけたので共有です。
MochiDiffusionのインストール
MochiDiffusionはM1系MacでStable Diffusionをネイティブ実行するためのmacOSアプリです。
releaseページからdmgをダウンロードしてインストールしてください。それだけで環境構築終わりです。
モデルを選ぶ
すでに主要なモデルの多くをHugging Face Core ML Models
Communityがcoreml用に変換してくれているので、手元で環境構築して変換処理に何分も待つ、ということは不要です。
↓から利用したいモデルをまず選んでください(ページ下にリストがあります)。
Hugging Face CoreML
モデルのダウンロード
例えば coreml/coreml-stable-diffusion-v1-5を選んだなら Filesタブ にある original/
ディレクトリ以下のモデルをダウンロードしてください。originalを選ぶことでM1 MacのCPUとGPUを使えます。
ここで 512x768
というディレクトリがあることについて説明ですが、現段階ではcoreml用に変換したモデルは後からサイズの変更ができないみたいです。
なのでcoreml用に変換するときに、解像度を決める必要があり、変換後のモデルは全部別になります。今回は 512x768
の縦長な画像用のモデルをコミュニティの方で変換したようでした。
縦長なモデルは以下の様な命名規則になってます。
stable-diffusion-v1-5_no-i2i_original_512x768.zip
サイズ情報がないzipファイルはデフォルトが 512x512
(のはず)です。
好きな方をダウンロードしてください。
モデルの設置
zipファイルをダウンロードしたら展開し以下に移動してください。ファインダーからで問題ないです。
Documents/MochiDiffusion/models
アプリの起動
MochiDiffusionを起動してください。先に起動していたとしても更新ボタンを押せば表示されます。以下の画像のようになっていれば成功です。
この状態でモデルの名前をクリックするとNeural Engine
を使うかGPU
を使うか聞かれるのでGPU
にしてください。
あとはプロンプトを埋めて「画像の生成」ボタンを押せば画像の生成をしてくれます。モデルを選んだ初回だけロードに時間がかかります。
あとは好きな画像をM1Macで生成しまくってください。1画像20秒台でした。
変換するときにGPU使用率が100%に張り付いているので、ちゃんとGPUでぶん回せてますね。
おわり
変換の自由度を求めるならやはりWebUIを使った方がいいと思いますが、M1/M2を持っている方がカジュアルに画像生成を始めたいならこれが最善かなと思いました。
以上です^^
Discussion