Stable Diffusionで"RuntimeError: Not enough memory" "OutOfMemoryError: CUDA out of memory." が発生し処理が途中で止まる現象と対処法を紹介します。
画像の生成処理中に以下のエラーが発生し処理が中止されます。
GPU(ビデオカード)のメモリ不足です。
上記のエラーメッセージは5GBのビデオカードで発生しています。Stable Diffusionである程度の処理を実行する場合、
VRAM 5GBでは厳しいです。画像生成速度の高速化も考慮すると、最新の12GB以上のビデオカードに交換することも検討したほうが良さそうです。
Xformersを有効にするとVRAMの消費量を抑えられます。
ただし、NVIDIAのGPUの場合はPascal以降のGPUである必要があります。
Xformersを有効にする手順はこちらの記事を参照してください。
Stable Diffusion Web UI を利用している場合、--medvram オプションを追加すると改善される場合があります。
@echo off
set GIT_PYTHON_REFRESH=quiet
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=
call webui.bat
@echo off
set GIT_PYTHON_REFRESH=quiet
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--medvram
call webui.bat
@echo off
set GIT_PYTHON_REFRESH=quiet
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--xformers --medvram
call webui.bat
他のアプリケーションが起動している場合は終了します。特にVRAMを使用するPhotoshopやIllustrator,After Effectsなどのアプリケーションが起動している場合は、
アプリケーションを終了するとVRAMが解放され、エラーが解消される場合があります。