【2026年最新】CUDA out of memoryエラーを完全解決する7つの方法|PyTorch・Stable Diffusion対応

当ページのリンクには広告が含まれています。
CUDA out of memoryエラーを解決するGPU・VRAM解説のイメージ図
🤖 ChatGPT・Gemini・Claude最新モデル日常利用
🔧 インフラエンジニア歴12年(2026年時点)
🎨 3DCGスクールで学習(2026年9月まで)

まずバッチサイズを半分に下げるのが最速の解決策。それでもダメなら混合精度学習(FP16)→ FP8量子化の順に試す。ComfyUIでは、コンソールの行で「止まった(OOM)」のか「載り切らずに遅いだけ」なのかを先に見分ける。ソフト対策で目的のモデルが動かないなら、VRAMの大きいGPUへの乗り換えが根本の対処になる。

結論:「CUDA out of memory」エラーは、PyTorchのコード最適化とVRAM容量の2軸で解決できる。バッチサイズ削減・混合精度学習・Gradient Checkpointingなどの施策に加え、2026年はFP8/NVFP4量子化やComfyUIのDynamic VRAMが強力な武器になっている。

PyTorchやStable Diffusion、ComfyUIを使っていると、突然現れるCUDA out of memory。VRAMが物理的に足りなくなった瞬間に発生するこのエラー、解決策を知らないと何時間も詰まってしまう。本記事では、原因の解説から7つの実践的対処法、最終手段のBTOパソコン選びまで2026年の最新情報をもとに徹底解説する。

ソフト対策で限界なら → サイコムでVRAM16GB以上のBTOをチェック※ 構成はパーツ単位でカスタマイズ可・PC本体の梱包発送料は3,850円(税込・2026年10月1日以降の注文)
VRAMが不足してCUDA out of memoryエラーが起きる様子のイメージ
VRAM(GPUメモリ)を使い切るとCUDA out of memoryが発生します(イメージ図)
目次

CUDAエラーの仕組み:なぜVRAMが枯渇するのか

PyTorchで torch.OutOfMemoryError: CUDA out of memory が発生し、確保しようとしたサイズとGPU容量が表示されているターミナル
VRAM 16GBを意図的に使い切って再現したエラー。Tried to allocate の行が不足量を示す(再現環境で撮影/NVIDIA GeForce RTX 4070 Ti SUPER (VRAM 16GB)・Windows 11 Pro)

GPUはCPUとは独立した専用メモリ(VRAM)を持ち、テンソル・モデルパラメータ・中間出力をすべてそこに展開する。バッチサイズが大きすぎる、解像度が高い、ループ内でテンソルが蓄積するといった状況でVRAMが一杯になるとCUDA out of memoryが発生する。

検証環境(RTX 4070 Ti SUPER / torch 2.6.0+cu124)で実際にVRAMを使い切って確認したところ、送出される例外はtorch.OutOfMemoryError(RuntimeErrorのサブクラス)で、メッセージはCUDA out of memory. Tried to allocate 1024.00 MiB. GPU 0 has a total capacity of 15.99 GiB of which 0 bytes is free.という形式だった。古い資料ではRuntimeError:と表記されることが多いが、画面に出る型名はPyTorchのバージョンによって変わる。

よくある誤解:nvidia-smiでVRAMが常に満杯に見えても、それはPyTorchのキャッシュが解放されていないだけの場合がある。実際の枯渇とは別物なので、torch.cuda.memory_summary()で内部状態を確認するのが正確だ。

ComfyUIでは「止まった」のか「遅いだけ」かを先に見分ける

ComfyUIは、VRAMが足りなくてもすぐには止まりません。載り切らない分をメインメモリに置いて動かし(そのぶん遅くなる)、それでも足りないときにCUDA out of memoryで止まります。どちらの状態かは、コンソールに出る行で分かります。

コンソールの行 意味
Got an OOM, unloading all loaded models. VRAMが足りずに止まった(ComfyUIは読み込んだモデルを全部外す)
loaded partially; … MB offloaded … 載り切らない分(offloaded)をメインメモリに置いて動かしている=止まらないが遅くなる。旧来の読み込みの行で、Dynamic VRAMが無効のときと、GGUFのモデル(カスタムノードのComfyUI-GGUFで読み込む)で出る
DynamicVRAM support detected and enabled 起動時に出る。Dynamic VRAM(VRAMとメインメモリを自動でやりくりする読み込み)が有効
Model … prepared for dynamic VRAM loading. …MB Staged. Dynamic VRAMでモデルを読み込んだ。この行には、載り切らない量は出ない

