【Stable Diffusion】 RTX50シリーズでStable Diffusionを起動する方法 【CUDA 12.8対応】

せっかくRTX 50シリーズを買ったのにStable Diffusionが動かず困っているあなた!これで救われます!!(たぶん)
この記事では RTX50シリーズでStable Diffusionを起動する方法を解説します。
最終的にはStable Diffusionを Linux 上で起動させますが、LinuxをWidnows上で動かすので、Windows PCだけで完結するようにしました。(もちろん生のLinuxでも大丈夫です)
はLinux のほうがStable Diffusionに必要なライブラリの開発が早いらしい…。
WSL2 :
Windows 11標準搭載の機能。LinuxをWidnows上で仮想的に動かすことができる。
Windows Subsystem for Linux 2の略称。
NVIDIAの最新GPU(Blackwell 世代)である RTX5070, RTX5070Ti, RTX5080, RTX5090 では単ににStable Diffusionをインストールしただけでは動かないようになりました。
Blackwell 世代のGeForce RTXシリーズが CUDA 12.8 以降でないと対応していません。
一方、Stable Diffusion の中で使用している PyTorch は バージョン2.6が最新版であり、CUDA 12.6 までの対応でとなります。
このバージョン差がRTX50シリーズで Stable Diffusion が動作しない理由です。
ただ、PyTorch はバージョン 2.8で CUDA 12.8 への対応が予定されており、実はベータ版が公開されています。
この記事では PyTorch 2.8 をインストールしてRTX50シリーズでStable Diffusionを起動する方法を解説します。
環境
PyTorchの開発は Linux 環境への対応の方が早いという噂を聞いたのでOSは Ubuntu を選択します。
- OS = Ubuntu 24.04.2 LTS
- クリーンインストール直後の環境を想定
- WSL(Windows PC上で簡単にLinuxを動かすことができる機能)上で動作
- CPU = Intel Core Ultra 285k
- GPU = NVIDIA RTX 5070
pyenvのインストール
まず、pyenvのGitHubリポジトリ から必要なファイルをとってきます。
このリポジトリのREADMEにインストール方法が記載されていますが、その方法だけだと動作しません。(罠)しかもREADMEは英語です。
以下のコマンドでリポジトリをクローンします。
git clone https://github.com/pyenv/pyenv.git
このあと起動前の事前準備としてgcc, zlib, OpenSSLをセットアップしていきます。
gcc、zlibのインストールはそれぞれ以下のコマンドでできます。
sudo apt install build-essential
sudo apt install zlib1g-dev
OpenSSL のインストールは以下のコマンドでできます。
sudo apt install libssl-dev libbz2-dev libreadline-dev libsqlite3-dev curl libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
次に以下のコマンドで先ほど pyenv をクローンしたディレクトリに移動します。
cd pyenv
以下のコマンドでpyenvを高速化します。失敗してもpyenvは問題なく動くみたいです。
src/configure && make -C src
ここでいったん以下のコマンドでホームディレクトリに戻ります。
cd ~
最後にパスの設定をします。ホームディレクトリにある .bashrc というファイルを開いて末尾にpyenvのパス内容を追記します。
まず、以下のコマンドでvimエディタを使って.bashrcを開きます。
vi ~/.bashrc
vimの使い方はこちらの記事で少し解説しているので参考にしてみてください。
開いたら一番下まで移動して、一番下の行に以下の内容をコピペします。
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
ここまで終えたら最後に .bashrc の変更内容を以下のコマンド適用します。
source ~/.bashrc
ここまでで pyenv が使えるになっているはずなので以下のコマンドで確認します。
pyenv --version
バージョンを表す数字が返ってきたらインストールは完了です。
Python 3.10.6のインストール
それでは、Stable Diffusion が指定しているPython 3.10.6をインストールしましょう。
以下のコマンドでインストールができます。
pyenv install 3.10.6
pyenv
でインストールしたpythonを使うときは、pythonを使いたいフォルダ内にcd
コマンドで移動してから そのフォルダ内だけでpythonを有効化します。
cd pythonを使いたいフォルダのパス
pyenv local 3.10.6
CUDA Toolkit 12.8 のインストール
NVIDIAの公式サイトからインストールします。
公式サイトのCUDAインストール用ページにアクセスすると、自分の環境を選択するところがでてきます。 今回は以下のように選択しました。

