BioErrorLog Tech Blog

試行錯誤の記録

M2 MacでStable Diffusionを動かす | Stable Diffusion web UI

M2 MacにStable Diffusion web UIをインストールし、動かしてみます。

はじめに

手元のM2 MacでStable Diffusionを動かしたくなりました。

Stable Diffusionで遊ぶときははもともとStabilityAIのHugging Face Spaceを使っていたのですが、最近停止されてしまいました。

ローカルでStable Diffusionを動かす方法を少し調べてみると、Stable Diffusion web UIを使うのが最も簡単そうです。

ということで今回は、M2 MacでStable Diffusion web UIを動かす手順を整理します。

# 作業環境
Macbook Air
チップ: Apple M2
メモリ: 16GB

M2 MacでStable Diffusion web UIを動かす

基本的には公式のWikiにあるインストール手順に従っていきます。

1. 必要ライブラリのインストール

まずはライブラリをHomebrewでインストールします。

※ もしまだHomebrewがインストールされていない場合は、こちらの手順に従ってインストールしてください。

下記のコマンドをターミナルから実行し、必要ライブラリをインストールします。

brew install cmake protobuf rust python@3.10 git wget


Rosetta 2が走っている場合は、下記のようなエラーが出るかもしれません。

Error: Cannot install under Rosetta 2 in ARM default prefix (/opt/homebrew)!
To rerun under ARM use:
    arch -arm64 brew install ...
To install under x86_64, install Homebrew into /usr/local.

その場合は、コマンド冒頭にarch -arm64を付けて再実行します。

arch -arm64 brew install cmake protobuf rust python@3.10 git wget

無事インストールが終了したら完了です。

2. Stable Diffusion web UIのソースコードをcloneする

次は、下記コマンドを実行してStable Diffusion web UIのソースコードレポジトリをローカルにcloneします。

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui

3. Stable Diffusionモデルを配置する

git cloneしたレポジトリのディレクトリstable-diffusion-webui/models/Stable-diffusionに、Stable Diffusionモデルを配置します。

今回は、モデルstabilityai/stable-diffusion-xl-base-1.0 を使ってみます。 下記のページにアクセスし、downloadボタンからモデルをダウンロードしてください。

sd_xl_base_1.0_0.9vae.safetensors · stabilityai/stable-diffusion-xl-base-1.0 at main

downloadボタンからモデルをダウンロードする

ダウンロードできたら、先ほどgit cloneしてきたレポジトリのstable-diffusion-webui/models/Stable-diffusionディレクトリ配下に、モデル配置します。

Finderから手動でファイルを移動させてもいいですし、下記のようにコマンドでファイル移動しても大丈夫です。

mv ~/Downloads/sd_xl_base_1.0_0.9vae.safetensors ./stable-diffusion-webui/models/Stable-diffusion

4. Stable Diffusion web UIを起動する

ここまで来たら準備は完了です。

cloneしてきたソースコードにあるshellスクリプトwebui.shを実行すれば、Stable Diffusion web UIを起動することができます。

cd stable-diffusion-webui
./webui.sh  # Stable Diffusion web UIを起動

ターミナルで下のように待機状態になったら、起動完了です。

Model loaded in 56.8s (calculate hash: 4.0s, load weights from disk: 0.6s, create model: 4.3s, apply weights to model: 21.9s, apply half(): 17.9s, move model to device: 3.1s, load textual inversion embeddings: 0.4s, calculate empty prompt: 4.5s).

ブラウザから、http://127.0.0.1:7860/にアクセスすると、Stable Diffusion web UIを使うことができます。

Stable Diffusion web UI画面

試しに適当なプロンプトを入れて"Generate"ボタンを押してみると、無事画像が生成されました。

ローカルで起動したStable Diffusion web UIで画像を生成してみた例

おわりに

M2 MacにStable Diffusion web UIをインストールし、動かしてみるまでの手順をまとめました。

プロンプトだけでなく、変更可能なパラメータが山ほどあって遊びがいがありそうです。

以上、どなたかの参考になれば幸いです。

[関連記事]

www.bioerrorlog.work

www.bioerrorlog.work

www.bioerrorlog.work

参考

GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI

Installation on Apple Silicon · AUTOMATIC1111/stable-diffusion-webui Wiki · GitHub

stabilityai/stable-diffusion at main

Features · AUTOMATIC1111/stable-diffusion-webui Wiki · GitHub

sd_xl_base_1.0_0.9vae.safetensors · stabilityai/stable-diffusion-xl-base-1.0 at main