出典=ComfyUI v0.39.0のソース(main.py・comfy/model_patcher.py・execution.py)と当サイトの検証機のログ。v0.39.0では、NVIDIAのGPUでPyTorch 2.8以上ならDynamic VRAMが既定で有効です。行の詳しい読み方はComfyUIでGPUが認識されない時の対処法にまとめています。

見分けたあとは、次の順で考えます。

  1. 止まった(Got an OOM):ComfyUIは「前に動いたワークフローなら、バッチサイズを大きくしていないか」を確かめるよう表示します(v0.39.0のexecution.py)。まずはお金のかからない対処として、バッチサイズや解像度を下げる、小さい版や量子化したモデル(FP8・GGUFなど)に替える、ほかのアプリが使っているVRAMを空ける、を試します。
  2. 遅いだけ(載り切らない):処理は進んでいます。当サイトの測定では、載り切らない量1,000MiBにつき、1ステップあたり約0.42〜0.60秒遅くなりました(GGUFのモデル・ComfyUI 0.20.1・ComfyUIのVRAM不足の遅さを測った記事)。この遅さを許せるなら、設定はそのままでも使えます。
  3. 小さいモデルや低い設定では目的が果たせない:ここで初めて、VRAMの大きいGPUを検討します。画像はAI画像生成のGPU/VRAM選び、動画はローカルAI動画生成のGPU/VRAM選びで、モデルごとの条件を比べています。

7つの解決方法【PyTorch・Stable Diffusion・ComfyUI対応】

① バッチサイズを下げる

最も即効性のある手段。64でエラーが出るなら32→16と段階的に下げる。ただし小さすぎると勾配が不安定になるため、学習率の再調整もセットで行うこと。

② 勾配の蓄積(Gradient Accumulation)

バッチサイズ8でも蓄積ステップを4にすれば、実効的にバッチサイズ32として学習できる。メモリを抑えながら大バッチの安定性を得られる手法で、VRAMが少ない環境での必須テクニックだ。

③ 混合精度学習(FP16 / BFloat16)

torch.ampのautocastとGradScalerを使うだけでメモリを大きく削減できる。NVIDIA GPU上のTensor Coreも活用されるため速度も向上する、現代のPyTorch開発では必須のベストプラクティスだ。

実測値と、記法の変更(2026年8月16日 訂正)

検証環境(RTX 4070 Ti SUPER / torch 2.6.0+cu124)で同じ形状のテンソルを確保して比べると、FP32の256MiBに対しFP16は128MiB(比0.50)だった。「約半分」は実測と一致する。ただし旧記法のtorch.cuda.amp.GradScaler(...)は非推奨で、実行するとtorch.amp.GradScaler('cuda', ...)を使うよう警告が出る。本記事は当初torch.cuda.ampと記載していたため訂正した。

④ メモリリークの防止

nvidia-smi の出力でVRAM使用量が容量上限に達し、Pythonプロセスがメモリを占有している
VRAM逼迫時の nvidia-smi。どのプロセスが掴んでいるかはここで分かる(実際の画面/NVIDIA GeForce RTX 4070 Ti SUPER (VRAM 16GB)・Windows 11 Pro)

ループ内で不要になったテンソルの参照をdelで明示的に消すのが本体です。torch.cuda.empty_cache()は、PyTorchが抱えている使われていないキャッシュを手放して、ほかのアプリやnvidia-smiから見えるようにする関数で、PyTorch自身が使えるメモリは増えません(PyTorchの公式の説明。断片化が減る場合はある)。参照中のテンソルも解放されません。

⑤ 推論・評価時にtorch.no_grad()を使う

ValidationループやInferenceのブロック全体をwith torch.no_grad():で囲むだけで、計算グラフの構築を止めてメモリを大幅削減できる。学習コードで忘れがちなポイントだ。

⑥ Gradient Checkpointing(アクティベーション再計算)

中間出力を都度破棄して逆伝播時に再計算する手法。計算をやり直すぶん学習は遅くなるが、中間出力を持たないぶんメモリ消費が大きく減る。深いTransformerモデルや大規模LLMのファインチューニングに特に効果的だ。

⑦ FP8 / NVFP4量子化とComfyUIのDynamic VRAM