するとページ下のほうでインストールの方法を教えてくれるのでそれを参考にインストールを進めていきます。
まずは念のためホームディレクトリに戻っておきましょう。
cd ~
wget
を使ってパッケージをダウンロードします。
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
公式ダウンロードページの「CUDA Toolkit Installer」と書いてあるところにwgetコマンドがあるので、wget
以降のURLはそこに書いているURLを使用してください。
うまくいくとホームディレクトリにcuda-keyring_1.1-1_all.debというファイルがダウンロードされていると思います。
次にダウンロードしたパッケージをdpkg
コマンドでインストールします。
sudo dpkg -i cuda-keyring_1.1-1_all.deb
dpkg -i
以降はダウンロードされた.debファイルの名前を適宜使用してください。その後、以下でアップデート可能なパッケージリストを更新して、
sudo apt update
CUDA Toolkit 12.8
, cuDNN 9.8.0
を以下のコマンドでインストールします。
sudo apt install cuda-toolkit-12-8 cudnn
ついでにドライバも以下のコマンドでインストールしておきます。公式ダウンロードページにこれも載っています。
sudo apt install cuda-drivers
最後にインストールしたCUDA Toolkit
のパスを通します。pyenv
の時と同様に~/.bashrc
の末尾にパス情報を追記します。
まず、以下のコマンドでvimエディタを使って.bashrc
を開きます。
vi ~/.bashrc
その後、一番下まで移動して、一番下の行に以下の内容をコピペします。
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
export CUDA_HOME=/usr/local/cuda-12.8
export CUDNN_INCLUDE_DIR=/usr/local/cuda/include
export CUDNN_LIB_DIR=/usr/local/cuda/lib64
ここまで終えたら最後に.bashrc
の変更内容を以下のコマンド適用します。
source ~/.bashrc
これでCUDA Toolkit
が使えるようになっているはずなので以下のコマンドで確認します。
nvcc -V
バージョンが返ってきたらインストール成功です。
Stable Diffusion のインストール
Stable DiffusionのGitHubリポジトリ から一式をダウンロード(リポジトリをクローン)します。
いったんホームディレクトリに戻りましょう。インストールしたい場所があればその場所へ移動してください。
cd ~
以下のコマンドでリポジトリをクローンします。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
するとstable-diffusion-webui
というフォルダができているのでそこに移動します。
cd stable-diffusion-webui
ここでいったんStable Diffusion を起動して必要なPythonパッケージをインストールしてもらいましょう。
まず、Python 3.10.6
の仮想環境を作ります。今いるフォルダで動作するpythonを以下の通り指定します。
pyenv local 3.10.6
次に以下のコマンドで仮想環境venvを作ります。
python -m venv venv
そのあと、仮想環境を有効化します。
source venv/bin/activate
最後に以下のコマンドでStable Diffusionを起動します。
./webui.sh
しかし、今のままだとCUDA 12.8
に対応していない状態で起動するので途中でエラーが出て止まってしまいます。
ただ、いったん起動を試みることで必要なパッケージがインストールされるので、あとはPyTorchを更新すればよいという状態に持っていくことができます。
PyTorchの更新
ここまでの作業を終えた状態で
pip list | grep torch
を実行すると、torch 2.6
がインストールされていると思います。これとtorchvision
をCUDA 12.8
に対応したバージョンに変更します。
まず、以下のコマンドで古いバージョンをアンインストールします。いらない説もありますが、余計なところでトラブりたくないので消しちゃいます。
pip uninstall torch torchvision
ここで、PyTorch公式ページからインストールに必要な情報を探します。
ページにアクセスして以下のように環境を選択すると一番下の欄にインストールに必要なコマンドが出てきます。(pip3
と書いていますがpip
で動きます)

今回はtorchaudio
は不要なので、以下のコマンドでtorch
とtorchvison
をインストールします。
pip install -U --pre torch torchvision --index-url https://download.pytorch.org/whl/nightly/cu128
これでPyTorchをCUDA12.8
に対応したバージョンへあげることができました。
起動→動作確認
ついに起動です。
以下のコマンドでStable Diffusionを起動して問題なく画像が生成できればインストール成功です。
./webui.sh
おまけ: xformersの導入
Stable Diffusionはxformers
というpythonパッケージを導入して起動することで高速化・VRAMメモリの節約が可能だと言われています。(なくても動きます)
ただ、このxformers
もCUDA 12.8には対応していません。
これについてもいろいろと調べてみると、CUDA 12.8 環境で自力でxformers
をビルドすることで動作するみたいなので検証してみました。
以下の記事で導入検証の情報共有を行っていますのでご参考まで。

参考文献
ウェブサイト
- 【Python】【Linux】pyenvを使用した環境構築:
https://qiita.com/Ryo8-k2arl/items/d7220d4f19c76686ef52 - RTX5090で、StableDiffusion Automatic1111 を動かしてみた:
https://qiita.com/hgodai/items/f958b69216f86819c740
ソフトウェアリンク
- pyenv
https://github.com/pyenv/pyenv - PyTorch公式サイト
https://pytorch.org/get-started/locally/