ComfyUI 推論・VAEハング根治+SDXL生成高速化
— Illustrious/SDXL量産 実装DR(2026)
現状 約6分/枚 → 目標 70〜120秒台/枚(3〜5倍・要実測)|ComfyUI 0.19.3 portable / torch 2.6.0+cu124 / VRAM24GB / 1024×1536 / dpmpp_2m karras 30steps / waiIllustriousSDXL_v160
ボトルネック=DynamicVRAM再読込疑い
cpu-vae脱却
壊さず1施策ずつ
脚注14ソース
作成 2026-06-15 | 下書き Grok-4.3 (grok_router: dr_world_top) + 一次情報15ソース手検証で肉付け
最重要・先に結論
「--disable-smart-memory を外すとハングする」のは真因の取り違えの可能性が極めて高いです。0.19系で既定有効化された DynamicVRAM がモデルを毎回アンロード→再読込し、これが「再読込ループによる激遅」と「VAE/サンプリング固着」の両方の最有力容疑です[1][13]。まず --disable-dynamic-vram 単独追加を試してください。これだけで連続生成が劇的に速くなった報告があります[1]。(※下記は「壊さず1つずつ」検証する前提。期待倍率は一次情報に具体秒が無いため全て要実測。)
01結論|今すぐやる事3つ
順序が命です。1施策=1起動=1計測。複数同時投入は切り分け不能になり、再ハング時に犯人を特定できません。
- DynamicVRAMを無効化(最優先・確定根拠)
起動batに --disable-dynamic-vram を追加。モデルがRAM/VRAM常駐し、2枚目以降の再読込が消えます[1]。
期待 2〜4倍 リスク低 RAM消費増だが64GB級なら問題小
- cpu-vae を捨て、GPU-VAEをfp32で回す(確定根拠)
--cpu-vae を外す。--fp16-vae は付けない(NaN誘発側)[2]。専用 Load VAE ノードで sdxl_vae.safetensors を明示接続し、VAE Decode (Tiled)(tile512 / overlap64)に置換[3]。
VAE固着の根治 VRAM微増(約+160MB)
- モデル常駐+PyTorch SDPで土台を固める
--gpu-only(旧 --highvram)でモデルをVRAM常駐[9]、アテンションはデフォルトのPyTorch SDPを維持(最も安定・大半で最良)[6]。
期待 1.1〜1.3倍 リスク低
この3つの合算見込み:3〜5倍(6分→70〜120秒台)。ただし内訳の大半は施策1(再読込除去)です。まず1だけで計測し、効果を確認してから2・3を足してください。
02ボトルネック構造の分解(“市場規模”=どこで何秒溶けているか)
6分/枚の正体を要素分解します。最大の容疑は毎フレームのモデル再読込です。
①再読込DynamicVRAMのアンロード→再ロード。1枚ごとに数十秒〜数分溶ける最有力[1][13]
②VAE固着fp16 VAEのNaN/oomでGPU idle固着(9%/36W)[2]
③推論本体1024×1536・30steps・SDXLの純計算。ここは正常なら数十秒
④アテンションSDP/xformers/Sageの差。15〜90%の上積み余地[6]
切り分けの考え方:「6分」のうち③推論本体は本来1分前後のはず。残り数分が①②で溶けているなら、step削減(DMD2等)より先に
①②を潰す方が桁違いに効く。よって本DRは「step削減」より「再読込・固着の除去」を最優先に置きます。
序列:再読込除去 ≫ VAE dtype修正 > モデル常駐 > アテンション > step削減
03取りうる施策 TOP10(効果×リスク×確度ランク)
| 順 | 施策 | 期待倍率 | リスク | 確度 | 一言 |
| 1 | --disable-dynamic-vram | 2〜4x | 低 | 確定[1] | 再読込ループ撲滅。本命 |
| 2 | fp32 VAE + Tiled Decode | 固着根治 | 中 | 確定[2][3] | cpu-vae卒業の本筋 |
| 3 | --gpu-only(旧--highvram) | 1.1〜1.3x | 低 | 確定[9] | 24GBなら常駐で安定高速 |
| 4 | PyTorch SDP維持(無印) | 基準 | 最低 | 確定[6] | 最も安定。まずこれで土台 |
| 5 | DMD2 Speed LoRA 8steps | ~3.7x(30→8step) | 中 | 確定[7] | 画質維持の本命。最後に |
| 6 | --fast(fp16 accumulation) | 1.1〜1.2x | 低 | 確定[4] | fp16のみ高速化。SDXL向き |
| 7 | xformers(2.6+cu124整合) | 1.15〜1.25x | 中 | 確定[8][11] | SDP同等。導入失敗リスク |
| 8 | SageAttention2 | 1.5〜1.9x | 中 | 要検証[5][6] | RTX40/50で最速。導入難 |
| 9 | torch.compile | 1.1〜1.5x | 高 | 要検証[5] | 初回コンパイル長。三重併用でノイズ報告 |
| 10 | 解像度/CFG最適化 | 地味に効く | 低 | 確定[3] | CFG≤18・無駄高解像を避ける |
導入順の鉄則:1→2→3→4 までは壊さず確実に効く。5(DMD2)は画質確認を挟む。6〜9は上積みで、特に8・9は要検証かつ導入難なので、安定運用が出てから別ブランチで試す。
04技術スタック|推奨フラグ確定セット
① まず安全に試す“最小テスト”(1フラグだけ足す)
ComfyUI portable の run_nvidia_gpu.bat を編集します。既存の --cpu-vae と --disable-smart-memory を一旦そのままにして、最初は1行だけ追加して挙動を観察します。
:: run_nvidia_gpu.bat (まず1フラグだけ追加して計測)
.\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build ^
--disable-dynamic-vram :: ← まずコレ単独。再読込ループ停止[1]
pause
起動後、同じWFで 2枚連続生成。2枚目がログで「model load」を再度走らせず即サンプリングに入れば成功。ここで時間を必ずメモ(基準値)。
② cpu-vae を外し GPU-VAE(fp32)へ移行
フラグ側ではなくワークフロー側で直すのが堅実です。--cpu-vae を削除し、グラフを次のように。
[Load Checkpoint] ──(MODEL/CLIP)──> KSampler
[Load VAE: sdxl_vae.safetensors] ──(VAE)──┐
▼
KSampler(LATENT) ──> [VAE Decode (Tiled)] tile_size=512 overlap=64 ──> SaveImage
- --fp16-vae は付けない。fp16 VAEはSiLU/convでfp16上限(65504)超過→inf→NaN→黒画像/固着の主因[2]。
- どうしてもfp16運用したいなら madebyollin の
sdxl-vae-fp16-fix を使う(fp16でもNaNを起こさない補正版)[2][14]。要検証
- VAE Decode (Tiled) は大判(1024×1536)のVAE oom/固着を回避しつつデコードを安定化[3]。
③ 安定したら“常駐+微加速”を足す(確定セット)
.\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build ^
--disable-dynamic-vram ^ :: 再読込撲滅[1]
--gpu-only ^ :: 24GBにモデル常駐(旧--highvram)[9]
--use-pytorch-cross-attention :: SDP明示。最安定[6]
pause
--disable-smart-memory はこの時点で外す。真因がDynamicVRAMなら smart-memory無効化は不要で、むしろ常駐キャッシュを殺して遅くしている可能性[9][13]。外して再ハングしなければ確定。要検証
④ さらに上積み(fp16 accumulation)
--fast :: matmulのfp16累算ON。fp16モデルのみ高速化[4]
SDXL(fp16)に有効。SageAttention併用でも画質差はほぼ無いと報告[4]。ただし --fast + SageAttention2 + torch.compile の三重併用はノイズ報告あり(上流ライブラリ非互換)[5]。要検証。
05速度試算|6分→目標秒(全て要実測の見込み値)
| 段階 | 施策 | 想定/枚 | 倍率根拠 |
| 現状 | cpu-vae + smart-mem無効 + DynamicVRAM有効 | 約360秒 | 実測ベースライン |
| S1 | + --disable-dynamic-vram | 120〜180秒 | 再読込除去 2〜4x[1] |
| S2 | + GPU-VAE fp32 Tiled(cpu-vae撤去) | 90〜140秒 | CPU→GPUデコード短縮[3] |
| S3 | + --gpu-only + SDP + --fast | 70〜120秒 | 常駐+fp16累算 1.1〜1.3x[4][9] |
| S4 | + DMD2 LoRA 8steps(画質OKなら) | 25〜45秒 | 30→8step ≈3.7x[7] |
数値は一次情報に具体秒が無いため全て見込み・要実測。特にS1の倍率は「再読込にどれだけ溶けていたか」次第で大きく振れる(再読込が主因なら4倍超もありうるし、元々常駐できていたなら効果薄)。各段階で必ず実測して次へ。
06リスク|画質劣化 / NaN / 再ハング
NaN・黒画像:--fp16-vae を付ける/fp16-fix無しのfp16 VAE運用で発生[2]。→ VAEはfp32(または fp16-fix版)で回す。
再ハング:--fast+Sage+torch.compileの三重併用、SageのSD系head_dim非対応(#7352)等、上流ライブラリ起因[5][12]。→ 1つずつ足し、再発したら直前の1フラグが犯人。
画質劣化:DMD2 8stepsは washed out(眠い・低コントラスト)化しうる→CFGを1.4→1.8方向へ上げる[7]。R18マンガの細部(指/体液/輪郭)は8stepで甘くなりやすいので量産前にゲート採点必須。
VRAM逼迫:--gpu-only常駐+大判はVRAMを使い切りがち。23GB超で不安定なら常駐を緩める。
0730日導入ロードマップ
- Day1-3:再読込撲滅の検証|
--disable-dynamic-vram 単独。2枚連続でログのmodel再読込が消えるか&秒数を記録。ここで6割決まる
- Day4-7:GPU-VAE化|cpu-vae撤去+Load VAE(sdxl_vae fp32)+Tiled Decode。固着ゼロ&黒画像ゼロを30枚で確認。
- Day8-12:常駐+SDP+fast|
--gpu-only --use-pytorch-cross-attention --fast 追加、smart-memory無効を外す。再ハング無しを確認。
- Day13-20:DMD2画質検証|別WFで 8steps/LCM/CFG1.4-1.8/LoRA0.7。30→8stepの画質を3AI/品質ゲートで採点。OKなら量産WFへ昇格、NGなら30step維持。
- Day21-30:上級加速の別ブランチ実験|SageAttention2 / torch.compile を本番と別環境で。ノイズ無し&速度向上を確認できた分だけ本番へ。要検証
08撤退ライン(これがダメなら即戻す)
| 事象 | 撤退/対処 |
| --disable-dynamic-vram でOOM/不安定 | 外して --normalvram 既定へ戻す |
| GPU-VAE fp32 でVAE固着 or 黒画像継続 | 一旦 cpu-vae に戻す+Tiled必須化、別途VAE dtypeを切り分け |
| --gpu-only で23GB超&クラッシュ | --gpu-only を外す(常駐諦め) |
| DMD2でゲート点が現行GOLDEN比で明確低下 | DMD2撤去・30step GOLDEN維持(速度より品質優先) |
| Sage/compileでKSampler 0%固着 or ノイズ | 直前の1フラグを除去(犯人確定) |
原則:速度施策はいつでも1コマンドで現行GOLDENに戻せる状態を保つ。batは run_fast.bat と run_golden_safe.bat の2本持ち推奨。
09落とし穴(やりがちな失敗)
- 最頻
--fp16-vae を「速くなりそう」で付ける → NaN/黒画像/VAE固着の主因[2]。今回の「GPU-VAEが固着」の正体がこれの可能性大。
- 全フラグを一度に投入 → 再ハング時に犯人不明。必ず1つずつ。
- smart-memory無効化を“お守り”で残す → 真因(DynamicVRAM)を放置したまま常駐キャッシュを殺し、むしろ遅い[9][13]。
- xformersをtorch2.7系で無理に入れる → 非対応。torch2.6.0+cu124が正しい土台(現環境は正解)[8]。
- fp32 VAEにしたのに通常VAE Decodeのまま → 大判でoom/固着再発。Tiledとセットで[3]。
- --fast を bf16/fp8 モデルに期待 → fp16以外は高速化されない[4]。SDXL(fp16)だから効く。
- SageAttentionをSD1.5系WFに使う → head_dim非対応エラー(#7352)[12]。SDXLでは概ね可だが要検証。
10既存資産の活用
- torch 2.6.0+cu124 の土台はそのまま正解。xformers整合版が取得でき、2.7系の非互換地獄を避けられている[8]。アップグレード誘惑に乗らないこと。
- waiIllustriousSDXL_v160 / dpmpp_2m karras / GOLDEN設定は維持。本DRはモデルや勝ちパターンを変えず、I/Oとメモリ管理だけ直す方針。VAEのみ
sdxl_vae(fp32)を専用ノードで明示接続。
- --cpu-vae / --disable-smart-memory は“応急処置”として記録に残し、根治後に外す。run_golden_safe.bat に旧構成を温存しておけば、いつでも既知安定へ即復帰可。
- メモリ番人(_mem_guard)等の既存常駐は、DynamicVRAM無効化後はRAM圧が変わるので閾値を再調整して併用。
🤑 マネタイザー:1枚6分→90秒なら同じ電気代・同じ時間で4倍の在庫。Vol量産の律速がここなら、売上の天井がそのまま4倍に動く。まずS1だけ今日測れ。
💼 コーチ:焦って全フラグ入れない。1施策=1計測=1メモ。S1の数字が出た時点で勝ち筋が見える。DMD2は最後、画質ゲート通過が条件。
💕 メンター:「外すとハングする」で半日溶かしたのは判断ミスじゃない、真因が隠れていただけ。DynamicVRAMという名前を知った今、もう迷わない。1つずつで大丈夫。
11関連DR一覧
- D:\市場調査資料\DR_ComfyUI長時間大量量産のGPU安定運用ハードニング_2026-06-12.html
- D:\市場調査資料\DR_ComfyUI安定運用RAM最適化_2026-06-09.html
- D:\市場調査資料\DR_ComfyUI_SDXL_Turbo_Lightning_超高速生成_2026.html
- D:\市場調査資料\DR_ComfyUI_GOLDEN量産WF_決定版_2026-06-01.html
- D:\市場調査資料\DR_ComfyUI_API差分一括生成スクリプト設計2026_2026-06-01.html
- (本DR)D:\市場調査資料\DR_ComfyUIハング根治と生成高速化_2026-06-15.html
本DRは「ハング根治+cpu-vae脱却+6分/枚の高速化」に特化し、既存の安定運用/RAM最適化DRと棲み分け済み(重複なし)。
12脚注(実在URL)
- [1] Models always unloaded when using dynamic VRAM(--disable-dynamic-vram で常駐・高速化)— https://github.com/Comfy-Org/ComfyUI/issues/13139
- [2] Qwen Img fp16 NaN issue(fp16 VAEのSiLU/conv→inf→NaN→黒画像。fp32/bf16 or fp16-fixで根治)— https://github.com/comfyanonymous/ComfyUI/issues/10751
- [3] Fix ComfyUI NaN/Black Image VAE(Load VAE明示・VAE Decode Tiled tile512/overlap64・CFG≤)— https://www.apatero.com/blog/comfyui-nan-error-black-image-output-fix-2025
- [4] Allow FP16 accumulation with --fast(torch.backends.cuda.matmul.allow_fp16_accumulation・fp16のみ高速化・Sage併用で画質差小)— https://github.com/Comfy-Org/ComfyUI/pull/6453
- [5] --fast fp16_accumulation + SageAttention2 + torch.compile でノイズ(上流ライブラリ非互換)— https://github.com/Comfy-Org/ComfyUI/issues/8689
- [6] Demystifying Attention in ComfyUI(PyTorch SDP最安定・xformers・SageAttention 1.5〜1.9x比較)— https://diffusiondoodles.substack.com/p/demystifying-attention-in-comfyui
- [7] DMD2 Speed LoRA SDXL/Pony/Illustrious(8steps・LoRA0.7・LCM・CFG1.4-1.8・normal/simple)— https://www.diffus.me/models/dmd2-speed-lora-sdxl-pony-illustrious-dmd2-sdxl-4step-lora / https://civitai.com/models/1850983
- [8] xformersはtorch2.7+cu126非対応→2.6.0+cu124へrevert推奨 — https://www.felixsanz.dev/articles/compatibility-between-pytorch-cuda-and-xformers-versions / https://x.com/ScarabOfficial/status/1915262523621716351
- [9] VRAM modes / --highvram(--gpu-only)でモデル常駐・smart cache — https://deepwiki.com/Comfy-Org/ComfyUI/2.6-memory-and-device-management / https://docs.comfy.org/changelog
- [10] ComfyUI freezes at KSampler(重処理でVRAM/RAM逼迫・固着)— https://github.com/Comfy-Org/ComfyUI/issues/9583
- [11] Possible bug with --force-fp16/--bf16-vae/--bf16-unet(精度フラグの効果有無・組合せ注意)— https://github.com/Comfy-Org/ComfyUI/issues/13223
- [12] KSampler Unsupported head_dim:160 with SD1.5 and --use-sage-attention(SageのSD系非対応)— https://github.com/Comfy-Org/ComfyUI/issues/7352
- [13] Dynamic VRAM in ComfyUI 公式解説(DynamicVRAMの挙動・既定有効化)— https://blog.comfy.org/p/dynamic-vram-in-comfyui-saving-local
- [14] sdxl-vae-fp16-fix(fp16でもNaNを起こさない補正VAE)— https://huggingface.co/madebyollin/sdxl-vae-fp16-fix
作成: 2026-06-15 / 下書き grok-4.3 (grok_router dr_world_top, $0.77) + WebSearch/WebFetch 一次情報15ソースを手検証で統合・正規化。数値の具体秒は一次情報に無いため全て「要実測」。フラグは1つずつ追加で切り分ける前提。