2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Mini PC HX80G(AMD製GPU RX6600M)でStable Diffusionを使ってみる

Last updated at Posted at 2024-05-03

はじめに

久しぶりにStable DiffusionをAMD製GPUのWindows PCで使おうとしたのですが、環境構築方法をすっかり忘れていてたので、CPUのみを使う場合とGPUを使う場合の両方の手順をメモしておきます。

環境

実行環境はミニPCなので性能は高くないのですが、一応軽いゲームであれば動くレベルのGPU(Memory 8GB)がついている機種です。このGPUを使ってStable Diffusionで画像生成を実行できるようにしたいと思います。

ミニPC Minisforum HX80G
CPU AMD Ryzen7 5800H (8コア)
GPU Radeon RX 6600M (8GB)
Memory DDR4 32GB
OS Windows 11 Pro

インストール

前提条件

OS Windows 11 Pro
Python3 , Git for Windowsをインストール済み

手順(CPU利用)

Gitの以下のレポジトリを任意のフォルダにクローン

git clone https://github.com/lshqqytiger/stable-diffusion-webui-directml

Exploreでクローンしたフォルダは以下の
stable-diffusion-webui-directml
フォルダを開き
webui-user.batをダブルクリックし起動

スクリーンショット 2024-05-03 192810.png

GPU関連のエラーが発生するので、GPUチェックをスキップしCPUを使うようにwebui-user.batを書き換え

webui-user.bat
@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--update-all-extensions --skip-torch-cuda-test --medvram --opt-sub-quad-attention --opt-split-attention --no-half --precision full --no-half-vae --upcast-sampling --update-check

call webui.bat

生成中のCPU,GPU使用率は以下の通り、GPUが使われておらずCPU使用率が高くなっています。
image.png

1枚生成するのに約4分40秒でした。
00007-1806436568.png

手順(GPU利用)

Gitの以下のレポジトリをクローン

git clone https://github.com/lshqqytiger/stable-diffusion-webui-directml

stable diffusion webui directml

webui-user.bat
を実行すると、必要なファイルのインストールが実行される。

途中で以下のエラーが発生する

Traceback (most recent call last):
  File "C:\temp\stable-diffusion-webui-directml\launch.py", line 48, in <module>
    main()
  File "C:\temp\stable-diffusion-webui-directml\launch.py", line 39, in main
    prepare_environment()
  File "C:\temp\stable-diffusion-webui-directml\modules\launch_utils.py", line 590, in prepare_environment
    raise RuntimeError(
RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check

途中でエラーが発生するので
torchのdirectmlをインストールする。
cd venv\Scripts
activate

Torch(PyTorch)がGPUでは使えないというメッセージのようなので、direct MLに対応したTorchをインストールする必要があります。

Stable Diffusionの起動バッチwebui.batの中身をみると、以下の記述がありPythonの仮想環境への切り替えはstable-diffusion-webui-directml配下のvenv\Scripts/activate.batで切り変えていることが分かります。

webui.bat
set PYTHON="%VENV_DIR%\Scripts\Python.exe"
call "%VENV_DIR%\Scripts\activate.bat"
echo venv %PYTHON%

コマンドプロンプト上で次のコマンドを入力しactivate.batを実行てPythonの仮想環境を有効化します。

cd C:\GitでCloneを実行したフォルダのパス\stable-diffusion-webui-directml\venv\Scripts
activate.bat

このコマンドを実行すると、コマンドプロンプトの先頭に (venv) と表示されるようになります。
これは、仮想環境が有効化されたことを示しています。

仮想環境が有効化された状態で、torch_directmlなどの必要なパッケージをインストールします。

pip install torch_directml

解説
仮想環境が有効化された状態では、pipコマンドでインストールするすべてのパッケージは、仮想環境内にインストールされ、システム全体には影響を与えません。この状態でインストールを行うことで、他のプロジェクトやシステム環境に影響を与えることなく、必要な依存関係を管理することができます。

その後、
webui-user.batを以下のように編集

webui-user.bat
@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--use-directml --update-all-extensions --medvram --opt-sub-quad-attention --opt-split-attention --no-half --precision full --no-half-vae --upcast-sampling --update-check

call webui.bat

COMMANDLINE_ARGSで指定するオプションは環境と好みにより調整
--use-directml は必須。
--medvram はメモリが少ないので指定。

webui-user.batを実行するとwebuiが起動しブラウザから画像生成ができます。

スクリーンショット 2024-05-03 212651.png

CPU 使用率が低く、GPUが99%とGPUをしっかり使えているようです。

スクリーンショット 2024-05-03 205933.png

実行時間は一枚40秒程度

まとめ

CPU Ryzen7 5800H GPU RX6600M
280秒 40秒

Mini PCのGPUを使いStable Diffusionで画像生成したところ、
CPUのみの場合と比較して約7倍高速に生成できることが分かりました。

2024/8/10 追記

手順(GPU)の後、webui-user.batで起動しようとすると、エラーが発生するようになっていました。

    from .onnxruntime_pybind11_state import *  # noqa
ImportError: DLL load failed while importing onnxruntime_pybind11_state: ダイナミック リンク ライブラリ (DLL) 初期化ルーチンの実行に失敗しました。

環境依存の問題のようですが、私の環境ではVisual C++の再配布可能パッケージを更新したところ起動できるようになりました。

最新の Microsoft Visual C++ 再頒布可能パッケージ バージョン

2
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?