Stable Diffusion WebUIのAutomatic1111を使っていると、画像が生成されないことがあります。
新しいバージョンがあれば、バージョンアップで解決できることもありますが、今回はバッチファイルを書き換えるやり方を紹介しますね。
Automatic1111のエラーの症状と原因
こんな症状が出る時があります。
立ち上げているバッチファイルには下のようなメッセージが出ています。
modules.devices.NansException: A tensor with all NaNs was produced in VAE. This could be because there's not enough precision to represent the picture. Try adding --no-half-vae commandline argument to fix this. Use --disable-nan-check commandline argument to disable this check.
Google先生による日本語訳
modules.devices.NansException: すべて NaN を持つテンソルが VAE で生成されました。これは、画像を表現するのに十分な精度がないことが原因である可能性があります。これを修正するには、 --no-half-vae コマンドライン引数を追加してみてください。このチェックを無効にするには、 --disable-nan -check コマンドライン引数を使用します。Google翻訳より
細かいことはよくわかりませんが、下の2つのコマンドライン引数を入力すると解決するようです。
--no-half-vae:VRAMの使用量は増大しますが、黒い画像発生を低減するコマンドです。
--disable-nan-check:黒い画像が発生してもエラーを無視して続行するコマンドです。
Automatic1111のエラー解決手順
Automatic1111をインストールしたフォルダーを開きます。『Stable Diffusion WebUI』というフォルダーの中の『webui-user.bat』を編集します。
メモ帳が開き、下のような表示が出ます。
ARGS=の後ろに下のコマンドをコピペしてください。
コードをクリックしたらコピーできるよ
保存して閉じます。
いつものように、バッチファイルをダブルクリックしてAutomatic1111を立ち上げると、通常通り生成されます。
それでも真っ黒な画面が生成される場合は、モデルを切り替えると治ることもあります。モデルのバージョンがアップデートされ、Automatic1111のバージョンに合わないことがあるようです。
バグ(?)なので、修正ファイルをインストールするか、新しいバージョンをインストールすると改善するかもしれません。
Automatic1111が立ち上がらない場合(間違って入力)
コマンドを間違って入力すると、起動せず下のような画面が表示されます。修正できるので慌てないでくださいね。
何かキーを押してくださいと出ますが、押すと画面が閉じてしまいます。
もう一度バッチファイルを編集から確認してみると、『-check』の後ろにスペースがありませんでした。
再び保存して、Automatic1111を再起動してください。立ち上がるはずです。