形式 VRAM 速さ 条件
NVFP8 40%減 2倍 NVIDIAの発表値
NVFP4 60%減 3倍 RTX 50シリーズの形式(NVIDIAの発表値)

NVIDIAが2026年1月(CES 2026)に発表した、ComfyUIでの値です。ComfyUIの最適化と合わせた値で、比べた条件は発表に書かれていません。NVFP4・NVFP8の重みは、LTX-2・FLUX.1・FLUX.2・Qwen-Imageなどで配布されています(同じ発表)。画質の違いは、使うモデルの配布元の比較で確かめてください。

ComfyUI v0.39.0では、NVIDIAのGPUでPyTorch 2.8以上ならDynamic VRAMが既定で有効で、VRAMに載り切らない分をメインメモリに置いて動かします。止まりにくくなる代わりに遅くなり、それでも足りなければCUDA out of memoryで止まります(上の「止まったのか遅いだけか」の節)。Dynamic VRAMが有効な間は、--lowvramを付けても何もしません(本体の起動オプションの説明)。Stable Diffusion WebUI(AUTOMATIC1111)では、NVIDIAのGPUなら--xformersでメモリの使用量と速度が大きく改善します(公式wiki)。それでも足りなければ--medvram(少し遅くなる)、さらに--lowvram(大きく遅くなる)を足します。

📘 7つの手法のうち「自分の構成でどれが効くか」を数字で決めたい方へ:当サイト運営者がZennで公開している電子書籍『画像生成AI・ローカルLLMを“安く速く”動かす実測ガイド』(有料・500円/第1〜2章は無料公開)で、量子化・オフロード・スライスを RTX 4070 Ti SUPER(VRAM 16GB)で一つずつ実測し、通説と答え合わせをしています。先に結論を言うと、節約テクの多くはVRAMを時間で買う取引でした。

LLMファインチューニングの場合:Unslothの公式READMEは「2倍速く、VRAMは70%少なく」とうたっています。必要なVRAMの目安は公式の表で、QLoRA(4ビット)なら7Bで最小5GB・8Bで最小6GB、16ビットのLoRAでは7Bで19GB・8Bで22GBです(公式は「最小値で、モデルによって増える」と注記)。

コスパ×デザインで注目急上昇!BTOゲーミングPC【OZ GAMING】※ 価格・送料・納期は公式サイトの表示をご確認ください

ソフト最適化の限界とBTOパソコン選びの基準

対処後の nvidia-smi でVRAM使用量が大きく下がっている
解放後。2枚目と同じ環境・同じコマンドで撮影(実際の画面/NVIDIA GeForce RTX 4070 Ti SUPER (VRAM 16GB)・Windows 11 Pro)

量子化やオフロードは「延命措置」にすぎない。VRAMが足りないまま動かすと遅くなり、当サイトの測定では、載り切らない量1,000MiBにつき1ステップあたり約0.42〜0.60秒遅くなりました(ComfyUIのVRAM不足の遅さを測った記事)。本格的なAI開発・画像生成なら、GPU選定の基準は一つ:VRAMが何GBかだ。

エントリー〜中級(16GB)

画像生成・推論が中心なら。RTX 50シリーズで16GBを積む一番下のモデルはRTX 5060 Tiの16GB版です(8GB版もあるので注意・NVIDIA公式)。

格安ゲーミングPCの【MDL.make】※ 価格・送料・納期は公式サイトの表示をご確認ください

上級者・プロ(24GB以上)

大きなLLMのファインチューニングや動画生成で余裕を持たせたいなら。RTX 50シリーズで24GB以上を積むのはRTX 5090(32GB)だけで、RTX 5080は16GBです(NVIDIA公式)。動画のモデルごとの条件はローカルAI動画生成のGPU/VRAM選びで比べています。

BTOパソコンのサイコム※ 構成はパーツ単位でカスタマイズ可・PC本体の梱包発送料は3,850円(税込・2026年10月1日以降の注文)

GPUを買わない選択(クラウド)

GPUを買わずに試すなら、ブラウザでComfyUI・AUTOMATIC1111を使えるConoHa AI Canvasがあります。ただし公式の対応モデルはStable Diffusion 1.5/2.0/2.1/XLで、FLUXなどは対応一覧にありません。

クラウドで画像生成を始める(ConoHa AI Canvas)※ エントリー月額1,100円(WebUI無料時間10時間・超過は6.6円/分)/ComfyUI・AUTOMATIC1111から選べる・公式の対応モデルはStable Diffusion 1.5/2.0/2.1/XL

