NVIDIAのGPUを積んでないとStable Diffusionが使えないと思っているそこのあなた、安心してください。Macでも使えますよ。ただしいくつか条件があり、特にMacOS Ventureが入っていることと、Python 3.10が使えることは必須。またMetalが使えるハイエンドのRadeonGPUか、M1、M2のGPUが必要です。Intel内蔵グラフィックスのMacbook Pro 2020では使用できませんでした。なおこの記事を書いているのは2023年8月14日です。AI系ライブラリは移り変わりが早いので記載しておきます。
インストール手順
インストールは思っているより簡単です。今回インストールしたい、Stable Diffusion Web UIのGithubの手順を参考に入れていきます。
HomeBrewのインストール
最初にMacでHomeBrewを使えるようにします。公式サイトに行き以下のコマンドを打つことで、インストールが完了します。
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
必要なソフトウェアのインストール
実際にWEBUIインタフェース内蔵のアプリケーションをAUTOMATIC1111さんの手順を皆がら実行しましょう。
$brew install cmake protobuf rust python@3.10 git wget
続いてソースコードのダウンロード
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
WEBUIを起動
git clone でダウンロードしたフォルダに向かい、以下のコマンドを実行するとStable Diffusion WEBUIが立ち上がってくるはずです。初回は様々なライブラリのダウンロードにより、時間がかかりますが、根気よく待ちましょう。
$ cd stable-diffusion-webui
$ ./webui.sh
ノイズ画像しか生成されない
無事に起動ができたのならば、早速画像生成していることとおもいます。しかしながら、私の環境ではノイズ画像しか生成されません。
色々調べたところ、実行時に以下のオプションを付けることで解消できるらしい。そこで以下のファイルを編集し、以下の一行に –no-half と加える。
$ vi webui-macos-env.sh
export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu interrogate --no-half"
上記を加えて再度実行したところ、無事に画像が出てきた。no-halfは調べるとGTX1660や1650などの16系に必要だと出てくる。16系のバグだという解説で、Radeonにもはまるのかわかりませんがとりあえずは動いた。
なお、私が使っているiMac 2020 Corei9 Radeon 5700XT 環境では20ステップの上記画像は10秒で生成できました。GPU使用率も20%ぐらいまでは上がるので使用している模様。もしかしたらM1とかM2マックだともっと早いのだろうか?これでMacの皆さんも画像生成をお楽しみください。