スポンサーリンク

Windows11 WSL2 の Stable Diffusion WebUI の環境を CUDA 11.7 で作り直す

a photo of an astronaut riding a horse on mars
記事内に広告が含まれています。
WSL2 含む Ubuntu に NVIDIA CUDA をインストールする方法、アンインストールする方法については「こちらのページ 」で紹介しています。複数の CUDA のバージョンが共存できます。
WSL2 含む Ubuntu に NVIDIA cuDNN ライブラリをインストールする方法について「こちらのページ 」で紹介しています。cuDNN ライブラリのダウンロードは要ユーザー登録です。
2024年5月2日現在の最新の Stable Diffusion WebUI の最新バージョンは、4月23日に公開された v1.9.3 です。v1.7.0 を SDXL 1.0 を含め WSL2 Ubuntu 22.04 LTS にゼロからインストールする方法は「こちらのページ 」、v1.8.0 へバージョンアップする記事は「こちらのページ 」、v1.9.0 へバージョンアップする記事は「こちらのページ 」に記載しています。

先日、Windows11 WSL2 の Ubuntu 22.04 LTS で Stable Diffusion WebUI の環境を作りました。

その中で、私は

nvidia-cuda-toolkit は nVIDIA のサイトからダウンロードする 11.6 で紹介している記事が多いですが、Ubuntu 22.04 の apt にある 11.5 でも Stable Diffusion WebUI は動作します。

https://hiro20180901.com/2023/02/16/use-stable-diffusion-webui-on-wsl2-ubuntu/

と書きましたが、Stable Diffusion WebUI でインストールされる torch のバージョンは 1.13.1+cu117 でした。

$ pip list | grep -i '^torch '
torch                   1.13.1+cu117

cu117 は CUDA Toolkit 11.7 の意味でしょうから、今回作成した環境では CUDA Tookit は 11.7 を使うのが正しいと思います。

PyTorch のサイトの PyTorch と CUDA の組み合わせの図を引用しますが、

Start Locally
Start Locally
PyTorch START LOCALLY

こちらの組み合わせでも PyTorch 1.13.1 で Python/Pip を使用する場合には、CUDA は 11.6 か 11.7 を使用するのが良さそうです。

不具合なく Stable Diffusion WebUI を使用する為に、Windows11 WSL2 Ubuntu 22.04 LTS にCUDA Toolkit 11.7 をインストールして、改めて Stable Diffusion WebUI をインストールしたいと思います。

20230822 追記 :

最新の Stable Diffusion WebUI をゼロからインストールし、Stable Diffusion XL 1.0 のモデルを使用する方法についてまとめました。PyTorch-2.0.1 & CUDA 11.8 です。

スポンサーリンク

Windows11 WSL2 Ubuntu 22.04 LTS の環境

Stable Diffusion WebUI をインストールする環境は以下の通りです。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.2 LTS
Release:        22.04
Codename:       jammy

$ python3 -V
Python 3.10.6

$ nvidia-smi -q

==============NVSMI LOG==============

Timestamp                                 : Tue Feb 21 21:59:25 2023
Driver Version                            : 528.49
CUDA Version                              : 12.0

Attached GPUs                             : 1
GPU 00000000:08:00.0
    Product Name                          : NVIDIA GeForce RTX 3060
    Product Brand                         : GeForce
    Product Architecture                  : Ampere
...snip...
スポンサーリンク

CUDA Toolkit 11.7 のインストール

CUDA Toolkit 11.7 Downloads

こちらから CUDA Toolkit 11.7 をインストールします。以下の条件で選択し、deb (local) を選択します。

Operating SystemLinux
Architecturex86_64
DistributionWSL-Ubuntu
Version2.0
Installer Typedeb (local)
CUDA Toolkit 11.7 インストール条件

インストール手順が表示されますので、順次実行します。

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

