Stablediffusionのextention sd-webui-reactorをインストールしてトラブル発生!

日記extension,StableDiffusion

トラブルのエラー

[BUG] ...RuntimeError: D:\a\_work\1\s\onnxruntime\core\session\provider_bridge_ort.cc:1029 onnxruntime::ProviderLibrary::Get [ONNXRuntimeError] : 1 : FAIL : LoadLibrary failed with error 126 "" when trying to load "C:\Program Files\Python310\lib\site-packages\onnxruntime\capi\onnxruntime_providers_tensorrt.dll

Stablediffusion起動中に上記のエラーが表示された。これではreactorは使えない。

解決備忘録


備忘録を元に実施してトラブルが発生しても責任は負いません。要注意!
何が起きるのか分からないのでstable-diffusion-webuiフォルダは丸ごとバックアップしておこう。
文中では、stable-diffusion以外で使用するPythonのことを便宜的にWindows用Pythonと書く。

チェック1

Stablediffusion を最新版にして差し支え無ければ最新版にする。

powershell #起動
cd C:\Path\To\stable-diffusion-webui #正しいPATHは自身の環境使用してね
git pull

なにか色々表示されだしたら更新してる。

チェック2

以下3点は依存関係あるのでバージョンの互換性を把握しよう!
・ONNX Runtime(pipから通常のインストールではダメ!罠!チェック5記載のコマンド通りにインストール)
・CUDA(NVIDIAのソフトインストール)
・cuDNN(NVIDIAのソフトインストール)

このサイトで互換性みる。
https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements

チェック3

NVIDIAソフトはちゃんとインストールしてる?
・CUDA Toolkit(オイラが使用したバージョン cuda_12.6.0_560.76_windows.exe)
・cuDNN(オイラが使用したバージョン cudnn_9.3.0_windows.exe)
とりあえずチェック1の互換性に気をつけながら、インストールプログラムはググって公式HPからダウンロードする!
再起動忘れずに。

チェック4

Python複数存在しない?あるんじゃない?パソコン初心者殺しの罠!
Windows用とStableDiffusion用
コマンドプロンプト起動後のデフォルトのPythonはWindows用になっていた

コマンドプロンプト起動して、以下コマンド実行する
where python

そして表示される
C:\Users\xxxx\AppData\Local\Programs\Python\Python310\python.exe ←Windows用
C:\Users\xxxx\AppData\Local\Microsoft\WindowsApps\python.exe ←Windows用

複数表示されたpathに StableDiffusionのpathが含まれなければ
Windows用のPythonで実行されている!

StableDiffusion用のPythonで実行されたのなら更に1行多く表示される
where python
C:\Users\xxxx\AppData\Local\Programs\Python\Python310\python.exe ←Windows用
C:\Users\xxxx\AppData\Local\Microsoft\WindowsApps\python.exe ←Windows用
C:\Path\To\stable-diffusion-webui\venv\Scripts\python.exe ←StableDiffusion用

ちなみにWindows用のPythonを使用して作業しても本件は解決しない!Python用のを使用しよう

コマンドプロンプトから

cd C:\Path\To\stable-diffusion-webui #正しいPATHは自身の環境使用してね
.\venv\Scripts\activate # 仮想環境をアクティブにする
python --version # Pythonのバージョンを表示する

(venv) C:\Path\To\stable-diffusion-webui> #プロンプトはこんな感じで表示される。

チェック5

では、必要なパッケージをインストールする

(venv) C:\Path\To\stable-diffusion-webui> の状態から
python
python -m pip install --upgrade pip
pip uninstall rembg
pip uninstall onnxruntime
pip install rembg[gpu] onnxruntime-gpu #install rembg with GPU support

チェック6

チェック4までやってダメなら
StableDiffusionのrequirements.txt ファイルに記載されたパッケージを強制上書きインストールする。
多少リスクもあるので自己判断で!

(venv) C:\Path\To\stable-diffusion-webui> の状態から
pip install -r requirements.txt --ignore-installed #強制的上書き

ちなみに、下記のコマンドであれば、強制上書きではない。
pip install -r requirements.txt

チェック7

それでも解決しないときは、ChatGPTに聞く!