Stable Diffution実行時に "NansException: A tensor with all NaNs was produced in Unet." エラーが発生する
Stable Diffution実行時に "NansException: A tensor with all NaNs was produced in Unet." エラーが発生する場合の対処法を紹介します。
現象
Stable Diffutionを実行すると実行途中で、次のエラーメッセージが表示されます。
エラーメッセージ
NansException: A tensor with all NaNs was produced in Unet. This could be either because there's not enough precision to represent the picture, or because your video card does not support half type. Try setting the "Upcast cross attention layer to float32" option in Settings > Stable Diffusion or using the --no-half commandline argument to fix this. Use --disable-nan-check commandline argument to disable this check.
直前までは、実行できていた状況でも、パラメーターや設定を変更しただけで上記のエラーが発生する場合もあります。
原因
エラーメッセージより以下のどちらかの原因である可能性が高いです。
- 画像を表現するのに十分な精度がない
- ビデオ カードがハーフ タイプをサポートしていない
対処法: Stable Diffusion Web UIの場合
Stable Diffusion Web UIを起動します。[Settings]タブをクリックします。下図の画面が表示されます。
左側のメニューの[Stable Diffusion]の項目をクリックします。
下図の画面に切り替わります。右側のエリアを下にスクロールします。ページの一番下に[Upcast cross attention layer to float32]チェックボックスがあります。
[Upcast cross attention layer to float32]チェックボックスをクリックしてチェックをつけます。
チェック後ページ上部に戻り、[Apply settings]ボタンをクリックします。
再度、画像生成を実行して、"NansException: A tensor with all NaNs was produced in Unet." エラーが解消されるか確認します。
別の対処法: Stable Diffusion Web UIの場合
別の対処法として、
--no-half-vae
オプションを指定して起動する方法があります。
webui-user.batのファイルを以下に変更します。
@echo off
set GIT_PYTHON_REFRESH=quiet
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=
call webui.bat
COMMANDLINE_ARGS=--no-half-vae
または
COMMANDLINE_ARGS=--no-half
を追加します。
@echo off
set GIT_PYTHON_REFRESH=quiet
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--no-half-vae
call webui.bat
--precision half を利用する場合
以下の設定で、
--precision half
と
--no-half-vae
を指定すると、設定が競合して起動できないです。
set COMMANDLINE_ARGS=--xformers --precision half --no-half-vae --opt-sdp-attention
以下のエラーが発生します。
エラーメッセージ
AssertionError: --no-half and --no-half-vae conflict with --precision half
--precision half
を使用する場合は、
--disable-nan-check
を使用する方法があります。
@echo off
set GIT_PYTHON_REFRESH=quiet
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--xformers --precision half --disable-nan-check --opt-sdp-attention
call webui.bat
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。