前回の記事で、Intel Mac に AUTOMATIC1111 版 Stable Diffusin をインストールする方法をご紹介しました。
しかし、Intel CPU と AMD Radeon GPU 搭載の Mac では GPU を使用できず、CPU だけで画像を生成するため、非常に効率の悪いものでした。
最近、DirectML を使って AMD Radeon GPU でも Stable Diffusion が動作するフォーク版がテストながら発表されていますので、それを使って、やや強引な方法ながら動かしてみます。
ブートキャンプの用意
macOS の Stable Diffusion では DirectML はサポートされていないので、強引ながらブートキャンプで Windows 環境を作成して、動かすことにします。
お使いの Mac が Intel プロセッサを搭載してることを確認して、下記のページを参照しながら Windows10 をインストールして下さい。
ドライバの更新
AMD から、ブートキャンプ用のドライバが出ているのでインストールします。
ブートキャンプの Windows 上で、以下のリンクからご自分の Mac 用のドライバをダウンロードして、圧縮ファイルを展開後、「Setup.exe」を実行してインストールします。
WebUI のインストール
Python のインストール
以下のAUTOMATIC1111 版 WebUI の公式リポジトリでは、
執筆時点では、Python 3.10.6 が推奨されていますので以下の Python のページから「Python 3.10.6 – Aug. 2, 2022」の、「Download Windows installer (64-bit)」を選択してダウンロードします。
ダウンロードした「python-3.10.6-amd64.exe」をダブルクリックしてインストールします。
インストール時に「Add Python 3.10 to PATH」にチェックするのを忘れないでください。
Git のインストール
以下のページから「Standalone Installer」の「64-bit Git for Windows Setup.」を選択してダウンロードします。
ダウンロードしたファイルをダブルクリックしてインストールします。オプションはデフォルトのままで「Next」を押して進めていきます。
AUTOMATIC1111 WebUI のインストール
次に、エクスプローラーを起動し、WebUI をインストールしたいフォルダに移動します。
そこで、右クリックをして「Git Bash Here」を選択し、Bash シェルターミナルを開きます。
ターミナルに以下のコマンドを入力します。
git clone https://github.com/lshqqytiger/stable-diffusion-webui-directml && cd stable-diffusion-webui-directml && git submodule init && git submodule update
エクスプローラーで、今インストールしたフォルダ「stable-diffusion-webui-directml」を開き、「webui-user.bat」を右クリックして「編集」します。
「set COMMANDLINE_ARGS=」の後に以下のオプションを追加して保存します。
--opt-sub-quad-attention --lowvram --disable-nan-check --precision full --no-half
WebUI の起動
エクスプローラーで先ほどの「stable-diffusion-webui-directml」フォルダを開き、webui-user.bat をダブルクリックすると、Stable Diffusion が起動します。
初回のみ必要なライブラリをダウンロードするために時間がかかりますが、以下の様に出力が止まって 「http://127.0.0.1:7860/」 と表示があれば、
ブラウザを起動して、アドレス入力欄に
http://127.0.0.1:7860/
と入力します。
以下のような画面が出たら、起動成功です。
プロンプトを入力して、オプションを決めて「Genegate」を選択します。そうしてしばらく待てば画像が生成され出力されます。
検証
AMD Radeon の公式ツールでパフォーマンスを測定してみると、GPU と VRAM の消費は多く、CPU と RAM の消費はほとんど見られません。
確かに Stable Diffusion が AMD Radeon 上で動作しているのが分かります。
まとめ
まだ、DirectML 版はテスト段階で、 Nvidia の GPU の速度に比べて遅いです。
あくまで、実験として試してみて下さい。