JavaScriptを有効にしてください

Stable Diffusion WebUI を Dockerで使用する

 ·  ☕ 2 分で読めます

Stable Diffusion WebUI を Dockerで使用する

簡単にローカル環境で Stable Diffusion WebUI を使用するメモ。

Docker が必要になります。

GitHub から対象をダウンロード

GitHub から対象を取得します。
Gitが入ってないのなら GitHub に飛んで対象のソースをダウンロードしてください。

1
git clone https://github.com/AbdBarho/stable-diffusion-webui-docker.git

構築

構築手順のとおりにやっていきます。

初回起動

まずはDockerをビルドします。

1
docker compose --profile download up --build

結構時間がかかるので待ちましょう。

以下のように exited with code 0 が出たら問題なくビルド完了になります。

1
webui-docker-download-1 exited with code 0

起動

WebUI を起動します。

docker compose --profile auto up --build

他にも以下のオプションがあります。

docker compose --profile [ui] up --build
  • invoke: 初期のフォークの 1 つ、 InvokeAI による素晴らしい UI InvokeAI
  • auto: 最も人気のあるフォーク、すっきりした UI を備えた多くの機能、 AUTOMATIC1111 によるリポジトリ AUTOMATIC1111
  • auto-cpu: GPU を持たないユーザー向け。
  • comfy: グラフベースのワークフロー UI comfyanonymous

これも初回はモデルのダウンロードなどで時間がかかります。

起動が完了したら http://localhost:7860/ にアクセスするとWebUI画面が出てきます。

停止

停止する場合は起動したターミナル上で Ctr+C で停止します。

NansException: A tensor with all NaNs was produced in Unet. エラーの対処

僕の環境では以下のようなエラーが発生しました。

modules.devices.NansException: A tensor with all NaNs was produced in Unet. This could be either because there's not enough precision to represent the picture, or because your video card does not support half type. Try setting the "Upcast cross attention layer to float32" option in Settings > Stable Diffusion or using the --no-half commandline argument to fix this. Use --disable-nan-check commandline argument to disable this check.

調べたところ

  • 画像を表現するのに十分な精度がない
  • ビデオカードがhalf型をサポートしていない

このエラーを修正するためには以下の設定を行う必要があります。

Settings > StableDiffsion >「Upcast cross attention layer to float32」にチェック > ApplySettings で設定。

これでエラーが解消されて生成されるかと思います。

まとめ

これでローカル環境で簡単に使用ができます。
GPUが貧弱過ぎて辛い…(´;ω;`)

個人的にはローカルPCが汚れにくい、Docker版を推します。
PythonのバージョンアップなどもDocker側で対応してくれるので良いと思っています。

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer