Stable Diffusion Web UIをMacで構築

MacでStable Diffusion Stable Diffusion
MacでStable Diffusion

Stable Diffusionはオープンソースで広く使われています。
個人での使い方としては、以下の2点があるかと思います。

  • クラウド環境で実行(Google Colab)
  • ローカル環境で実行

この記事では「ローカル環境で実行」するための環境構築について紹介します。
その中でもMacBook Pro(M1)で構築する際の注意点などを説明します。

(2023/5/11 追記)
・環境をいじっていたら動かなくなったため、再構築したときの情報を追記
・2023/5にGoogle Colabの無料ユーザは
 Stable Diffusion Web UIの使用を制限されるようになったため、
 ローカル構築の情報を豊富に

事前準備

マシン

Stable Diffusionは大量のGPUメモリを使用しますので、GPUマシンである必要があります。
最近のMacBookだと、M1チップ搭載モデルはGPUを使えます。

M1チップはApple独自のGPUですので、一般的なGPU設定では動かないことが多いです。
Stable Diffusionに限らずMacでAIモデルを作成していると、Gitにあるコードを書き換えないと動かないことが多いですよね。。
そんなMac使いAIエンジニアの方たちのための記事になれば幸いです!

ちなみに私の環境は、MacBook Pro、Apple M1 Max、32GBです。

インストール

以下をインストールします。
pythonライブラリは使うときに自動でダウンロードしにいく作りになっていますが、
手動でpip installコマンドやconda installコマンドなど使う場面があるかもしれません。
仮想環境バージョンに注意して、適宜インストールしてください。

  • Python
  • Git

構築手順

Stable Diffusion Web UIの入手

GitにあるStable Diffusion Web UIを入手します。
適当なディレクトリに移動し、以下のコマンドを実行する。

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

成功しますと「stable-diffusion-webui」というディレクトリが生成されています。

モデルのダウンロード

画像生成で使いたいモデルをダウンロードします。
ただ、Web UIの起動時にモデルがない場合は以下を自動でダウンロードしてきます。
SD v15(v1-5-pruned-emaonly.safetensors

ですので、最初はデフォルトのモデルで画像生成を楽しむとよいです。
後々欲しいモデルが出てきたらダウンロードするとよいです。
おすすめのモデルは以下で紹介しています。



モデルはstable-diffusion-webui/models/Stable-diffusion/に格納します。

Stable Diffusion Web UIの開始

stable-diffusion-webui/に移動し、以下のコマンドを実行する。
自動で必要なものをダウンロードしてくれます。初回実行時は時間がかかります。

ここでの注意としては、結果を16ビットにしないオプション(–no-half)をつけることです。
Macによっては32ビットじゃなきゃ計算しない!というものがあるため、–no-halfにしないと使えない機能があります。Hypernetworksとかファインチューニングする際が要注意です。

$ ./webui.sh --no-half


最終的にWeb UIのURL(http://127.0.0.1:7860)が標準出力されると成功です!
ブラウザで起動し、じょいふるな画像生成ライフをお楽しみください!!

トラブルシューティング

起動しない

Web UIが起動しない原因はいろいろ考えられますが、代表的なものは以下でしょうか。

  • GPUメモリが足りない
  • 必要なライブラリをインストールできない

GPUメモリが足りない場合、起動時にオプションをつけると良いです。
–xformersは少ないメモリでも動くようになりますが、Macだと使えないこともあるため要注意です!
必要なライブラリをインストールできないのは、プロキシがうまく働いていないかもしれません。
VPNをかましてネット接続している場合、弾く設定にしているかもしれません。
–shareオプションをつけることで起動できるかもしれません。

起動しても操作できない

Web UIが起動して、さあ画像生成しようとすると以下のエラーが画面上に表示されることがあります。

Expecting value: line 1 column 1 (clear 0)

どのボタンを押しても右上にこれが出ます。
原因はVPN、プロキシが影響している可能性があります。
以下コマンドを実行しプロキシを削除したりしてみてください。

export http_proxy=
export https_proxy=

それでもダメな場合、–no-gradio-queueオプションをつけてWeb UIを起動してみてください。

おわりに

Stable Diffusion Web UIで発生するエラーの対処法は、やはり開発者が一番詳しいと思います。
Gitで公開してくれてますので、Readmeを見て自分の環境との差異は何かを確認するとよいです。
https://github.com/AUTOMATIC1111/stable-diffusion-webui

どうしても無理だ!もうローカルで構築するのを諦めよう!もっと手軽に試したい
という方は以下をお試しください。

■ブラウザで手軽に画像生成


■アプリで手軽に画像生成

コメント

タイトルとURLをコピーしました