生成AI

ComfyUIでメモリ不足(CUDA out of memory)になる時、解像度を下げる前に見る起動オプション


ComfyUIで動画や画像を作っていて、更新後に「CUDA out of memory」というメモリ不足エラーで生成が止まった、という利用者報告があります。動画側はWindows 11とRTX 5070 Ti(16GB)、画像側はRTX 5060 Ti(16GB)とRTX 3060(12GB)という別々の環境の話です。解像度や長さを下げる前に、起動時の設定にも目を向けてみたくなる報告を入口に、自分の状況と何を見比べればよいのか整理します。

先に整理すると:動画の報告で動いた--disable-pinned-memoryと、画像の報告で使われた--disable-dynamic-vramは、どちらもメモリに関わりますが働きが別の設定です。GPUを指定する--cuda-deviceと--default-deviceも役割が異なります。詳しくは本文で解説します。

更新後にCUDA OOMで動画・画像生成が止まったという2つの報告

今回の入口は、aferventuさんが公開したComfyUIの不具合報告です。画像や動画を生成するこのツールを更新したあと、WAN 2.2で画像から動画を作る処理が止まったといいます。ワークフロー(生成の処理手順)は、それまで動いていたものと同じでした。

解像度やフレーム数、生成方法やモデルの設定も変えていない、というのが投稿者の説明です。それでもCUDA OOMというメモリ不足のエラーが出た一方、起動時に「--disable-pinned-memory」を加えると、同じ動画生成が再び動いたと報告しています。

報告の環境はWindows 11とRTX 5070 Ti 16GB。生成の計算を担うGPUとして、この機種を使っていたケースです。環境欄にはSageAttentionも有効とあり、モデル以外の条件も記されています。

もう一方は、別の利用者による画像生成の停止報告です。WindowsのComfyUI Desktopで、RTX 5060 Ti(16GB)とRTX 3060(12GB)を使い、Krea 2で試した際に起きたそうです。更新後、読み取り処理の失敗を示す「HostBuffer.read_file_slice failed」に続いて、CUDA OOMが出たといいます。

エラーは似ていても、動画と画像では生成対象もGPU構成も異なります。ここでは「同じ不具合の解決例」とひとまとめにせず、条件の違う報告として読んでいきます。

名前の似た起動オプションの違いを整理する

面白いのは、作りたい映像の条件を変える前に、動かす環境を見直す余地があることです。メモリ不足という表示を見ると、映像を小さくするしかないと感じるかもしれません。でも今回の報告は、起動設定の違いも確かめる材料になります。

ただし、メモリ容量が本当に足りていないケースもありえます。エラーの名前だけで原因を決めず、その前後に何が起きたかまで見る。そのための手がかりとして扱いたいところです。

ここで、名前の似た設定を整理します。動画の報告に出てくる「--disable-pinned-memory」は、公式コードではpinned memoryというメモリ利用を無効にする設定です。一方、画像生成の元報告で動いたとされる「--disable-dynamic-vram」は、dynamic VRAMを無効にして、見積もりに基づくモデルの読み込みへ切り替える設定です。

どちらもメモリに関わりますが、止める働きは別です。動画側と画像側の設定は、それぞれ別のものとして読みたいところです。

画像生成の投稿には「Mod Note」という追記もあります。そこで案内されているのは、「--cuda-device 0」などで使うGPUを限定する方法、または複数GPUを使う場合の「--disable-pinned-memory」です。元の報告の設定と追記の案内は分けて読みたいですし、これらを全部同時に指定するという話でもありません。
GPUの指定にも違いがあります。今回読んだ公式コードでは、「--cuda-device」は使うGPUをIDで指定し、それ以外をComfyUIから見えなくします。「--default-device」は既定のGPUを選びますが、ほかのGPUも見えるままです。

公式コードで分かるのは、こうした設定の役割までです。利用者が使った版と同じ動作になるか、設定を変えると自分のエラーも直るかは、別に確かめる必要があります。

まず残すのはエラーの前後とGPU・起動条件

更新後から急に生成が止まったなら、まず残しておきたいのはエラーの前後の記録です。使っているGPUと起動時の設定も添えて、今回の報告に似た条件があるか見比べてみる。解像度や長さを下げる判断の前に、そこを確認する余地はありそうです。

試す設定を見つけても、変更は分けて追いたいところです。別々の回避例を一度に足すと、動いたとしても何が効いたか分かりにくくなります。

ここで読んだのは利用者の報告と公式の設定定義で、編集部が再現実験をした結果ではありません。手元の版で同じ結果になるか、速度や画質がどう変わるかも、まだ判断できません。追加部品の「カスタムノード」を無効にしても起きるか、という切り分けが済んでいるかも、今回の報告からは分かりませんでした。

aferventuさんの投稿には、ChatGPTで作成した旨の注記もあります。それだけで内容を否定する必要はありませんが、読みやすく整理された文章と、十分に検証された結果は別です。自分の記録と照らし合わせる材料として受け取りたいですね。

AI編集部のつぶやき

大吉のアイコン

大吉
同じ動画の設定でまた動いた、という報告には少しほっとするね。狙っていた長さを変える前に、まだ見られる場所があるのは助かりそう。
影のアイコン

影
ただ、そこから「この設定を入れればいい」に飛ぶのは待ちたいな。画像側の報告とはGPU構成も違うし、元の回避策と追記の案内も違っている。
大吉のアイコン

大吉
なるほど。じゃあ最初は設定を足すより、自分のエラーの続きとGPUを見比べるところか。似ている部分と違う部分が分かれば、試すかどうかも考えやすそうだね。
見極のアイコン

見極
その違いを残せるかが大事そうだね。動いたという結末だけを持ち帰ると、次に止まったときもまた設定探しになる。何を変えて結果がどうなったかまで残せたら、自分の制作環境を知る材料になると思う。

今日の持って帰るところ

メモリ不足で止まったとき、最初に残したいのは、画面に出たエラーの前後と、そのときの起動条件です。映像の設定を変えるか、環境を調べるかを考える手がかりになります。

出典

-生成AI
-