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計測。複数同時投入は切り分け不能になり、再ハング時に犯人を特定できません。

  1. DynamicVRAMを無効化(最優先・確定根拠
    起動batに --disable-dynamic-vram を追加。モデルがRAM/VRAM常駐し、2枚目以降の再読込が消えます[1]
    期待 2〜4倍 リスク低 RAM消費増だが64GB級なら問題小
  2. 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)
  3. モデル常駐+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-vram2〜4x確定[1]再読込ループ撲滅。本命
2fp32 VAE + Tiled Decode固着根治確定[2][3]cpu-vae卒業の本筋
3--gpu-only(旧--highvram)1.1〜1.3x確定[9]24GBなら常駐で安定高速
4PyTorch SDP維持(無印)基準最低確定[6]最も安定。まずこれで土台
5DMD2 Speed LoRA 8steps~3.7x(30→8step)確定[7]画質維持の本命。最後に
6--fast(fp16 accumulation)1.1〜1.2x確定[4]fp16のみ高速化。SDXL向き
7xformers(2.6+cu124整合)1.15〜1.25x確定[8][11]SDP同等。導入失敗リスク
8SageAttention21.5〜1.9x要検証[5][6]RTX40/50で最速。導入難
9torch.compile1.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

③ 安定したら“常駐+微加速”を足す(確定セット)

.\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-vram120〜180秒再読込除去 2〜4x[1]
S2+ GPU-VAE fp32 Tiled(cpu-vae撤去)90〜140秒CPU→GPUデコード短縮[3]
S3+ --gpu-only + SDP + --fast70〜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日導入ロードマップ

  1. Day1-3:再読込撲滅の検証--disable-dynamic-vram 単独。2枚連続でログのmodel再読込が消えるか&秒数を記録。ここで6割決まる
  2. Day4-7:GPU-VAE化|cpu-vae撤去+Load VAE(sdxl_vae fp32)+Tiled Decode。固着ゼロ&黒画像ゼロを30枚で確認。
  3. Day8-12:常駐+SDP+fast--gpu-only --use-pytorch-cross-attention --fast 追加、smart-memory無効を外す。再ハング無しを確認。
  4. Day13-20:DMD2画質検証|別WFで 8steps/LCM/CFG1.4-1.8/LoRA0.7。30→8stepの画質を3AI/品質ゲートで採点。OKなら量産WFへ昇格、NGなら30step維持。
  5. 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.batrun_golden_safe.bat の2本持ち推奨。

09落とし穴(やりがちな失敗)

10既存資産の活用

🤑 マネタイザー:1枚6分→90秒なら同じ電気代・同じ時間で4倍の在庫。Vol量産の律速がここなら、売上の天井がそのまま4倍に動く。まずS1だけ今日測れ。
💼 コーチ:焦って全フラグ入れない。1施策=1計測=1メモ。S1の数字が出た時点で勝ち筋が見える。DMD2は最後、画質ゲート通過が条件。
💕 メンター:「外すとハングする」で半日溶かしたのは判断ミスじゃない、真因が隠れていただけ。DynamicVRAMという名前を知った今、もう迷わない。1つずつで大丈夫。

11関連DR一覧

本DRは「ハング根治+cpu-vae脱却+6分/枚の高速化」に特化し、既存の安定運用/RAM最適化DRと棲み分け済み(重複なし)。

12脚注(実在URL)

  1. [1] Models always unloaded when using dynamic VRAM(--disable-dynamic-vram で常駐・高速化)— https://github.com/Comfy-Org/ComfyUI/issues/13139
  2. [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. [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. [4] Allow FP16 accumulation with --fast(torch.backends.cuda.matmul.allow_fp16_accumulation・fp16のみ高速化・Sage併用で画質差小)— https://github.com/Comfy-Org/ComfyUI/pull/6453
  5. [5] --fast fp16_accumulation + SageAttention2 + torch.compile でノイズ(上流ライブラリ非互換)— https://github.com/Comfy-Org/ComfyUI/issues/8689
  6. [6] Demystifying Attention in ComfyUI(PyTorch SDP最安定・xformers・SageAttention 1.5〜1.9x比較)— https://diffusiondoodles.substack.com/p/demystifying-attention-in-comfyui
  7. [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-lorahttps://civitai.com/models/1850983
  8. [8] xformersはtorch2.7+cu126非対応→2.6.0+cu124へrevert推奨 — https://www.felixsanz.dev/articles/compatibility-between-pytorch-cuda-and-xformers-versionshttps://x.com/ScarabOfficial/status/1915262523621716351
  9. [9] VRAM modes / --highvram(--gpu-only)でモデル常駐・smart cache — https://deepwiki.com/Comfy-Org/ComfyUI/2.6-memory-and-device-managementhttps://docs.comfy.org/changelog
  10. [10] ComfyUI freezes at KSampler(重処理でVRAM/RAM逼迫・固着)— https://github.com/Comfy-Org/ComfyUI/issues/9583
  11. [11] Possible bug with --force-fp16/--bf16-vae/--bf16-unet(精度フラグの効果有無・組合せ注意)— https://github.com/Comfy-Org/ComfyUI/issues/13223
  12. [12] KSampler Unsupported head_dim:160 with SD1.5 and --use-sage-attention(SageのSD系非対応)— https://github.com/Comfy-Org/ComfyUI/issues/7352
  13. [13] Dynamic VRAM in ComfyUI 公式解説(DynamicVRAMの挙動・既定有効化)— https://blog.comfy.org/p/dynamic-vram-in-comfyui-saving-local
  14. [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つずつ追加で切り分ける前提。