見出し画像

AMD+Radeonでstable diffusionを使っている人がぶつかったエラーの対処法まとめ【メモ】追記あり(04/20)


■前提

AMD+Radeonでstable diffusionを動かしている人or動かそうとしている人

そもそも、動かしたいという人は下記のページを参考にどうぞ

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Install-and-Run-on-AMD-GPUs

■本題

  • 真っ黒画像しか生成できない

  • could not allocate tensor withうんぬんかんぬん bytes. there is not enough gpu video memory available! とか言われる

  • 512×512だと生成できるけど、512×768にすると生成できない

  • CFG Scale変えると生成できない

  • Sampling steps変えると(略)

  • Sampling method変えると(略)

  • Restore faces変えると(略)

  • COMMANDLINE_ARGS=--opt-sub-quad-attention --lowvram --disable-nan-check 入れてみたけど解決しない

  • --medvram にしたけど解決しない

上記のエラーに悩んでいるユーザーの解決になるかもしれないのでまとめておきます。
(私が解決しただけなので、すべての人が解決するわけではないことをご留意下さい)

■使用PCのスペック
CPU:AMD Ryzen5 3500
GPU:AMD Radeon RX 6700 XT

■解決(やったこと)

COMMANDLINE_ARGS= 
に 
--precision full --no-half --opt-sub-quad-attention --disable-nan-check
を挿入した。
参考にしたソース:https://github.com/lshqqytiger/stable-diffusion-webui-directml/issues/20
全体で見ると以下

@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--autolaunch --precision full --no-half --opt-sub-quad-attention --disable-nan-check

call webui.bat

--autolaunch は個人的に入れているだけなので不要かも)

上記を挿入し再起動後はエラーもなく、GPUが変な音出さず、ファンが爆音鳴らしながら画像生成してます。
あと、気持ち処理速度が速くなった(プラセボ効果…?)

以上。
(私が上手く行っただけなので、全員が上手くいくわけではありません自己責任でよろしくお願いします。)

■どうやって、挿入するのとかそういう初歩的な話

  1. メモ帳 開きます。(PCに入ってるから探して)

  2. webui-user.bat をメモ帳に投げ込みます。(ドラッグアンドドロップ)

  3. set COMMANDLINE_ARGS= の欄を見つけます。

  4. --precision full --no-half --opt-sub-quad-attention --disable-nan-check を=の後ろに入れます。

  5. 上書き保存して、webui-user.bat をダブルクリック。

以上。
(何度もいいますが、私が上手く行っただけなので、全員が上手くいくわけではありません。自己責任でよろしくお願いします。)

よい、アムダーライフをお過ごし下さい。

■追記(04/20)

上記で書いたコードでも、エラーが出る時があるのは確認しました。
(特にHires.fixを使うと高確率でメモリー不足、黒画像になる)
解決策が無いかと彷徨っていましたが、今のところ見当たりません。
が、エラーが起きにくいコードが貼ってありましたので、ここに乗せておきます。
(起きにくいだけで、やはりHires.fixを動かすとエラー出ます。)

@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.6,max_split_size_mb:128
set COMMANDLINE_ARGS=--medvram --always-batch-cond-uncond --no-half --no-half-vae --precision full --opt-sub-quad-attention --sub-quad-q-chunk-size 256 --sub-quad-kv-chunk-size 256 --sub-quad-chunk-threshold 70 --disable-nan-check --use-cpu interrogate clip --no-hashing --autolaunch --api
set SAFETENSORS_FAST_GPU=1

call webui.bat

参考にしたソース
https://github.com/lshqqytiger/stable-diffusion-webui-directml/discussions/84

私が載せたコードよりも若干遅いです。
でも、エラーが起きにくいそうですが、実感はほとんどありません。
もし、他のコードを探しているなら、参考にどうぞ。


この記事が気に入ったらサポートをしてみませんか?