🌆

【Automatic1111】Mac(M1/M2)のローカルでStableDiffusionを使う方法【SDXL対応】

2022/10/06に公開
6

はじめに

WindowsやColab環境のStableDiffuisonユーザに人気のAutomatic1111がMacでも使用できるようになりました。
公式の説明が英語で分かりづらく一部の手順が省略されてしまっているため、おすすめの方法を解説します。

事前準備

ターミナルの起動

Macのターミナルアプリを起動してください。

ターミナルの場所がわからない場合

ターミナルの場所がわからない場合は、Dockの中からLaunchpadを起動しその中にある”ターミナル”と記載されたアイコンを選択してください。

homebrewのインストール

macで必須のアプリケーション管理ソフトであるHomebrewをインストールしておきます。

公式リンクの”インストール”に記載のあるテキストをそのままコピーし、ターミナルに貼り付けて実行してください。

この後brew ~というコマンドが多数出てきますが、それらは"Homebrewを使ってソフトを最新化やインストールを行う際"に使用します。

インストールフォルダの用意

ファイル一式をインストールするフォルダを用意します。
ファイルを管理したい場所で右クリックし”新規フォルダ”から新しいフォルダを作ってください。

フォルダ作成後にターミナルでそのディレクトリまで移動しておいてください。

ターミナルの移動方法がわからない場合

ターミナルの移動方法がわからない場合はFinderでインストール先のフォルダを右クリック⇒フォルダに新規ターミナルでもOKです。

ckptファイルの用意

huggingFace等で使用したいモデルのckptファイルを予めローカルにダウンロードしておいて下さい。
ckptファイルであればオリジナル以外(waifu-diffusion等)でもOK

環境構築

関連ライブラリのインストール

ターミナルで以下のコマンドを実行してください。automatic1111の実行に必要なライブラリが自動でインストールされます。

途中でパスワードが要求される場合、Macのログインパスワードを入力してください。

brew install cmake protobuf rust [email protected] git wget

automatic1111のダウンロード

githubからautomatic1111のファイルをダウンロードします。
ターミナルで以下のコマンドを実行してください。完了後、フォルダ内にstable-diffusion-webuiという名前のフォルダが作成されます。

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

ckptファイルの配置

作成されたフォルダ内のモデルディレクトリに使いたいckptファイルを設置します。
具体的には、stable-diffusion-webui > models > Stable-diffusionの中にckptファイルを設置してください。

特に使いたいモデルがない場合はここの手順はスキップしても構いません。
モデルを設置しなくても、後述のWebUIの起動時に自動的にVer1.5のモデルがダウンロードされます。

StableDiffusionXLを使用する場合

StableDiffusionXLを使う場合は以下からDLできます。baseとrefinerの2種類がありますが、まずここではbaseをダウンロードしておいてください。
https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0

autoatic1111の起動

stable-diffusion-webuiへ移動

インストール手順の中で作成されたstable-diffusion-webuiディレクトリへ移動してください。

移動方法がわからない場合は、インストールフォルダ内に作られたstable-diffusion-webuiを右クリックし、フォルダに新規ターミナルを選択してターミナルを起動してください。

webuiの起動

ターミナル内で以下のコマンドを実行してください。
初回起動時は必要ファイル等のダウンロードが行われるため少し時間がかかります。

./webui.sh

以下のメッセージが出たら起動完了です。メッセージ内に含まれるURLは後ほど使うのでコピーしておいて下さい。

〜〜〜省略〜〜〜
Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.

web-uiにアクセス

ブラウザを開いて以下のURLにアクセスします。
URLは一つ前の手順で出てきたURLを使用してください。

http://127.0.0.1:7860

この状態でももう使い始められますが、拡張プラグインや複雑な機能を使う場合は追加の設定があるので一度web-uiを終了させてください。

SDXL利用時の注意

2023/07にリリースされたStableDffusionXLを利用する際は、エクスポートする画像のサイズを1024×1024などの推奨サイズに設定してください。デフォルトのサイズだと画像の破綻が発生します。

画像サイズが大きいため、Macのメモリが少ない場合は追加設定のメモリが少ない場合の対応方法を試すことをおすすめします。

