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が変な音出さず、ファンが爆音鳴らしながら画像生成してます。
あと、気持ち処理速度が速くなった(プラセボ効果…?)
以上。
(私が上手く行っただけなので、全員が上手くいくわけではありません。自己責任でよろしくお願いします。)
■どうやって、挿入するのとかそういう初歩的な話
メモ帳 開きます。(PCに入ってるから探して)
webui-user.bat をメモ帳に投げ込みます。(ドラッグアンドドロップ)
set COMMANDLINE_ARGS= の欄を見つけます。
--precision full --no-half --opt-sub-quad-attention --disable-nan-check を=の後ろに入れます。
上書き保存して、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
私が載せたコードよりも若干遅いです。
でも、エラーが起きにくいそうですが、実感はほとんどありません。
もし、他のコードを探しているなら、参考にどうぞ。