先日、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 の組み合わせの図を引用しますが、
こちらの組み合わせでも 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 をインストールします。以下の条件で選択し、deb (local) を選択します。
Operating System | Linux |
Architecture | x86_64 |
Distribution | WSL-Ubuntu |
Version | 2.0 |
Installer Type | deb (local) |
インストール手順が表示されますので、順次実行します。
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
ちなみにやっている事は、
- CUDA 用の apt_preference を入手して (パッケージの優先順位を決めるファイル)
- /etc/apt/preferences.d 以下にapt_preference を保管
- パッケージのローカルインストール用の deb パッケージを入手
- deb パッケージをインストール
- gpg の鍵情報を apt の keyrings に保存
- apt update で情報を更新
- 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 を読み込めないエラーが発生しました。(前回は出ませんでした)
上記のページを参考に、シンボリックリンクにすると動作しました。
$ 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 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' です。構図をある程度は制御できるようなのですが、今は試行錯誤で繰り返して生成しています。やっぱりプロンプト (呪文) の勉強が必要です。
コメント