Written by Manabu Bannai

【簡単】Stable Diffusionを「M1/M2」の「MacBook」で動かす方法

PROGRAMMING

こんにちは、マナブです。

Stable Diffusionの「インストール方法」を解説します。
下記の方法にて、MacBookのローカル環境で動かせます。

  • 手順①:Pythonをインストールする
  • 手順②:Homebrewのインストール
  • 手順③:Repositoryをクローンする
  • 手順④:必要なツールをインストール
  • 手順⑤:Stable Diffusionを実行する

上記ですが、僕は「謎のエラー」で苦しみました。
なので、エラーの「解決方法」もセットで解説します。

Stable Diffusionの稼働に必要なスペック

  • M1 or M2以上のチップを搭載している
  • メモリは16GB RAM(8GBだと重たい)
  • OSのバージョンを「12.3 以上」にする

なお、今回の記事は「Run Stable Diffusion on your M1 Mac’s GPU」の記事を参考にしつつ、加筆する形で書いています。元記事の著者に感謝です。

手順①:Pythonをインストールする

まずは、下記のコマンドを実行してください。

$ python3 -V
表示結果:Python 3.10.6

Pythonのバージョンは「3.10 以上」が必須です。
インストールできていない場合は、手順②に進みます。

手順②:Homebrewのインストール

すでにPythonがインストール済みなら、ここが不要です。
インストール済みじゃない人は、下記を実行してください。

$ brew update
$ brew install python

上記を実行します。Homebrewが初めてなら、下記からインストール可能です。
» Homebrew – The Missing Package Manager for macOS

上記の実行後に、再度下記を実行してください

$ python3 -V
表示結果:Python 3.10.6

PythonがインストールされていたらOKです。
それでは、次のステップに進みましょう。

手順③:Repositoryをクローンする

続いては、Stable Diffusionをクローンします。

$ git clone -b apple-silicon-mps-support https://github.com/bfirsh/stable-diffusion.git
$ cd stable-diffusion
$ mkdir -p models/ldm/stable-diffusion-v1/

上記のコマンドを、順番に実行したらOKです。
ここは簡単ですね。なに問題は起こらないはず。

手順④:必要ツールをインストール

バーチャル環境の構築の為に、下記をインストールします。

$ python3 -m pip install virtualenv
$ python3 -m virtualenv venv

続いて、下記コマンドでバーチャル環境を実行できます。

$ source venv/bin/activate

Stable Diffusionを実行する際には、その都度で「上記のコマンド」が必須です。このコマンドを打つと、ターミナル上で「バーチャル環境」が発動します。

その後に、下記コマンドを実行してください。

$ pip3 install -r requirements.txt

なお、上記の実行で「Failed building wheel for onnx」のようなエラーが発生した場合は、下記で解決できます。

$ brew install cmake protobuf rust

というわけで、以上が準備です。次ステップで最後です。

手順⑤:Stable Diffusionを実行する

Stable Diffusionの実行には、ライセンス同意が必須です。なので「Hugging Face」のサイトに行き、そして「Access repository」のボタンをクリックします。

すると、必要ファイル(sd-v1-4.ckpt)をダウンロードできます。そのファイルを「models/ldm/stable-diffusion-v1/model.ckpt」のディレクトリに設置します。

これで「Stable Diffusion」を実行できます

というわけで、お疲れさまでした。下記を実行します。

$ python3 scripts/txt2img.py --n_samples 1 --n_iter 1 --plms --prompt "fake version of Doraemon"

すると、AIが画像を生成してくれます。
上記では「偽物のドラえもん」の画像を生成しています。

実行結果がこちら(※文章がシンプルなので、精度は低いです)


なお、画像は「outputs/txt2img-samples」の中に保存されています。
というわけで以上なのですが、よくあるエラーについても書いておきます。

エラー①:ModuleNotFoundError: No module named ‘cv2’

Stable Diffusionの実行後に、下記が出てきたりします。

File "/Users/stable-diffusion/scripts/txt2img.py", line 2, in 
    import cv2
ModuleNotFoundError: No module named 'cv2'

上記の場合は、Pythonのバージョン指定が問題かもです。
下記の2つを実行してみてください。

・選択肢①:$ python3 scripts/txt2img.py –n_samples 1 –n_iter 1 –plms –prompt "fake version of Doraemon"
・選択肢②:$ python scripts/txt2img.py –n_samples 1 –n_iter 1 –plms –prompt "fake version of Doraemon"

僕の環境だと「$ python3 scripts/txt2img.py」で実行すると、エラーが解消されました。同じエラーが出た人は、ぜひ参考にどうぞ。

エラー②:FileNotFoundError: ‘model.ckpt’

Stable Diffusionの実行後に、下記が出てきたりします。

FileNotFoundError: [Errno 2] No such file or directory: 'models/ldm/stable-diffusion-v1/model.ckpt'

その場合は「ファイル名の変更」で解決できます。

  • 変更前:models/ldm/stable-diffusion-v1/sd-v1-4.ckpt
  • 変更後:models/ldm/stable-diffusion-v1/model.ckpt

上記でOKです。というわけで、解説は以上です。

エラーが解決しないなら、Discord内でググろう

Stable Diffusionに関しては、ネット上の情報が少ないです。
なので、専用の「コミュニティ内」で検索をすると、効率的です。

上記は「Replicate」という組織が運営するDiscordで、Stable Diffusionの質問も可能です。とはいえ質問しなくても、Discord内で検索したら、大半の必要情報にリーチできるはずです。

また、StableDiffusionの「Reddit」も有益なので、リンクを貼っておきます。ネット内に情報が少ない場合は、特化コミュニティ内から学ぶのが良いですね。

というわけで、以上です。Stable Diffusionを楽しみましょう😌

P.S:普段の僕は「Twitter」を軸に発信しています。また最近は「Webマーケ教材」の作成に注力しており、ネットで稼ぐスキルを学べます。ブログの更新通知は「メルマガ」から送っています。スパムは送りません。更新通知だけ送ります。