【Stable Diffusion】 RTX50シリーズでLoRA学習を実行する方法 【CUDA 12.8対応】【Linux/Windows】
この記事ではNvidia最新GPUのRTX50シリーズ(blackwell世代)に対応したCUDA12.8 を使用してLoRA学習を実行できたのでその方法を紹介します。
NVIDIAの最新GPU(Blackwell 世代)である RTX5070, RTX5070Ti, RTX5080, RTX5090 では単ににStable DiffusionやLoRA学習ツールをインストールしただけでは動かないようになりました。
Blackwell 世代のGeForce RTXシリーズが CUDA 12.8 以降でないと対応していません。
しかし、Stable Diffusionに必要なPythonパッケージがCUDA 12.8に未対応のものがあるので、RTX50シリーズで Stable Diffusion が動作しません。
RTX50シリーズでStable Diffusionを起動する方法は以下の記事で解説しています。

この記事ではその問題を何とかしてLoRA学習を実行できる環境を構築する方法を紹介します。
最後におまけとしてxformersを使う方法も紹介します。
(自分でビルドするのでxformers導入は自己責任でお願いします)
環境
この記事ではLinux 上でStable Diffusionを動かすことを前提としています。
これはLinux のほうがStable Diffusionに必要なライブラリの開発が早いらしいです。
詳しくは知りません(笑)
WindowsにはWSL2という機能があり、それを使うことでWindows 11 上でLinuxを動作させることが可能です。
なのでLinux マシンがないという方もWindows 11搭載PCがあれば大丈夫です。
この記事を書くにあたり動作検証した環境は以下の通りです。
- OS = Ubuntu 24.04.2 LTS
- クリーンインストール直後の環境を想定
- WSL(Windows PC上で簡単にLinuxを動かすことができる機能)上で動作
- CPU = Intel Core Ultra 285k
- GPU = NVIDIA RTX 5070
使用パソコンは以下の記事で詳しく紹介しています。こちらもご覧ください。

CUDA 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.debdpkg -i以降はダウンロードされた.debファイルの名前を適宜使用してください。その後、以下でアップデート可能なパッケージリストを更新して、
sudo apt updateCUDA 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バージョンが返ってきたらインストール成功です。
pyenvのインストール
pyenv は、複数の Python バージョンを簡単に切り替えられるツールです。
Pythonを直接インストールしてもよいのですが、それだとほかのバージョンのPythonを使うときにStable Difffusionが起動できなくなったり、将来的にStable DifffusionのPythonバージョンが更新された場合に、自分のパソコンのPythonバージョンを更新するのも大変なので、pyenvで環境を作るのがおすすめです。
インストール方法は以下の記事にまとめていますので、こちらを参考にインストールを進めてみてみください。

