環境
M1 Mac Pro (メモリ16GB, ストレージ 500GB)
手順
Appleシリコンの場合これをやる
参考にしたもの: https://www.reddit.com/r/StableDiffusion/comments/15ffn5p/help_sd_on_mac_m1/
その環境内に stable diffusion を配置します
て書かれてるんだけど、よくわからず pytorch-test 配下に stable-diffusion-webui を作る形で git clone した。多分そう言うことではないと思うけど、アクティビティモニタをみてるとGPUは使われたっぽい
下記を見てやる
https://stable-diffusion-art.com/install-mac/
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
asdf(パッケージマネージャ)のインストールは下記。
※ 最近はWindowsのWSL2でもHomebrewがインストールできるし、Windowsでもいける。
HomebrewをWindows上で使えるようにする | アールケー開発
pythonプラグインとpythonのインストール
asdf plugin add python asdf install python 3.10.9
stable-diffusion-webui フォルダだけ python 3.10.9 を適用(自分は別でpythonの別バージョンを使ってるため)
asdf local python 3.10.9 or asdf global python 3.10.9
※ localの場合は python -V しても、ローカルのバージョンは出てこないので注意
./stable-diffusion-webui/webui-user.sh
# Commandline arguments for webui.py, for example: export COMMANDLINE_ARGS="--medvram --opt-split-attention" export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half --no-half-vae --use-cpu interrogate"
デフォルトの mac_env.sh 的なののからコピーして --no-half だけ足したもの。
~/.zshrc
# Stable Diffusion alias sd_start="cd ~/pytorch-test/stable-diffusion-webui; ./webui.sh"
お決まりの source ~/.zshrc で適用。 ※ パスは自分の環境に。
WebUI 画面
Setings > Stable Diffusion [ ] Upcast cross attention layer to float32 にチェック、「Apply settings」
Setings > Stable Diffusion 3 [ ] Enable T5 (load T5 text encoder; increases VRAM use by a lot, potentially improving quality of generation; requires model reload to apply) これを使おうとするとメモリで死ぬので、チェックしない。
とりあえず v1.5 で猫でも生成。
かわいいですね
他のモデルを使ってみる
gsdf/Counterfeit-V2.5
というのがかわいいらしい。
あと、下記を見て VAE と Nagativ Prompt というのを入れる。
これやる
WebUIの「Settings」タブから、「User Interface」という項目を選択する。 その中に、「Quicksettings list」というものがあり、ここに追加した項目は、WebUIのメイン画面に表示されるようになる。
私はここで、CLIP_stop_at_last_layersと、sd_vaeを追加している。
記事の生成の通りにやったら、何とかここまで。

自分でプロンプト作ると結構難しいなあ。

失敗例: SD3へ
から sd3_medium.safetensors をダンロード stable-diffusion-webui/models/Stable-diffusion/ の中に入れる。
あとは動かすうちに勝手にダウンロードされる。
...ひたすら黒い画像が生成されるので修正
./stable-diffusion-webui/webui-user.sh
# Commandline arguments for webui.py, for example: export COMMANDLINE_ARGS="--medvram --opt-split-attention" export COMMANDLINE_ARGS="--opt-split-attention-v1 --medvram --skip-torch-cuda-test --no-half --no-half-vae --use-cpu all"
参考
画像は生成されたけど可愛くない

をダウンロードして、 stable-diffusion-webui/models/VAE/ の中に入れる。
Setings > VAE SD VAE (choose VAE model: Automatic = use one with same filename as checkpoint; None = use VAE from checkpoint) を ダウンロードしたVAEの名前に、「Apply settings」
画像生成

...見なかったことにしよう。SD3は諦めよう。
VAEと起動オプションを戻す。 stable-diffusion-webui/models/CLIP/もバックアップにリネームしとく。
失敗例: Counterfeit-V3.0
起動するときになぜかエラーが出て立ち上がらなくなってしまった。