コスト重視なら中古も:中古・整備済みPCのPC WRAPは、対象商品に無料の3年保証が付きます(対象外の商品・条件あり。修理が難しい場合は代替品で対応・公式)。中古は積んでいるGPUとVRAMが商品ごとに違うので、商品ページでGPUの型番とVRAMの容量を確かめてください。

激安1万円〜のパソコンなら【PC WRAP】※ 中古・整備済みPCが1万円〜/保証・送料の条件は公式サイトの表示をご確認ください

まとめ

「CUDA out of memory」の解決は2段階で考えるのが正解だ。

  1. ソフトウェア対策:バッチサイズ削減・混合精度学習・no_grad・FP8/NVFP4量子化・Dynamic VRAMを組み合わせる
  2. ハードウェア対策:VRAM 16GB以上のBTOパソコンに移行して根本解決する

ComfyUIなら、まずコンソールの行で「止まった」のか「遅いだけ」なのかを見分ける。ソフト対策で目的のモデルや設定が動かない、または遅さが許せないときに、VRAMの大きいGPUを検討してほしい。

よくある質問

CUDA out of memoryエラーが出たときまず何をすればいいですか?▼
まずバッチサイズを半分に下げてください。それで解決する場合が多いです。それでも発生する場合は torch.no_grad() の追加や混合精度学習(FP16)の導入を試みてください。
Stable DiffusionやComfyUIでのOOMエラーに効果的な設定は?▼
Stable Diffusion WebUI(AUTOMATIC1111)では、NVIDIAのGPUなら --xformers でメモリの使用量と速度が大きく改善します(公式wiki)。それでも足りなければ --medvram(少し遅くなる)か --lowvram(大きく遅くなる)を追加してください。ComfyUI v0.39.0は、NVIDIAのGPUでPyTorch 2.8以上ならDynamic VRAMが既定で有効で、その間は --lowvram を付けても何もしません。止まったのか遅いだけなのかは、コンソールの行で見分けます。
AI用途のBTOパソコンはVRAM何GBを選べばいいですか?▼
画像生成が中心なら16GBを目安にしてください(RTX 50シリーズでは、RTX 5060 Tiの16GB版・RTX 5070 Ti・RTX 5080)。大きなLLMのファインチューニングや動画生成で余裕を持たせたいなら24GB以上で、RTX 50シリーズで24GB以上を積むのはRTX 5090(32GB)だけです(NVIDIA公式)。
torch.cuda.empty_cache()でOOMエラーは解決しますか?▼
解決にはなりません。この関数は、PyTorchが抱えている使われていないキャッシュを手放して、ほかのアプリから使えるようにするもので、PyTorch自身が使えるメモリは増えません(PyTorchの公式の説明)。参照中のテンソルも解放されません。不要な変数を del で消して参照を切るのが本体です。
LLMのファインチューニングで使えるメモリ削減技術はありますか?▼
Unslothの公式READMEは「2倍速く、VRAMは70%少なく」とうたっています。必要なVRAMの目安は公式の表で、QLoRA(4ビット)なら7Bで最小5GB・8Bで最小6GB、16ビットのLoRAでは7Bで19GB・8Bで22GBです(公式は「最小値で、モデルによって増える」と注記)。
「RuntimeError: CUDA error: out of memory」は別のエラーですか?▼
表示が違うだけで、原因はどちらもVRAM不足です。新しいPyTorchでは専用の例外(torch.cuda.OutOfMemoryError。当サイトの検証環境のtorch 2.6.0では torch.OutOfMemoryError と表示)になりましたが、「RuntimeError: CUDA error: out of memory」は同じVRAM不足を古い汎用エラーとして表示したものです。モデルが大きすぎるか、別のプロセスがVRAMを掴んだままのことが多いので、まず使っていないGPUプロセス(前回の学習・生成の残り)を終了してVRAMを解放し、本記事の7つの方法を上から試してください。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ITインフラエンジニア歴12年、クラウド(AWSがメイン、一部Azure)の実務は4年目(いずれも2026年時点)。社会人向けの3DCGスクールを2026年9月に卒業。Windows 11 + RTX 4070 Ti SUPER の自宅環境で実際に手を動かしながら、インフラ・クラウド・AI・3DCGの技術記事を書いています。

コメント

コメントする

CAPTCHA


目次