【Stable Diffusion】M1 macではCPUによる画像生成ですが、内臓GPUを活用して画像生成する方法
注意事項
記事記載時点で、「torch」のバージョンが、2.0.0で公式サポートしているらしく、StableDifusionの導入時期によっては、すでにGPUが使用されている設定になっている場合もありますので、ご注意ください
ユーティリティ > アクティビティーモニタ.appを起動しておき、画像生成時に下記のように、Pythonの行で%GPUの値が0じゃない場合、変更する必要がありません
メリット
CPU使用率が下がるので、画像生成中に他のアプリケーション動作について、もっさりした感じが軽減される
デメリット
画像生成速度の向上は望めません
本記事の対象者
macのコマンドライン操作に慣れている方
個人見解による設定変更を含むため、導入結果については自己責任とし、自己修復が可能な方
M1/M2 macを使用している方
ローカル環境に、Stable Diffusion Web UIを導入している方
必要なツール類
特に必要はないですが、webuiの起動パラメタを変更するため、下記の知識があると良いです
viやsed等、テキストファイルの編集が出来る
vscode等のテキストエディタを導入し編集が出来る
実施手順
環境の構築
ユーティリティ > ターミナル.appを起動するか、インストール済みのコンソール系アプリを起動し、stable diffusionインストールディレクトリに移動する
cd /インストール済みのディレクトリ/stable-diffusion-webui
Pythonのvenv環境に入る
source venv/bin/activate
PyTorchを更新する
PyTorchの公式サイトを開き、導入に必要なコマンドラインを得る
pip uninstall torch
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
念のため、「pip uninstall torch」で削除しており、Nighty版(開発バージョン)を導入する。ERRORで終わる事があるが、他の関連ライブラリの依存バージョンと異なるための警告であり、要求バージョンより、インストール済みバージョンが上なら、一旦OKとする
pip list | grep torch
導入済みのバージョンを確認し、上がっている事を確認する
TensorFlowを更新
pip uninstall tensorflow
pip install tensorflow
pip list | grep tensorflow
uninstall時に消去するか尋ねられるので「y」を回答し消去する事
使用していた、ターミナルやコンソールを一度終了する
起動パラメタの変更
「stable-diffusion-webui」ディレクトリ直下に入っている「webui-macos-env.sh」を編集する
起動パラメタの「--use-cpu interrogate」を削除する
#export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu interrogate"
export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half-vae"
上記の様に、COMMANDLINE_ARGSが記載されている行の先頭に#を入れてコメントにし、新たに行を追加して、削除する事をお勧めします
起動確認
冒頭の注意事項に記載した通り、設定変更後に画像生成し、%GPUが0じゃなくなっている事が確認できたらOKです
*期待するほどの劇的な変化はないですが、もっさり感が減ってストレス減るだけですが、体感してみてください