AIを利用しテキストから画像を生成できるソフトウェア「Stable Diffusion」。
本来実行するためには、NVIDA製の特定のGPUが必要という制限が存在しますが、オープンソースソフトウェアの特性を生かし、Intel CPUのみで実行できるバージョンなど、さまざまな派生版が作られています。
本日はそのなかで、Appleの独自チップであるM1およびM2チップを搭載したMacでStable Diffusionを実行する方法を紹介します。
方法を説明したブログによると、Macの要件は以下の通りです。
- M1またはM2チップを搭載したMac。
- 16GB以上のRAM。8GBのRAMで動作するがとても遅い。
- macOS 12.3以降
以下、具体的な手順を説明します。
Pythonのセットアップ
Stable Diffusionを実行するためにはPython環境が必要です。Python環境をセットアップするためにはさまざまな方法が存在します。今回は元のブログに記事従い、HomebrewでインストールしたPython 3.10とvirtualenvを使用します。
まずPythonをインストールします。
brew update brew install python
python3 -V
で「3.10」以降が表示されれば成功です。なおStable Diffusion実行時にcmake
、protobuf
、rust
等のソフトウェアも必要なようです。事前にインストールしておけば手戻りがありません。
brew install cmake protobuf rust
Stable Diffusionのセットアップ
Stable Diffusionのリポジトリをcloneします。
git clone -b apple-silicon-mps-support https://github.com/bfirsh/stable-diffusion.git cd stable-diffusion mkdir -p models/ldm/stable-diffusion-v1
virtualenvのセットアップを行います。
python3 -m pip install virtualenv python3 -m virtualenv venv source venv/bin/activate
この方法では、source venv/bin/activate
は毎回実行する必要があります。実行するとコマンドプロンプトが変わります。
必要なソフトウェアをインストールします。
pip install -r requirements.txt
ダウンロードにしばらく時間が必要です。
ウェイトのダウンロード
実行に必要なウェイトと呼ばれるファイルをダウンロードします。Hugging Face repositoryを開き、ライセンスを確認し「Access repository」ボタンをクリックします。必要ならばアカウントを作成します。
ダウンロードしたsd-v1-4.ckpt
(4GB近くのサイズ)を、先ほど作成したディレクトリにmodels/ldm/stable-diffusion-v1/model.ckpt
として保存します。
実行
いよいよ実行できます。
python3 scripts/txt2img.py --prompt "a red juicy apple floating in outer space, like a planet" --n_samples 1 --n_iter 1 --plms
完了するとoutputs/txt2img-samples
以下に画像が作成されます。
宇宙に赤いリンゴが浮かんでいる不思議な画像が作成されます。
まとめ
Stable DiffusionをM1/M2 Mac上で実行する方法を説明しました。8GBのM1 MacBook Airでも一応実行できるようです。話題のテクノロジーに触れてみたい方は実際に実行してみてはいかがでしょうか。