Python 3.10.6のインストール
それでは、LoRA学習をするために必要な Python 3.10.6をインストールしましょう。
以下のコマンドでインストールができます。
pyenv install 3.10.6pyenvでインストールしたpythonを使うときは、pythonを使いたいフォルダ内にcdコマンドで移動してから そのフォルダ内だけでpythonを有効化すればOKです。
cd pythonを使いたいフォルダのパス
pyenv local 3.10.6LoRA学習ツールのインストール
Stable Diffusionの導入が終わったら、次はLoRA学習環境を構築していきます。
koya-ssさんのsd-scripts というツールをインストールします。
koya-ssさんのGitHubリポジトリでsd-scriptsを公開してくれています。
Gitを使ってダウンロード後、環境構築を行えばインストールすることができます。
方法はkoya-ssさんのGitHubリポジトリで説明されていますが、RTX50シリーズの場合は少し工夫が必要になるのでこの記事で紹介したいと思います。
インストールしたい場所またはホームディレクトリに移動しておきます。この記事ではホームディレクトリにインストールすることにします。
以下のコマンドでホームディレクトリに移動します。
cd ~その後、以下のコマンドでリポジトリをクローンします。
git clone https://github.com/kohya-ss/sd-scripts.gitファイルダウンロードができたらsd-scriptsディレクトリが作成されていると思うので、そのディレクトリに移動します。
cd ./sd-scripts移動したらこのディレクトリ(カレントディレクトリと呼ぶことにします)でPython 3.10.6を有効化しましょう。以下のコマンドで行います。
pyenv local 3.10.6その後、以下のコマンドでPythonの仮想環境を作ります。
python -m venv venv-m オプションはモジュールを起動するという意味です。
これを実行するとカレントディレクトリにvenvというフォルダが作成されて、このフォルダ内にパッケージなどがインストールされます。
ここで仮想環境を有効化しておきます。コマンドは以下の通りです。
source venv/bin/activate次にsd-scriptsの実行に必要なPythonパッケージをインストールしていきます。
必要なパッケージはカレントディレクトリにあるrequirements.txtというファイルに記載されています。
これを使って一気にパッケージをインストールしてしまいましょう。以下のコマンドで実行できます。
pip install -r requirements.txtPyTorchの更新
ここまでの作業を終えた状態で
pip list | grep torchを実行すると、torch 2.6がインストールされていると思います。これとtorchvisionをCUDA 12.8に対応したバージョンに変更します。
まず、以下のコマンドで古いバージョンをアンインストールします。
いらない説もありますが、余計なところでトラブりたくないので消しちゃいましょう。
(先ほどのコマンドでtorchが見つからなければインストールされていないのでアンインストール作業は不要です。)
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に対応したバージョンへあげることができました。
numpy, openCV, bitsandbytesの更新
以下のコマンドでnumpyとOpenCVパッケージを更新しておきましょう。
pip install -U numpy opencv-pythonまた、以下のコマンドでbitsandbytesを再インストールします。
pip uninstall bitsandbytes
pip install bitsandbytes動作確認
これでCUDA 12.8でsd-scriptsを実行できる環境が整いました。
sd-scriptsの使い方はこちらのTeruru and Robin YasuLab さんというYouTubeチャンネルの動画 で詳しく紹介されています。
使い方はよくわからん!って方はこの動画を参考に実行してみてください。
ここでは、簡単にやり方を説明します。
以下のコマンドで学習を実行することができます。
accelerate launch --num_cpu_threads_per_process 1 train_network.py \
--pretrained_model_name_or_path=AAAA \
--output_dir=BBBB \
--output_name=CCCC \
--dataset_config=DDDD \
--train_batch_size=1 \
--max_train_epochs=10 \
--resolution=512,512 \
--optimizer_type=AdamW8bit \
--learning_rate=1e-4 \
--network_dim=128 \
--network_alpha=64 \
--enable_bucket \
--bucket_no_upscale \
--lr_scheduler=cosine_with_restarts \
--lr_scheduler_num_cycles=4 \
--lr_warmup_steps=500 \
--keep_tokens=1 \
--shuffle_caption \
--caption_dropout_rate=0.05 \
-save_model_as=safetensors \
--clip_skip=2 \
--seed=42 \
--color_aug \
--mixed_precision=fp16 \
--network_module=networks.lora \
--persistent_data_loader_workersコマンド中のAAAA~DDDDには以下を入れてください。
AAAA: 元となるモデルファイルのパスBBBB: LoRA学習後のモデルファイルの保存先ディレクトリのパスCCCC: LoRA学習後のモデルファイルの名前(拡張子不要)- DDDD: データセットコンフィグファイル(.tomlファイル)のパス
これで学習が走れば成功です。
おまけ: xformersをビルドして使う
ここまででxformers以外の環境構築が終わっています。
いったん以下のコマンドで仮想環境を終了しておきましょう。
deactivateここからはCUDA12.8, Pytorch 2.8環境でxformersを無理やりビルドしていきますので、いったんカレントディレクトリを離れてホームディレクトリに戻りましょう。
cd ~xformersを無理やりビルドする方法は以下の記事で紹介しています。

xformersのビルドができたらwhl ファイルが生成されると思いますので、それをコピーしてsd-scriptsディレクトリに移してください。
それができたら以下のコマンドを打ち、sd-scriptsディレクトリに移動します。
cd ~/sd-scriptsそして仮想環境を再度有効化します。
source venv/bin/activateその後、以下のコマンドでビルドしたファイルを使ってxformersをインストールします。
pip install ビルドして生成されたファイル名.whlLoRA学習をxformersを使って行う場合は先ほどの学習実行コマンドの末尾に
--xformersを追加して実行すればOKです。
画像生成AIならPICSOROBAN
PICSOROBANは、ブラウザから手軽にStable Diffusionを使った画像生成が可能なクラウドサービスです。高価なPCやGPUを必要とせず、インストールやプログラミングも不要なため、テキストプロンプトを入力するだけで簡単に画像を生成できます。
CivitaiのモデルやLoRAをドラッグ&ドロップでアップロードして利用できるほか、ControlNet機能でキャラクターのポーズや線画を細かく制御することも可能です。画像生成を効率化するさまざまな拡張機能にも対応しており、これから画像生成AIを試したい方にもおすすめです。
