こんにちは!今回は、AMD Radeon RX 6600Mを使ってWindows環境でStable Diffusionを動かす手順を紹介します。AMD GPUでのStable Diffusion稼働は少し手間がかかりますが、適切なツールと設定を使えば快適に動作します。この記事では、HIP SDKのインストールからパッチ適用、環境構築、そして起動までの一連の流れを詳しく解説します。さっそく始めましょう!
環境
- GPU: AMD Radeon RX 6600M
- OS: Windows 11
- Python: 3.10ベース(3.12がインストールされた環境に追加)
- ROCmバージョン: 6.2.4
- ツール: HIP SDK, ZLUDA, stable-diffusion-webui-amdgpu
手順
1. HIP SDK (ROCm 6.2.4) のインストール
まず、AMDの公式サイトからHIP SDKをインストールします。以下のリンクにアクセスしてください:
ここで、Windows 10 & 11向けの「ROCm 6.2.4」を選択し、「HIP SDK」のリンクからダウンロードします。インストールは指示に従って進めればOKです。これにより、AMD GPUを活用するための基本的なAPIとツールがセットアップされます。
2. ROCmLibsのパッチ適用
次に、ROCm 6.2.4向けの特定のパッチを適用します。以下のGitHubリポジトリからファイルを入手します:
このファイル(7.47MB)は、Radeon RX 6600M(gfx1032アーキテクチャ)向けの最適化を含んでいます。ダウンロード後、解凍して指示に従い適用してください。これにより、HIP SDKがGPUに適切に動作するようになります。
3. Python環境の準備
Stable Diffusionを動かすにはPython 3.10が必要です。私の環境ではPython 3.12がデフォルトでしたが、3.10を追加インストールしました。以下の手順で進めます:
- Python公式サイトからPython 3.10.6をダウンロードし、インストール(「Add to PATH」にチェックを忘れずに)。
- 仮想環境(venv)を作成:
python -m venv venv
-
venv
のPythonを3.10に変更。Windowsでは、py
コマンドを使ってバージョンを指定します:py -3.10 -m venv venv
- 仮想環境を有効化:
venv\Scripts\activate
これで、Stable Diffusionに必要なPython 3.10環境が整いました。
4. Stable Diffusion WebUIのインストール
次に、Stable Diffusion WebUIをインストールします。今回は、AMD GPU向けに最適化されたフォーク版を使用します。以下の手順を参考にしました:
※ 現在提供されているのはlshqqytiger/stable-diffusion-webui-amdgpu
のようです
具体的には、以下のコマンドを実行します:
git clone https://github.com/lshqqytiger/stable-diffusion-webui-amdgpu && cd stable-diffusion-webui-amdgpu && git submodule init && git submodule update
このコマンドで、DirectMLやZLUDAを利用可能なStable Diffusion WebUIがクローンされ、サブモジュールも初期化されます。インストールが完了したら、stable-diffusion-webui-amdgpu
フォルダ内に必要なファイルが揃います。
5. WebUIの起動
インストール後、webui.bat
を使って起動します。ただし、RX 6600MのVRAM(8GBだが低VRAM設定が必要な場合も)を考慮し、以下のオプションをwebui-user.bat
に追加しました:
set COMMANDLINE_ARGS=--opt-sub-quad-attention --lowvram --disable-nan-check --use-zluda --upcast-sampling
各オプションの意味は以下の通りです:
-
--opt-sub-quad-attention
: メモリ効率を改善する最適化。 -
--lowvram
: 低VRAM環境向けに調整。 -
--disable-nan-check
: NaNエラーのチェックを無効化し、安定性を向上。 -
--use-zluda
: ZLUDAを利用して動作を最適化(後述)。 -
--upcast-sampling
: サンプリング精度を上げて安定性を確保。
設定後、webui-user.bat
をダブルクリックで実行。初回は依存関係のインストールに時間がかかる場合がありますが、途中で止まったように見えたらEnterキーを押すと進行します。
6. ZLUDAとは?
--use-zluda
オプションで使ったZLUDAについて簡単に解説します。ZLUDAは、NVIDIAのCUDAをAMD GPUで動作させるための互換レイヤーです。Stable Diffusionは元々CUDA向けに最適化されていますが、ZLUDAを使うことでAMD GPUでも同様のパフォーマンスを引き出せます。HIP SDKと組み合わせることで、RX 6600Mでもスムーズに動作しました。
詳細はZLUDAの公式リポジトリを参照してください。インストールは手動で行う必要がありますが、今回はWebUI側で対応済みだったのでそのまま利用できました。
結果
以上の手順で、AMD Radeon RX 6600M上でStable Diffusionが問題なく動作しました!生成速度はそこそこで、VRAM使用量も6〜7GB程度に収まっています。LoRAやControlNetなどの拡張機能はこれから動作確認予定です。
注意点
- 初回のWebui.batで何度かエラーが出ると思いますが、詳細メモし忘れました。何度かpipをたたいてモジュールの手動インストールが必要でした。
まとめ
AMD GPUでStable Diffusionを動かすのは一見ハードルが高そうですが、HIP SDKやZLUDAのおかげで現実的な選択肢になっています。RX 6600MのようなミドルレンジGPUでも十分実用的です。ぜひ試してみてください!
何か質問があればコメントでどうぞ。それでは、楽しいAIアート生成を!