WSL2とDockerを用いたStable Diffusion Web UIのインストールとトラブルシューティングガイド
Stable Diffusion Web UIのDocker版をWSL2でインストールする方法
この記事では、Stable Diffusion Web UIのDocker版のインストール方法を詳しく解説します。特に、Windows Subsystem for Linux(WSL2)を使用したインストール方法に焦点を当てます。初めてWSL2を使用する方でも、この記事を参考にすれば簡単にインストールを行うことができます。
目次
- 1. WSL2のインストール
- 2. Dockerのインストール
- 3. Docker Composeのインストール
- 4. Stable Diffusion Web UIのDocker版のインストール
- 5. Stable Diffusion Web UIへのアクセス
- 6. エラーハンドリング
1. WSL2のインストール
まずはじめに、WSL2をインストールします。WSL2は、Windows上でLinux環境を動作させることができる非常に便利なツールです。WSL2のインストールとセットアップについては、以下の記事を参考にしました。
2. Dockerのインストール
次に、Dockerをインストールします。Dockerは、アプリケーションをコンテナという単位で実行することができるツールです。Dockerを使用することで、アプリケーションの実行環境を簡単に構築・共有・再現することができます。
以下に、Ubuntu上でDockerをインストールする手順を示します。この手順は、公式のDockerドキュメンテーションを参考にしています。
# システムのパッケージリストを更新
sudo apt-get update
# HTTPSを通じてリポジトリからパッケージを取得できるようにするためのパッケージをインストール
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
# Docker公式のGPG鍵を追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 安定版のDockerリポジトリをシステムのリポジトリリストに追加
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
# リポジトリを追加したら、再度パッケージリストを更新
sudo apt-get update
# Docker CEをインストール
sudo apt-get install docker-ce
以上でDockerのインストールは完了です。インストールが正しく行われたか確認するために、「docker –version」コマンドを実行してみましょう。
3. Docker Composeのインストール
最後に、Docker Composeをインストールします。Docker Composeは、複数のDockerコンテナを一度に管理するためのツールです。Docker Composeを使用することで、複数のコンテナからなるアプリケーションの起動・停止・再起動などを一括で行うことができます。
以下に、Docker Composeのインストール手順を示します。この手順は、公式のDocker Composeドキュメンテーションを参考にしています。
Docker Compose公式ドキュメンテーション Docker Composeのリリースページ
3. Docker Composeのインストール
次に、Docker Composeのインストールについて説明します。Docker Composeは、複数のDockerコンテナを管理するためのツールで、YAMLファイルに定義した設定に基づいてコンテナを作成・管理できます。
以下に、Ubuntu上でDocker Composeをインストールする手順を示します。この手順は、公式のDocker Composeドキュメンテーションを参考にしています。
Docker Compose公式ドキュメンテーション Docker Composeのリリースページ
# Docker Composeの安定版をダウンロード
sudo curl -L "https://github.com/docker/compose/releases/download/v2.19.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# ダウンロードしたDocker Composeのバイナリファイルに実行権限を付与
sudo chmod +x /usr/local/bin/docker-compose
# シンボリックリンクを作成
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# Docker Composeのバージョンを表示
docker-compose --version
以上で、WSL上でDocker Composeをインストールする手順の説明は終わりです。この手順により、WSL環境でもDocker Composeを利用して複数のDockerコンテナを簡単に管理することが可能になります。
なお、Docker Composeのバージョンは定期的に最新状態をチェックし、新しいバージョンがリリースされていた場合は、同様の手順で更新作業を行うことをお勧めします。これは新しい機能の追加やセキュリティパッチの適用など、システムを最新の状態に保つために重要です。
4. Stable Diffusion Web UIのDocker版のインストール
ここまでで、DockerとDocker Composeのインストールが完了し、Stable Diffusion Web UIのDocker版のインストールの準備が整いました。以下の手順では、GitHubの公式リポジトリを参考に、Stable Diffusion Web UIのインストールを行います。
Stable Diffusion Web UIの公式GitHubリポジトリ
# Stable Diffusion Web UIのリポジトリをクローン
git clone https://github.com/AbdBarho/stable-diffusion-webui-docker.git
# クローンしたリポジトリのディレクトリに移動
cd stable-diffusion-webui-docker
# Docker Composeを使用してアプリケーションをビルド・実行
docker compose --profile download up --build
以上の手順により、Stable Diffusion Web UIをDockerを使用してインストール・起動することができます。なお、具体的なプロファイル名や設定はプロジェクトやdocker-compose.ymlの内容により異なるため、適宜読み替えてください。
また、どのプロファイルを選択すれば良いかわからない場合、"auto"というプロファイルを選択することが無難かもしれません。以下のコマンドは、"auto"というプロファイルを指定してDocker Composeを実行します。
docker compose --profile auto up --build
5. Stable Diffusion Web UIへのアクセス
Stable Diffusion Web UIのインストールが完了したら、次にWSLでコマンドを入力し、IPアドレスを確認します。私の場合IPアドレスは172.22.135.150でした。さらにファイヤーウォールを確認すると無効になっていたので次のURLでアクセスします。
以上で、Stable Diffusion Web UIのDocker版のインストールとアクセス方法についての説明は終わりです。この手順により、WSL環境でもStable Diffusion Web UIを利用することが可能になります。
6. エラーハンドリング
特定のエラーが発生した場合の対処法を以下に示します。
Dockerデーモンへの接続エラー
以下のようなエラーが発生した場合、
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get “http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.config-hash%22%3Atrue%2C%22com.docker.compose.project%3Dwebui-docker%22%3Atrue%7D%7D”: dial unix /var/run/docker.sock: connect: permission denied
このエラーメッセージは、Dockerデーモンへの接続が許可されていないことを示しています。Dockerはデフォルトでrootユーザーのみが操作できますが、特定のユーザーをdockerグループに追加することで、rootユーザー以外でもDockerを操作できるようになります。以下の手順で対処可能です。
# 現在のユーザー(”USER_NAME”を自分のユーザー名に置き換えてください)をdockerグループに追加します。
sudo gpasswd -a USER_NAME docker
# 追加されたことを確認します。このコマンドを実行すると、ユーザーの所属グループが表示され、そこに”docker”が含まれていれば成功です。
id USER_NAME
# この設定は新しいセッションから有効となるため、一度ログアウトして再ログインする必要があります。
exit
再ログイン後、再度DockerまたはDocker Composeのコマンドを実行してみてください。以前のエラーが解消されているはずです。なお、セキュリティ上の理由から、必要なユーザーのみをdockerグループに追加することをお勧めします。
Docker Composeでのエラー
以下のようなエラーが発生した場合、
#0 6.095 07/04 11:11:57 [ERROR] CUID#7 ? Download aborted. URI=https://download.pytorch.org/whl/cu118/torch-2.0.1%2Bcu118-cp310-cp310-linux_x86_64.whl #0 6.095 Exception: [AbstractCommand.cc:351] errorCode=19 URI=https://download.pytorch.org/whl/cu118/torch-2.0.1%2Bcu118-cp310-cp310-linux_x86_64.whl #0 6.095 -> [AbstractCommand.cc:789] errorCode=19 CUID#7 ? Name resolution for download.pytorch.org failed:Timeout while contacting DNS servers #0 6.095 #0 6.095 07/04 11:11:57 [NOTICE] Download GID#e9d479fda44b0442 not complete: /cache/torch-2.0.1-cp310-cp310-linux_x86_64.whl #0 6.095 #0 6.095 Download Results: #0 6.095 gid |stat|avg speed |path/URI #0 6.095 ======+====+===========+======================================================= #0 6.095 e9d479|ERR | 0B/s|/cache/torch-2.0.1-cp310-cp310-linux_x86_64.whl #0 6.095 #0 6.095 Status Legend: #0 6.095 (ERR):error occurred. #0 6.098 #0 6.098 aria2 will resume download if the transfer is restarted. #0 6.098 If there are any errors, then see the log file. See ‘-l’ option in help/man page for details. ?? failed to solve: process “/bin/sh -c aria2c -x 5 ?dir /cache ?out torch-2.0.1-cp310-cp310-linux_x86_64.whl -c https://download.pytorch.org/whl/cu118/torch-2.0.1%2Bcu118-cp310-cp310-linux_x86_64.whl && pip install /cache/torch-2.0.1-cp310-cp310-linux_x86_64.whl torchvision ?index-url https://download.pytorch.org/whl/cu118” did not complete successfully: exit code: 19
このエラーメッセージは、PyTorchのwhlファイルのダウンロード中に問題が発生したことを示しています。具体的には、DNSの名前解決に失敗しています。以下に対処法をいくつか挙げます。
- 一時的なネットワーク接続の問題: このエラーは一時的なネットワークの問題が原因である可能性があります。その場合、ネットワーク接続を確認し、再度コマンドを実行してみてください。
- DNSサーバの問題: DNSサーバーがダウンしている、または過負荷状態にある可能性もあります。別のDNSサーバーを使用してみると良いでしょう。Googleの公開DNS(8.8.8.8 または 8.8.4.4)を使用するという選択肢もあります。
- Proxyの設定: あなたのネットワークがプロキシを使用している場合、プロキシの設定を確認する必要があります。Dockerのプロキシ設定を見直し、必要に応じて調整してみてください。
- PyTorch公式のダウンロードリンクの問題: また、PyTorch公式のダウンロードリンクに問題がある可能性も考えられます。ブラウザで同じURLにアクセスしてみて、リンクが有効であることを確認してください。
上記のエラーが出たので、ファイルを編集することでダウンロードがうまくいきました。
sudo vi /etc/resolv.conf
# 次を記述します。
nameserver 8.8.8.8
次のYouTube動画が参考になりますので紹介させていただきます。
最近のコメント