追加設定

起動オプションの変更

一部のプラグインはデフォルト設定だと動かないため、起動オプションを変えておきます。

stable-diffusion-webuiディレクトリ内の、webui-user.shというファイルを右クリックし”このアプリケーションで開く”からエディタを開いてください。
エディタがわからなければ”テキストエディット”がおすすめです。

エディタの起動後、13行目あたりの#export COMMANDLINE_ARGS=""と書かれている部分を以下の通り変更してください。

export COMMANDLINE_ARGS="--skip-torch-cuda-test --no-half"

これで変更は完了です。変更内容は次のWebui起動時から適用されます。

8GBのM1/M2利用時の設定

8GBのMacを使用している場合、Webuiの動作が遅く、使い物にならない場合があります。

その場合は、起動オプションを次のどちらかに書き換えてください。両方試してみて、早い方を継続して使うことをおすすめします。

中スペックPC用起動オプション

13行目あたりの#export COMMANDLINE_ARGS=""と書かれている部分を以下の通り変更してください。

export COMMANDLINE_ARGS="--skip-torch-cuda-test --no-half --opt-split-attention-v1 -medvram"

CPUモードの起動オプション

13行目あたりの#export COMMANDLINE_ARGS=""と書かれている部分を以下の通り変更してください。

export COMMANDLINE_ARGS="--skip-torch-cuda-test --no-half --use-cpu all"

まとめ

いかがだったでしょうか?Macユーザ待望のstablediffusionのGUIツールの使い方を解説させていただきました。
少し手順は長いですが、機能も豊富で非常に使いやすいツールなので是非挑戦してみてください。

私のTwitterではStebleDiffusionに限らず、AIを活用した業務改善情報の発信をしておりますのでご興味のある方は是非フォローをお願いします。
https://twitter.com/Linus_lab

Discussion

Ryo145Ryo145

プログラミング初心者ですが質問させていただきます。
最後の「web-uiの起動」のコマンドを実行したところ

「AssertionError: Couldn't find Stable Diffusion in any of: (以下フォルダ名)」

とエラーが出てしまいます。

お手数をおかけしますが、対応方法について教えていただけますと幸いです。

zaiwazaiwa

コメントありがとうございます。automatic1111は導入方法が変わったので、新しい手順でもう一度導入から実施していただくのが良いかと思います。

先程記事を最新化しましたので、よろしければ参考にしてみてください。

Ryo145Ryo145

ご対応いただき、心から感謝申し上げます。丁寧な解説、誠にありがとうございます。

上記のやり方で対応させていただきましたが、最後のweb-uiの起動コマンドを実行すると
「RuntimeError: Couldn't checkout commit 51c9778f269cedb55a4d88c79c0246d35bdadb71 for K-diffusion.
Command: "git" -C "repositories/k-diffusion" checkout 51c9778f269cedb55a4d88c79c0246d35bdadb71
Error code: 128
stdout: <empty>
stderr: fatal: reference is not a tree: 51c9778f269cedb55a4d88c79c0246d35bdadb71」
とエラーが出てしまいます。どのような操作をすれば解除可能でしょうか…?

何度も申し訳ございませんが、よろしくお願いいたします。

zaiwazaiwa

完全初期化したM2MacBookProであれば問題なく導入ができるので、おそらくRyo145さんの環境の何かが干渉してしまっているんだと思われます。

私の環境では再現しなかったので、これ以上の原因は私の方ではわからなさそうです。すみません。。。

さよなりωさよなりω

この件,解決されましたか?

stable-diffusion-webui フォルダ内の以下のフォルダを削除し,
git pull で更新をかけた後,webui.shの実行で動くのではないでしょうか。

# stable-diffusion-webui フォルダにて
$ rm -rf repositories
$ rm -rf venv
$ git pull
$ ./webui.sh
Ryo145Ryo145

zaiwa様
さよなり様

おふたりともご協力いただき誠にありがとうございます。
一度折れて諦めていましたが、さよなり様がご教示くださった内容を実行し、無事使えるようになりました。

大変初歩的な質問にも関わらず丁寧に教えていただき、誠にありがとうございます。