ローカルでAMDのGPUを使ってStable Diffusionを動作させる

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

やりたいこと

通常Stable DiffusionはNvidiaのGPU(GeForceなど)が必要です。

下のページではCPUで動作する環境を作成しましたが、この記事ではAMDのGPUで動作する環境を作成します。

オンボードのGPUでも作成時間が短くなりました。

スポンサーリンク

環境構築

Pythonとgitをインストールします。

詳細は以下の記事の環境構築を参照してください。

スポンサーリンク

stable-diffusion-webui-amdgpu

Clone

stable-diffusion-webui-amdgpuを取得します。

stable-diffusion-webui-amdgpuをインストールするフォルダを作成します。

コマンドプロンプトを起動して作成してフォルダに移動し以下のコマンドを実行します。

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

処理が完了し、インストールフォルダにファイルが作成されていれば成功です。

webui-user.batの実行

インストールフォルダにwebui-user.batが作成されるのでエクスプローラからダブルクリックで実行します。

実行直後に以下のエラーが表示された場合(処理は続きます)は表示されるgit config~のコマンドを実行します。

また処理が以下のエラーで終了すると思います。

上記のエラーを確認したらコマンドプロンプトを起動してインストールフォルダに移動後に以下のコマンドを実行します。

cd venv\Scripts
activate.bat

上記のコマンドを実行するとコマンドプロンプトの先頭に (venv) とつくようになります。

pip install torch_directml

使用する可能性があるので上記のコマンドを実行したコマンドプロンプトは終了しないでください。

コマンドの処理が完成あとにwebui-user.batを開きCOMMANDLINE_ARGSの行を以下のように変更します。(activate.batあとに設定した環境を使用する引数です。)

set COMMANDLINE_ARGS=--use-directml

webui-user.batをエクスプローラから実行します。

実行時にgit config~を行うように表示された場合は指定されたコマンドを実行した後に再度webui-user.batをエクスプローラから実行します。(何度か繰り返します。)

上記のエラーが表示された場合はactivate.batを実行したコマンドプロンプトで以下のコマンドを実行します。

pip install gradio

以下のようにブラウザにGUIが表示されれば完了です。

スポンサーリンク

実行時エラーの対応

RuntimeError: Input type (float) and bias type (struct c10::Half) should be the same

実行時に”RuntimeError: Input type (float) and bias type (struct c10::Half) should be the same”というエラーが表示された場合は、webui-user.batファイルを開きCOMMANDLINE_ARGSを以下のように修正します。(–no-halfを追加)

set COMMANDLINE_ARGS=--use-directml --no-half

修正後にwebui-user.batを再度実行します。

メモリ不足

メモリ(VRAM)不足のエラーが表示された場合、webui-user.batファイルを開きCOMMANDLINE_ARGSを以下のように修正します。(–medvramを追加)

set COMMANDLINE_ARGS=--use-directml --no-half --medvram

–medvram変更後のRuntimeエラー

–medvram変更後にRuntimeエラーが表示された場合、webui-user.batファイルを開きCOMMANDLINE_ARGSを以下のように修正します。(–medvramを–lowvramに変更)

set COMMANDLINE_ARGS=--use-directml --no-half --medvram
スポンサーリンク

結果

表示されたGUIにプロンプトを入力しGenerateをクリックすることで、画像を作成することができました。

CPUで実行した際との画像作成時間は以下の通りです。

* GPUで実行する際は最適化のためにCOMMANDLINE_ARGSは–use-directml –no-half –opt-sub-quad-attention –upcast-sampling –lowvramに設定しています。

作成時間
CPU04:22
GPU(本記事)01:03

オンボード(VRAM 2Gbyte)のPCでもCPUで実行するよりも4倍ほどのスピードが出るようになりました。

コメント

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