メインコンテンツまでスキップ

Windows で Stable Diffusion web UI を動かす方法

Stable Diffusion web UI を Docker を使用して Windows 上で動作させる方法についてまとめてあります。

前提条件

この投稿での環境についてです。必ずしも同様の環境である必要はありません。参考にしてください。

  • OS: Windows 11 Pro 22H2
  • CPU: Ryzen 7 5700X
  • GPU: Geforce RTX 3060
  • メモリ: 32GB
  • Docker、gitが導入可能、もしくは、すでに導入されている環境

当たり前ですが、Stable Diffusion が扱えるだけのスペックが整っている事が前提です。

Stable Diffusion web UI (AUTOMATIC1111 fork) について

AUTOMATIC1111 さんが fork した Stable Diffusion です。webui がついており、コマンドを使うことなくより簡単に Stable Diffusion を扱えるようにします。私が知る限り、webui から最も様々なことができる Stable Diffusion fork です。

何ができるかはドキュメントにまとめられています。

Stable Diffusion WebUI Docker について

普通に Stable Diffusion を動かそうとすると手間なので、今回はインストールの手間を減らすために Docker を使用します。AbdBarho が公開している Stable Diffusion WebUI Docker を利用します。

Stable Diffusion WebUI Docker では、AUTOMATIC1111、hlky、lstein の Stable Diffusion fork を扱うことが可能です。今回は AUTOMATIC1111 fork を使用します。

セットアップ

Stable Diffusionのセットアップを始めます。人によっては、部分的にスキップ可能な箇所もあると思います。

(1) git for windows のインストール

git for windows をインストールしてください。インストール済みの場合は、無視していいです。

詳細なインストール方法については解説しません。 Download より .exe ファイルをダウンロードし、手順に従うことでインストールが可能です。

(2) Docker Desktop のインストール

Docker Desktop をインストールしてください。インストール済みの場合は、無視していいです。

詳細なインストール方法については解説しません。 Download Docker Desktop より .exe ファイルをダウンロードし、手順に従うことでインストールが可能です。

(3) インストールの確認

正常にインストールが完了しており、Docker Desktop が起動状態であれば、Windows PowerShell から以下のコマンドを実行する事で、下記の結果を得ることができます。

Git for Windows の確認

git -v でインストールされたバージョン情報を確認できます。インストールしたバージョンによって異なる結果が返ってきます。

git -v

Docker for Desktop の確認

docker version でインストールされたバージョン情報を確認できます。インストールしたバージョンによって異なる結果が返ってきます。

docker version
Client:
Cloud integration: v1.0.29
Version: 20.10.20
API version: 1.41
Go version: go1.18.7
Git commit: 9fdeb9c
Built: Tue Oct 18 18:28:44 2022
OS/Arch: windows/amd64
Context: default
Experimental: true

Server: Docker Desktop 4.13.0 (89412)
Engine:
Version: 20.10.20
API version: 1.41 (minimum version 1.12)
Go version: go1.18.7
Git commit: 03df974
Built: Tue Oct 18 18:18:35 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.8
GitCommit: 9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0

もしも Docker の動作確認をしたい場合は、docker run hello-world コマンドでイメージからコンテナを作成してみてください。正常にコンテナを起動することができれば、以下のメッセージを得ることができます。

docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:e18f0a777aefabe047a671ab3ec3eed05414477c951ab1a6f352a06974245fe7
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/

(4) Stable Diffusion WebUI Dockerをclone

Stable Diffusion WebUI Docker を clone します。以下のコマンドを実行してください。

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

現在いるディレクトリ上にstable-diffusion-webui-docker というディレクトリが作成され、その中に内容がダウンロードされます。

以降は、stable-diffusion-webui-docker で作業を行うので、ディレクトリへ移動します。移動するには、以下のコマンドを実行してください。

cd stable-diffusion-webui-docker

(5) モデルデータをダウンロード

Stable Diffusion が利用するモデルデータをダウンロードします。以下のコマンドを実行してください。

docker compose --profile download up --build

このコマンドにより、必要なモデル・ファイルがすべてダウンロードされ、整合性が検証されます。これらのデータは一度ダウンロードするのみで済みます。

ダウンロードされるデータは12GB近いので、十分な容量の確保と安定したインターネット接続が必要です。

かなり時間がかかりますので、待ちましょう。

(6) Stable Diffusion webUIの実行

以下のコマンドを実行することで、webUIを実行できます。

docker compose --profile auto up --build

最初の起動には時間がかかります。最初の起動でダウンロードされた内容などは、 data ディレクトリにキャッシュされるため、次回以降の起動は早くなります。インターネット接続速度によって異なりますが、初回起動には15分から1時間程度かかる場合があります。以降は、20秒程度です。

実行後は、http://localhost:7860/ からアクセスが可能です。

他のforkを使う場合

docker compose --profile [ui] up --build の[ui]を以下の文字列のいずれかに置き換えてください。

  • auto
  • hlky
  • lstein

autostable-diffusion-webuihlkysygil-webuilsteinInvokeAI

GPUなしで動作させたい場合

docker compose --profile auto-cpu up --build を使って実行してください。

(7) 日本語化

Stable Diffusion webUI は有志によって日本語化が行われており、組み込まれています。

アクセスした先の Settings より日本語化を行うことが可能です。

Settings に移動した後に、下へスクロールするとLocalization (requires restart) という項目があります。その中から ja_JP を選択してください。

その後、Stable Diffusion webUI を再起動することで日本語化されます。再起動する場合、Shell から Ctrl + C で終了させてください。起動は(6)に従ってください。