IT技術で仕事を減らしたい!

ITエンジニアのメモ+α

macOS stable-diffusionを使ってみる

どうも、nippa です。

画像生成AIのstable-diffusionをmacOSで利用してみたいと思います。

stable-diffusion-webuiが便利そうなので、今回こちらを利用してWebUIで画像生成を行ってみます。

環境

インストール

まずは、stable-diffusion-webuiをインストールするのに必要なソフトウェアをインストールします。

brew install cmake protobuf rust python@3.10 git wget

stable-diffusion-webuiのソースコードをgitで取得します。

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

stable-diffusion-webuiをインストールします。

cd stable-diffusion-webui
./webui.sh

必要なソフトウェアをインストールしてくれます。以下のような表示がされればインストール完了です。

LatentDiffusion: Running in eps-prediction mode
DiffusionWrapper has 859.52 M params.
Running on local URL:  http://127.0.0.1:7860

stable-diffusion-webuiを使ってみる

ブラウザからhttp://127.0.0.1:7860にアクセスます。

下記のような画面が表示されます。

stable-diffusion-webui

Bananaというワードで、v1-5-pruned-emaonly.safetensorsモデルで画像生成してみます。

stable-diffusion-webui-banana

モデルの追加方法

ckptやsafetensorsファイルをダウンロードし、stable-diffusion-webui/models/Stable-diffusionに保存することで、利用可能になります。

試しに、実写や写真系のリアルな画像生成を得意とするrealistic-visionを追加してみます。

https://huggingface.co/SG161222にアクセスします。

今回、v2.0を利用してみます。

モデルページに遷移し、Files and versionsからRealistic_Vision_V2.0.safetensorsを選択してダウンロードします。

ダウンロードしたファイルをstable-diffusion-webui/models/Stable-diffusionに保存します。

mv ~/Download/Realistic_Vision_V2.0.safetensors [インストールディレクトリ]/stable-diffusion-webui/models/Stable-diffusion

stable-diffuison-webuiを再起動すると、Stable Diffusion checkpointからモデル選択できるようになります。

画像生成のエラーが発生した場合

画像生成時に、下記のようなエラーが発生する場合があります。

RuntimeError: "upsample_nearest2d_channels_last" not implemented for 'Half'

これは単精度による高速化オプションが有効になっており、対応していない場合に発生します。

この場合、以下のように起動時の読み込みファイルを修正することで、回避できます。

cd stable-diffusion-webui
vim webui-macos-env.sh

export COMMANDLINE_ARGSの部分を以下のように修正します。

# 修正前
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 --use-cpu interrogatei"

修正後に再度、stable-diffusion-webuiを起動します。

./webui.sh

これで画像生成が行えるようになります。

感想

stable-diffusion-webuiを利用すると簡単に画像生成AIが利用できるようになります。

試しに使ってみてはいかがでしょうか?

ではでは、また次回。