ちなみにやっている事は、

  1. CUDA 用の apt_preference を入手して (パッケージの優先順位を決めるファイル)
  2. /etc/apt/preferences.d 以下にapt_preference を保管
  3. パッケージのローカルインストール用の deb パッケージを入手
  4. deb パッケージをインストール
  5. gpg の鍵情報を apt の keyrings に保存
  6. apt update で情報を更新
  7. apt upgrade で cuda の本体をインストール

という流れです。

4番目でダウンロードする deb パッケージの中に複数の deb パッケージが含まれていて、ローカルのリポジトリから apt でインストールするようになっています。

$ apt show cuda-11-7
Package: cuda-11-7
Version: 11.7.0-1
Priority: optional
Section: multiverse/devel
Maintainer: cudatools <cudatools@nvidia.com>
Installed-Size: 7,168 B
Depends: cuda-runtime-11-7 (>= 11.7.0), cuda-toolkit-11-7 (>= 11.7.0), cuda-demo-suite-11-7 (>= 11.7.50)
Download-Size: 2,456 B
APT-Manual-Installed: no
APT-Sources: file:/var/cuda-repo-wsl-ubuntu-11-7-local  Packages
Description: CUDA 11.7 meta-package
 Meta-package containing all the available packages required for native CUDA
 development. Contains the toolkit, samples, driver and documentation. Locked
 at CUDA Toolkit version 11.7.

これで CUDA Toolkit 11.7 がインストールされました。

Stable Diffusion WebUI のインストール

手順は前回と同様ですので省略します。git clone でインストールして、学習済みモデルは元のディレクトリからコピーしました。

インストールが終了し webui.sh を起動して Stable Diffusion WebUI の画面からプロンプトを入力し、画像を生成する段階で libcuda.so を読み込めないエラーが発生しました。(前回は出ませんでした)

libcuda.so is not in found but libcuda.so.1 is. · Issue #8587 · microsoft/WSL
Version Microsoft Windows WSL Version WSL 2 WSL 1 Kernel Version 5.10.102.1 Distro Version Ubuntu 22.04 Other Software c...

上記のページを参考に、シンボリックリンクにすると動作しました。

$ LANG=C ls -l libcuda.*
lrwxrwxrwx 1 root root     12 Feb 21 22:27 libcuda.so -> libcuda.so.1
lrwxrwxrwx 1 root root     14 Feb 21 22:26 libcuda.so.1 -> libcuda.so.1.1
-r-xr-xr-x 1 root root 149912 Feb  3 08:10 libcuda.so.1.1
-r-xr-xr-x 1 root root 149912 Feb  3 08:10 libcuda.so.1.backup
-r-xr-xr-x 1 root root 149912 Feb  3 08:10 libcuda.so.backup

これで問題なく画像を生成する事が出来ました。

色々な学習済みモデルについて

こちらのページに色々な学習済みモデルへのリンクがありました。参考にさせて頂きます。

新しめのStable Diffusionモデルについて(更新終了)|まゆひら
※新しいモデルに注力するため、新記事に移行しました。なお、本記事にしか掲載していないモデルも多数あります。 ※最近の更新(2023年) ~03-19:「yumekawa_diffusion_ver2.1」「Dreamlike Anime 1...

まとめ

Stable Diffusion WebUI を CUDA Toolkit 11.7 を使用して再構築しました。

インストールされる PyTorch が 1.13.1+cu117 であり、Ubuntu 22.04 LTS 標準の CUDA Toolkit 11.5 でも動作したものの、原因不明の不具合が生じた場合に切り分けに苦労するかもしれませんので、推奨の CUDA Toolkit 11.7 を使う事にしました。

libcuda.so を読み込めないエラーが発生したものの、シンボリックリンクを貼り直す事で解消しました。

まだ使い始めの初心者で分からない事だらけですが、少しずつ学んでいこうと考えています。

今回のアイキャッチ画像

再び 'a photo of an astronaut riding a horse on mars' です。構図をある程度は制御できるようなのですが、今は試行錯誤で繰り返して生成しています。やっぱりプロンプト (呪文) の勉強が必要です。

コメント

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