【stable diffusionエラー解決】 RuntimeError: CUDA out of memory.とは?

困りごと

Stable Diffusionを実行したとき、以下のようなエラーメッセージが出て困っている、困ったという方へ、解決法をご紹介します。

RuntimeError: CUDA out of memory.

私も画像生成AIを導入したばかりの頃は突然のエラーメッセージに慌てふためきました。
google検索して解決法を探すというプロセスには慣れましたが、今でも何やら見たことのないエラーメッセージが表示されるとなかなか解決できずに途方に暮れることもあります。

本記事ではstable diffusionのエラーのなかでも遭遇頻度の高いCUDA out of memory.の解決方法を解説していきます。

CUDA out of memory.が表示される原因と解決法は?

out of memory.はメモリ不足という意味です。
CUDAはGPUを使用してなにやら処理をするものらしく、とりあえずこれの容量が足りないというメッセージだと思ってください。

私も専門知識がないため、ふわっとした説明になってしまいすみません…とにかく、容量が足りればエラーは解決するわけです。

で、その解決方法なのですが、
1.web UIの設定を見直す
2.Xformersを有効にする
3.–medvram オプションを追加する
の順で実行してみてください。

1.web UIの設定を見直す

大きすぎる画像サイズで生成しようとすると、このエラーメッセージが出ることがあります。

私は普段512×512、もしくは512×768に設定しています。
これより異常に大きいサイズが設定されていた場合、値を小さくしてみてください。

大きすぎる画像サイズはエラーを引き起こすだけでなく、画像自体のクオリティも下げます。
高解像度の画像を作りたい場合、upscalerを利用しましょう。

2.xformersを有効にする

AUTOMATIC1111公式サイト内にxformersについて記載があります。

Use xFormers library. Great improvement to memory consumption and speed. Nvidia GPUs only. (deterministic as of 0.0.19 [webui uses 0.0.20 as of 1.4.0])

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Optimizations

xformersを使うことでメモリの消費と速度が向上するといった内容です。

使い方は、普段web UIを起動するときに実行しているコマンドラインに以下のように追記するだけです(google colab)。

set COMMANDLINE_ARGS=--xformers

エラーが起きていない場合でも画像生成速度が速くなり、大幅な時短になります。
普段から使用するとよいでしょう。

3.–medvram オプションを追加する

xformersを使用するときと同じく、以下のように”medvram”と追記する方法もあります。

xformersを使っても上手くいかないときは試してみてください。

set COMMANDLINE_ARGS=-–medvram

ただし、画像の生成速度は多少遅くなります。

他の方法で解決できるなら、そちらの方がよいでしょう。

おまけのAIグラビア集

エラーはググって一つずつ解決法を身につける!

私もstable diffusion以外でこうしたPC関係の知識を使う機会がなく、ほとんど初心者レベルです。

とりあえずエラーが起きたらメッセージをコピーして検索しましょう。

あなたが遭遇したエラーは他の誰かも遭遇しています。
で、解決法を載せてくれてたり、質問してだれか偉い人が答えてくれてたりします。

私もエラー関係の記事をこれからも書いていき、自分の備忘録とするつもりです。
同じエラーが出たという人は参考にしてください。

コメント

タイトルとURLをコピーしました