起動時のコンソールのDevice:の行がcpuなら、GPUは使われていません。よくあるのはPyTorchがCPU版に入れ替わった場合と、GPUの世代とPyTorchのCUDAのビルドが合っていない場合で、RTX(20系以降)にはcu130以上のPyTorchが必要です(ComfyUI公式README)。GPU名が出ているのに遅い・止まるなら、GPUの認識より先にVRAM不足を疑います。Windowsで毎回出るforcing single GPU modeの警告は、GPUが1枚なら、そのGPUが番号0なので、使うGPUは変わりません。
ComfyUIで画像生成が異常に遅い、「Torch not compiled with CUDA enabled」エラーで起動しない。この記事では、GPUが認識されないときの原因と直し方を環境別に、VRAM不足との見分け方と起動時の警告の意味まで、ComfyUI v0.39.0(2026年10月5日)のソースと公式READMEで確かめて解説します。
ComfyUIがGPUを認識しないとき、まず何を確認すべき?
起動時のコンソールに出るDevice:の行を見ます。GPUが認識されていればDevice: cuda:0 NVIDIA GeForce RTX 4070 Ti SUPER : cudaMallocAsyncのようにGPU名が続きます(生成までうまく動くかは、実際に1枚生成して確かめます)。ここがDevice: cpuになっていれば、GPUではなくCPUで処理しています。エラーで起動が止まる場合は、PyTorchとCUDAのバージョン不整合です。
表記の訂正(2026年8月16日)
本記事は当初この行を「Using device: cuda」と記載していたが、ComfyUIのソース(comfy/model_management.py)を確認したところ、実際に出力されるのはDevice:で始まる行だった。Using ... device:という表記はDirectMLを使う場合の別の行で、NVIDIA環境では出ない。検証環境のv0.3.76と最新のv0.33.1の両方で同じ形式であることを確認している。
Crystoolsのオーバーレイ(カスタムノード)で生成中のGPU使用率を確認できます。0%のまま生成が進んでいたらCPU動作です。Windowsのデバイスマネージャーの「ディスプレイ アダプター」にGPUが出ていない場合は、ComfyUIより前の段階(ドライバーや接続)の問題です。
【NVIDIA】ポータブル版「Torch not compiled with CUDA enabled」の完全修復手順は?
最も多い報告がこのエラーです。原因は、アップデートバッチやカスタムノードのインストール時にCPU版PyTorchが誤って上書きされることにあります。
ポータブル版(ComfyUI_windows_portable)は独自の埋め込みPython環境を使っているため、必ずpython_embededフォルダ内でコマンドを実行する必要があります。
コマンドプロンプトでpython_embededフォルダに移動し、以下を実行します。
.\python.exe -m pip uninstall torch torchvision torchaudio -y
RTX(20系以降)はcu130を指定します(ComfyUI公式READMEの指定。GTX 10系以前は下の節)。
.\python.exe -m pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130
RTX 5090・5080(Blackwell世代)特有のエラーにはどう対処する?
RTX 50シリーズ(sm_120)は、PyTorch 2.7(2025年4月23日)でBlackwellへの対応とCUDA 12.8のビルドが入りました(PyTorch公式ブログ)。いまのComfyUI公式READMEは、RTX(20系以降)にはcu130以上のPyTorchが必要としています。古いPyTorchのまま「sm_120 is not compatible」などのエラーが出るなら、cu130のPyTorchに入れ直すか、RTX(20系以降)向けの今のポータブル版(ComfyUI_windows_portable_nvidia.7z・CUDA 13.0)を使うのが近道です。Nightly版は必須ではありません。
| GPU | 使うPyTorch/ポータブル版 |
|---|---|
| RTX 20〜50系 | cu130以上/ComfyUI_windows_portable_nvidia.7z |
| GTX 10系以前(Pascalなど) | cu126/ComfyUI_windows_portable_nvidia_cu126.7z(20系以降のGPUには使わない) |
出典=ComfyUI公式README(2026年10月10日に確認)・PyTorch 2.7のリリースの公式ブログ。
GTX 10系(Pascal世代)で「GPU too old」エラーが出る場合の対処法は?
GTX 1080・1070・1060などのPascal世代向けに、ComfyUI公式はPyTorchのCUDA 12.6・Python 3.12で組んだポータブル版(ComfyUI_windows_portable_nvidia_cu126.7z)を配布しています。READMEには「GTX 10系以前向けで、20系以降のGPUには使わないこと」とあります。今の環境のバッチを書き換えるより、このポータブル版を別のフォルダに展開して使うほうが手順は少なく済みます。
💡 延命より買い替えが現実的な場合も:Pascal世代は設定で動かせても生成速度の頭打ちは避けられない。いまのPCのGPUだけ載せ替えるならBTOパソコンのGPU交換ガイド(手順・費用・注意点)、本体ごと新調するならRTX 5070 Ti搭載PCの価格推移と買い時を参考に。
AMD Radeon・Mac環境でGPUを使うには?
AMD Radeonには、Windows用のAMD向けポータブル版(ComfyUI_windows_portable_amd.7z)が公式に配布されています。LinuxはROCm版のPyTorchを入れる手順がREADMEにあります。Mac(Apple Silicon)は、デスクトップ版(macOS)か、READMEの「Apple Mac silicon」の手順で入れます。
※AMD・Apple Silicon環境は当サイトの検証環境に無いため、この節は公式README(2026年10月10日に確認)にもとづく記述で、実機では確かめていません。
GPUは認識されているのに遅い・止まる?VRAM不足との見分け方
起動時にDevice:の行にGPU名が出ていれば、GPUは認識されています。そのうえで遅い・止まるときに多いのがVRAM不足で、VRAMが足りているかはComfyUIのコンソールに出る行で確かめられます。ただし、どの行が出るかはモデルを読み込む仕組みで変わります。ComfyUI v0.39.0では、NVIDIAのGPUでPyTorch 2.8以上ならDynamic VRAM(VRAMとメインメモリを自動でやりくりする読み込み)が既定で有効です。
| コンソールの行 | 意味 |
|---|---|
Total VRAM 16376 MB, total RAM 32623 MB |
起動時に出る、ComfyUIが認識したVRAMとメインメモリの容量(数字は当サイトの検証機の例) |
DynamicVRAM support detected and enabled |
起動時に出る。Dynamic VRAMが有効 |
Model … prepared for dynamic VRAM loading. …MB Staged. |
Dynamic VRAMでモデルを読み込んだ。この行には、載り切らない量は出ない |
loaded completely; … |
旧来の読み込みで、モデルが全部VRAMに載った |
loaded partially; … MB offloaded … |
旧来の読み込みで、載り切らない分(offloaded)をメインメモリに置いて動かしている=止まらないが遅くなる。Dynamic VRAMが無効のときと、GGUFのモデル(カスタムノードのComfyUI-GGUFで読み込む)で出る |
Got an OOM, unloading all loaded models. |
VRAMが足りずに止まった(ComfyUIは読み込んだモデルを全部外す) |
出典=ComfyUI v0.39.0のソース(main.py・comfy/model_management.py・comfy/model_patcher.py・execution.py)と当サイトの検証機のログ。
下は当サイトの検証機(RTX 4070 Ti SUPER・16GB・ComfyUI 0.20.1・2026年9月10日)で、20BのQwen-Image(GGUF Q4_K_M)を、VRAMを4GB空けておく起動オプション(--reserve-vram 4)で動かしたときのログの抜粋です。起動時にDynamic VRAMが有効になり、テキストエンコーダーはprepared for dynamic VRAM loadingの行で読み込まれ、GGUFの本体だけがloaded partiallyの行で約2.6GBをメインメモリに回しています。
Total VRAM 16376 MB, total RAM 32623 MB Device: cuda:0 NVIDIA GeForce RTX 4070 Ti SUPER : cudaMallocAsync DynamicVRAM support detected and enabled Model QwenImageTEModel_ prepared for dynamic VRAM loading. 7910MB Staged. 0 patches attached. Force pre-loaded 57 weights: 399 KB. Requested to load QwenImage loaded partially; 10106.67 MB usable, 10084.46 MB loaded, 2654.59 MB offloaded, 22.18 MB buffer reserved, lowvram patches: 0
載り切らない量が増えるほど遅くなります。同じ検証機で、同じモデル(GGUF)のまま空けておくVRAMの量だけを変えて測った当サイトの結果では、載り切らない量1,000MiBにつき、1ステップあたり約0.42〜0.60秒遅くなりました(ComfyUI 0.20.1・ComfyUIのVRAM不足の遅さを測った記事)。止まった(Got an OOM)ときは、ComfyUIは「前に動いたワークフローなら、バッチサイズを大きくしていないか」を確かめるよう表示します(v0.39.0のexecution.py)。対処は、小さい版や量子化したモデルを使う、解像度やバッチサイズを下げる、VRAMの大きいGPUに替える、のどれかです。GPUのVRAMの選び方はAI画像生成のGPU/VRAM選びで比べています。
エラーメッセージ別の逆引き早見表
コンソールに出た英文をそのまま探せるように、原因と対処を1枚にまとめました。まず出ている文言を特定してから手を動かすのが最短です。
| コンソールに出るメッセージ | ほぼこれが原因 | やること |
|---|---|---|
On windows we are currently forcing single GPU mode in ComfyUI due to a Nvidia related issue, if you want to disable this use: --cuda-device all |
エラーではない。Windowsで使うGPUを指定せずに起動すると毎回出る(GPU 0だけを使う設定にしたという知らせ) | GPUが1枚なら何もしなくてよい。2枚以上を全部使うなら--cuda-device all(下の節) |
WARNING: You need pytorch with cu130 or higher to use optimized CUDA operations. |
エラーではない。PyTorchのCUDAが13未満なので、最適化された演算が使われていない | RTX(20系以降)ならcu130以上のPyTorchへ(ComfyUI公式READMEの指定) |
Got an OOM, unloading all loaded models. |
GPUは認識されているが、VRAMが足りずに止まった | 下の「VRAM不足との見分け方」へ |
Torch not compiled with CUDA enabled |
CPU版のPyTorchに入れ替わっている。カスタムノードのpip installや更新バッチが、GPU版をPyPIのCPU版で上書きするのが定番パターン |
GPU版のPyTorchを入れ直す(下の表でビルドを選ぶ) |
No CUDA GPUs are available |
GPUの世代とCUDAビルドが噛み合っていない。RTX 50系にcu126以下を入れているときに出やすい | RTX(20系以降)はcu130以上へ。--cuda-deviceで別IDを指定していないかも確認 |
GPU/accelerator not supported (available: cpu, required: gpu :: nvidia cuda) |
ComfyUIから見えるデバイスがCPUだけになっている | 上2つと同じ。Device: cpuと出ていれば確定 |
PyTorch no longer supports this GPU because it is too old |
Pascal(GTX 10系)以前に新しいCUDAビルドを入れた | GTX 10系以前向けのcu126版のポータブルを使う |
⚠️ 更新バッチが原因のことが本当に多い: update_comfyui_and_python_dependencies.batはComfyUIだけでなくPyTorchごと入れ直すスクリプトです。実行直後にTorch not compiled with CUDA enabledが出る報告は公式リポジトリにも上がっています(Issue #11575)。いま問題なく動いているなら実行しないでください。更新したいだけならupdate_comfyui.batで足ります。
PyTorchのCUDAビルド(cu126・cu128・cu130)はどれを選ぶ?
「NVIDIAのGPUなのに動かない」の大半は、GPUの世代に対して新しすぎる/古すぎるビルドを入れていることが原因です。世代で決まります。
| GPU世代 | 選ぶビルド | 理由 |
|---|---|---|
| RTX 50系(Blackwell / sm_120) | cu130以上 | ComfyUI公式READMEがRTX(20系以降)にcu130以上を必須としている(Blackwell自体はPyTorch 2.7・CUDA 12.8から対応) |
| RTX 40/30/20系 | cu130以上 | 同上(20系以降はすべてcu130以上) |
| GTX 10系(Pascal)以前 | cu126(専用のポータブル版) | ComfyUI公式がGTX 10系以前向けにcu126版を配布し、20系以降には使わないよう書いている |
💡 「安定版はRTX 50系に非対応」はもう古い情報です。 sm_120のサポートは安定版PyTorch 2.7.0で取り込まれており、いまはNightlyでなくても動きます。ComfyUI公式READMEは、RTX(20系以降)にcu130以上を必須としています(2026年10月10日に確認)。古い記事の「Nightly必須」という記述に引きずられて不安定なビルドを入れないようにしてください。
Windowsで毎回出る「forcing single GPU mode」の警告は何?
GPUが1枚なら、そのGPUが番号0なので、使うGPUは変わりません。WindowsでComfyUIを起動すると、使うGPUを指定していない限り毎回出る知らせで、エラーではありません。
ComfyUI v0.39.0のソース(main.py)では、Windowsで起動オプションの--cuda-deviceと--default-device、環境変数のCUDA_VISIBLE_DEVICESのどれも指定されていないとき、ComfyUIがCUDA_VISIBLE_DEVICES=0を設定して、次の警告を出します。
On windows we are currently forcing single GPU mode in ComfyUI due to a Nvidia related issue, if you want to disable this use: --cuda-device all
GPUが2枚以上あっても、1枚目(GPU 0)だけを使う設定にしたという意味です。GPUが1枚のPCでは、そのGPUが番号0なので、使うGPUは変わりません。2枚以上を全部使わせたいときは、警告のとおり--cuda-device allを付けて起動し、特定のGPUだけを使うときは次の節のように番号を指定します。どれかを指定すれば、この警告は出なくなります。
GPUを指定して起動したい/複数GPUを使い分けたいときは?
GPUが2枚刺さっている、あるいは内蔵GPUが優先されてしまう環境では、どのGPUを使うかをComfyUIに明示できます。起動引数--cuda-deviceに、使いたいデバイスのIDを渡してください。
# 2枚目のGPU(ID=1)だけを使わせる python main.py --cuda-device 1 # 0番と1番の2枚を見せる python main.py --cuda-device 0,1
この引数は指定したID以外のデバイスをComfyUIから見えなくするのがポイントです。裏を返すと、存在しないIDを指定すると「GPUが無い」状態になります。1枚しか積んでいないPCで--cuda-device 1と書いてしまいNo CUDA GPUs are availableで悩む、というのはよくある取り違えです。まずは引数を外して素の状態で起動し、Device:の行にGPU名が出るか確認してください。
ポータブル版を使っている場合は、run_nvidia_gpu.batをテキストエディタで開いてmain.pyの後ろに同じ引数を書き足せば固定できます。
まとめ:再発防止の3つのルール
①アップデートバッチを安易に実行しない ②カスタムノード追加後はDevice:の行にGPU名が出るか毎回確認 ③RTX(20系以降)はcu130以上、GTX 10系以前はcu126版のポータブルを使う。GPU名が出ているのに遅いならVRAM不足を疑う
ドライバやGPUの相性問題がどうしても解決しないなら、GPUに依存しないクラウド環境で生成する方法もあります。ConoHa AI CanvasはブラウザからComfyUI・AUTOMATIC1111を使え、GPU認識やCUDAの設定でつまずく心配がありません。ただし公式の対応モデルはStable Diffusion 1.5/2.0/2.1/XLで、FLUXなどは対応一覧にありません。
ComfyUIでGPUが認識されているか確認する方法は?▼
RTX 5090でComfyUIを動かすにはどうすればいい?▼
Windowsで「forcing single GPU mode」と出るのは問題ですか?▼
main.py)。GPUを2枚以上使うなら--cuda-device allを付けて起動します。GPUは認識されているのに遅いのはなぜ?▼
loaded partially; … MB offloadedと出ていれば、載り切らない分をメインメモリに置いて動かしていて、そのぶん遅くなります(GGUFのモデルや、Dynamic VRAMが無効のときに出る行)。Dynamic VRAMで読み込んだモデルはprepared for dynamic VRAM loadingと出て、載り切らない量は表示されません。当サイトの測定では、載り切らない量1,000MiBにつき1ステップあたり約0.42〜0.60秒遅くなりました。特定のGPUを指定してComfyUIを起動するには?▼
起動引数--cuda-deviceにデバイスIDを渡します(例:python main.py --cuda-device 1、複数なら0,1)。指定したID以外のGPUはComfyUIから見えなくなるため、1枚しか積んでいないPCで--cuda-device 1と書くとNo CUDA GPUs are availableになります。まず引数なしで起動し、コンソールのDevice:の行にGPU名が出るか確認してください。
cu126とcu128・cu130のどれを入れればいい?▼
GPUの世代で決まります。RTX(20〜50系)はcu130以上(ComfyUI公式READMEで必須)、GTX 10系以前はcu126(専用のポータブル版)です。
コメント