ローカルでAMDのGPU(direct-ml)(もしくはGPUなし環境)を使って高速な画像生成を動作させる(お試し)

この記事は約3分で読めます。
スポンサーリンク

やりたいこと

AMDのGPUを使用して高速な画像生成を動作させてみます。

通常のStableDiffusionで画像生成が遅かったり、試しに画像生成を試してみたいという方向けです。

(すでにStableDiffusionでいろいろやっている方にはモデルも固定され、パラメータ調整もほぼできないため不向きです。)

DirectMLとDirectMLのサンプルコードを使用します。

HWのスペックは以下の通りです。

CPUAMD Ryzen 7 7735HS
メモリ32GB
ストレージ外付けHDD
(システムディスクはSSD、容量が大きいため外付けで運用)
GPUAMD Radeon 680M
(CPU内臓)
スポンサーリンク

環境構築

作業用のフォルダを作成します。

以下のリポジトリをクローンします。

DirectML/PyTorch/llm at master · microsoft/DirectML
DirectML is a high-performance, hardware-accelerated DirectX 12 library for machine learning. DirectML provides GPU acceleration for common machine learning tas...

venv環境への移動(任意)

必要であればコマンドプロンプトで以下のコマンドを実行して、Venvの環境を作成してアクティブにします。

python -mvenv venv
venv\scripts\activate.bat

作業フォルダへ移動

以下のコマンドを実行して画像生成(StableDiffusion)のサンプルコードに移動します。(クローンしたリポジトリはDirectMLのサンプルコードの集まりのため個々のサンプルを使用するには作業フォルダに移動します。)

cd PyTorch\diffusion\sd

ライブラリのインストール

以下のコマンドを実行し、ライブラリのインストールを行います。

pip install -r requirements.txt
pip install torch-directml
pip install accelerate
スポンサーリンク

実行

以下のコマンドを実行し起動します、

python app.py

初回起動時はモデルのダウンロードが行われるため時間がかかります。

コマンドプロンプトに以下のように表示されたら表示されているURLをブラウザで表示します。

Running on local URL: http://127.0.0.1:7860

以下のような画面が表示されれば成功です。

画面上部のテキストボックスにプロンプトを入力してRunをクリックすることで画像生成を行うことができます。

SDXL Turboに関して

私の環境だとSD Turboで画像生成した後にSDXL Turboに切りかえようとするとエラーになりました(VRAMが足りない?)

SDXL Turboで画像生成するには起動直後にモデルを切り替える必要があります。

またSDXL Turboでの実行は2回目以降失敗します。

スポンサーリンク

結果

AMDのCPU内臓GPUで高速な画像生成を動作させることができました。

今回使用したサンプルでは必ず2枚同時に作成されます。

モデルがロード済みの2回目の実行ですと、2枚で7秒ほどで画像生成が完了しました。(似た環境で実行している方だとどれだけ早いかわかると思います。)

コメント

タイトルとURLをコピーしました