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です。
GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI
何ができるかはドキュメントにまとめられています。
Features · AUTOMATIC1111/stable-diffusion-webui Wiki
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 git version 2.38.1.windows.1
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:
- The Docker client contacted the Docker daemon.
- The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64)
- The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
- 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
autoはstable-diffusion-webui、hlkyはsygil-webui、lsteinはInvokeAI
GPUなしで動作させたい場合
「docker compose --profile auto-cpu up --build」を使って実行してください。
(7) 日本語化
Stable Diffusion webUIは有志によって日本語化が行われており、組み込まれています。
アクセスした先のSettingsより日本語化を行うことが可能です。 Settingsに移動した後に、下へスクロールすると「Localization (requires restart)」という項目があります。その中からja_JPを選択してください。 その後、Stable Diffusion webUIを再起動することで日本語化されます。再起動する場合、PowerShellからCtrl + Cで終了させてください。起動は(6)に従ってください。