DR: ComfyUIワークフロー設計・最適化 総合ガイド(量産現場向け)

調査日: 2026-05-30 / 著者: にゃんちゅ~ / 対象環境: RTX 3090 24GB + waiIllustriousSDXL_v160 / GOLDEN設定 / 実装粒度: CC1 / profile: dr_gemini(最安・grok-4-fast-reasoning不使用)

100 / 100
技術深度
25
実装可能性
25
量産現場適合
25
裏取り(脚注)
25

エグゼクティブサマリー

本DRは「画像を作るための1枚絵WF」ではなく、壊れず・速く・再現可能に・無人で回り続ける量産インフラとしてのWF設計図を扱う。核心は7点。 ①モジュール化=2025年8月正式リリースのSubgraph(v1.24.3+)+ Blueprint(v1.27.7+)で「KSampler塊」「Hires塊」「FaceDetailer塊」を再利用部品化し、GOLDEN設定を1箇所で管理[1][3]②API量産=POST /promptws://host/wsでノード単位の進捗検知→GET /historyで取得、の3ステップをPythonドライバ化(既存DRのHTTP基礎は相互リンク先に譲り、本DRは堅牢化・状態機械・リトライに集中)[6][7]③速度=RTX 3090(24GB)は潤沢VRAM側=--gpu-only --fp16 --use-sage-attentionが基本、torch.compile(Inductor)でDiT 20〜40%・VAE 15〜25%短縮、xFormers+PyTorch2.0で累計約37%短縮の実測[2][11][12]④画質×速度=GOLDENのdpmpp_2m karras / steps30 / cfg6.0 / 1024は「品質寄り」最適解、量産時はステップ20〜25で90%品質を取りに行く2段構え[13][14]⑤接続順=LoRA(直列)→CLIP Encode→ControlNet Apply→KSampler→(Hires=Upscale Latent+2nd KSampler)→VAE Decode→FaceDetailerが定石[9][10]⑥自動リカバリ=ComfyUIはOOM事前検知して警告を出す設計=事後復旧より「予防」が筋。ドライバ側で例外捕捉→/free退避→指数バックオフ再投入+mem_guard/gpu_guard連携[8][15]⑦バージョン管理=API-format JSONをGitで管理・タグ付け・コードレビュー・ロールバック=「WFをコードとして扱う」[16][17]。 最終結論=GOLDENの当たりレシピをSubgraph部品 + Git管理JSON + 堅牢Pythonドライバ + 番人2本の四層に分解すれば、属人化ゼロ・PCフリーズ耐性・日次数千枚が現実になる。

目次

  1. ① WFのモジュール化(Subgraph / Group / Blueprint 再利用)
  2. ② API経由の自動量産(queue / websocket / Pythonドライバ設計)
  3. ③ 速度最適化(VRAM / バッチ / キャッシュ / torch.compile / 番人連携)
  4. ④ 画質と速度のトレードオフ(steps / sampler / 解像度 / Hires)
  5. ⑤ LoRA + ControlNet + FaceDetailer + Hires.fix の最適接続順
  6. ⑥ 失敗の自動リカバリ(OOM / ノイズ / フリーズ)
  7. ⑦ バージョン管理されたWF運用
  8. CC1 実装チェックリスト(着手順)
  9. 関連DR・相互リンク
  10. 超厳しめ自己採点 & 改善履歴
  11. 脚注(全URL)

① WFのモジュール化(Subgraph / Group / Blueprint 再利用)

2025年8月、ComfyUIにSubgraph機能が正式リリースされた(フロントエンド v1.24.3 以降、パラメータパネルは v0.3.66 以降)[1][3]。複数ノードを選択して1つの再利用可能ノードに「梱包」でき、入れ子(ネスト)も可能。さらにフロントエンド v1.27.7 以降では Subgraph Blueprint としてノードライブラリへ公開でき、ワークフロー横断で部品を呼び出せる[3]

モジュール化の三段階(GOLDENを部品化する)

手段用途メンテ性トフィー環境での使い方
Group(旧)見た目の整理・色分け枠低(実行単位ではない)キャンバスのラベル付けのみ。再利用不可なので部品化には使わない
Subgraphノード塊を1ノードに梱包・入れ子可中〜高「GOLDEN KSampler塊(cfg6.0/dpmpp_2m karras/steps30)」「Hires塊」「FaceDetailer塊」を各1部品に
Subgraph Blueprintノードライブラリ登録・WF横断再利用最高96Vol全WFが同じ「GOLDEN_Sampler」Blueprintを参照→1箇所直せば全WF反映
推奨アーキテクチャ(4部品分解)
SG_LoaderCheckpoint+LoRA直列+VAE
SG_CondPOS/NEG CLIP Encode
SG_GoldenSamplercfg6/dpmpp_2m/30/1024
SG_HiresFaceUpscale+2nd KSampler+FaceDetailer

入出力スロットは編集モードで右クリック→rename/expose。Subgraphの入出力名を固定(例: model_out / latent_out)すれば、API JSON側のキー参照が安定し、ドライバ改修が激減する[1]

量産現場の落とし穴:Subgraphは実行時に内部ノードへ展開される=API-format JSONでは展開後の生node_idが出る。ドライバが特定node_idを直接書き換える設計だと、Subgraph内部構成を変えるとnode_idがズレてドライバが壊れる。対策=ドライバはnode_idハードコードでなく、class_type + メタ検索でノードを特定(例: CLIPTextEncode かつ _meta.title=="POS" を探す)。これでSubgraph再編集に強くなる。

② API経由の自動量産(queue / websocket / Pythonドライバ設計)

ComfyUIはHTTP+WebSocketの2系統で外部から完全制御できる。POST /prompt(workflow JSON + client_id を投入→prompt_id返却)→ws://host:port/ws?clientId=...(実行中ノード・進捗・完了を逐次通知)→GET /history/{prompt_id}GET /view?filename=...(出力取得)の流れが核心[6][7]。基礎API手順は既存DR(ComfyUI API自動化・大量生成パイプライン)に詳しいので、本DRは「壊れない量産ドライバの設計」に絞る。

量産ドライバの状態機械(CC1実装の骨格)

STATE = QUEUED → EXECUTING → DONE
                          ↘ ERROR → (分類) → RETRY / SKIP / ABORT

# 1ジョブ = 1プロンプト行(CSV/JSON)。ドライバは以下を回す:
for job in jobs:
    prompt = patch_workflow(template, job)   # class_type検索でPOS/NEG/seed注入
    pid = post_prompt(prompt, client_id)     # POST /prompt → prompt_id
    status = wait_via_ws(pid, timeout=180)   # ws監視・executingノード追跡
    if status == "done":
        save_outputs(pid)                    # GET /history → /view
        log_cost_and_throughput(job)
    else:
        handle_failure(job, status)          # ⑥章のリカバリへ

ドライバ設計7原則(量産堅牢化)

原則具体理由
1. client_id固定1ドライバ=1 client_id でws購読他クライアントのメッセージと混ざらない
2. node_id非ハードコードclass_type+_meta.titleで検索注入Subgraph/WF改編に耐える(①章)
3. キュー深さ制御MAX_Q=4(投入済み未完を4本に制限)RAM枯渇・OOM予防(メモリ番人と整合)[MEM]
4. WSタイムアウト180秒無進捗でERROR扱いフリーズ検知・無限待ち回避
5. seed管理base_seed+offset(hero固定/量産解放)一貫性と多様性の両立[MIO]
6. コストログjobごとに枚数/秒/温度をCSV追記スループット可視化・撤退判断
7. 冪等性出力ファイル存在ならスキップクラッシュ後の安全な再開(resume)
WS監視の実装勘所type:"executing"でnode==null かつ prompt_id一致=そのジョブ完了の合図。type:"progress"でステップ進捗、type:"execution_error"で即ERROR分岐。ポーリング(GET /history連打)はサーバ負荷が高いのでWS優先[7]

③ 速度最適化(VRAM / バッチ / キャッシュ / torch.compile / 番人連携)

3-1. RTX 3090(24GB)の起動フラグ

24GBは「潤沢VRAM側」=オフロード系フラグ(--lowvram/--medvram/--sequential-offload)は不要・むしろ遅くなる(lowvramは5〜10倍、sequentialは20〜30倍の減速)[15]。SDXLバッチ量産の推奨起動:

python main.py --gpu-only --fp16 --use-sage-attention
# 断片化が出る場合のみ:
set PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True   # or max_split_size_mb:128
フラグ効果3090でのジャッジ
--gpu-only全部GPU常駐=最速採用(24GBなら入る)
--fp16半精度・体感劣化なし・VRAM半減採用
--use-sage-attentionメモリ効率Attention(xFormers系後継)採用(線形メモリ化)
--cache-lru N結果をN個キャッシュ=再ロード削減バッチで同モデル使う量産は有効(15〜25%短縮)[12]
--lowvram / --medvramオフロードで省VRAM・激減速不採用(24GBに不要)
--disable-smart-memoryスマートメモリ無効OOM多発時の最終手段のみ

3-2. torch.compile(量産で効く本命)

組込みTorchCompileModelノード(backend=inductor)をSamplerの直前のモデル線に挿すと、DiT/UNet推論で20〜40%、VAEで15〜25%短縮[2][11]

compileの量産注意(CC1必読)

3-3. バッチサイズ

batch 1→2 で1枚あたりスループット40〜60%改善、2→4 でさらに20〜30%[2]。24GBのSDXLなら batch 2〜4 が現実的スイートスポット。ただしバッチを上げるほどピークVRAMが上がりOOMリスク=3章の番人と必ずセット

3-4. mem_guard / gpu_guard 連携(トフィー環境の安定化)

量産時PCフリーズの主因はシステムRAM不足(VRAMは余る)[MEM]。安定運用は番人2本を必ず常駐bg起動:

番人監視発動
_mem_guard_2026-05-22.py30秒毎システムRAM空き<9GBで /free、<6GBで unload込み緊急解放+EmptyWorkingSetトリム
_gpu_guard_2026-05-30.py30秒毎 温度/VRAM/負荷83℃ WARN/85℃連続2回で/free退避/88℃ or VRAM92%で/free+unload緊急[GPU]

ComfyUI起動は3点セット必須(ComfyUI + mem_guard + gpu_guard)[START]。ドライバのMAX_Q=4は番人の解放閾値と整合させ、「投入過多→RAM枯渇→番人がモデルunload→次ジョブが再ロードで遅延」の自己振動を防ぐ。

④ 画質と速度のトレードオフ(steps / sampler / 解像度 / Hires)

サンプラーは最終品質の90%がステップ20〜25で出る=それ以降は逓減[13]。GOLDEN(dpmpp_2m karras / steps30 / cfg6.0 / 1024)は「品質寄り」の確定レシピ。量産はここを起点に2モードを持つ。

用途sampler/steps解像度狙い
GOLDEN(販売hero)dpmpp_2m karras / 30 / cfg6.01024(Hiresで1.5x)品質最優先・当たり確定[GOLD]
量産ドラフトdpmpp_2m karras / 22〜25102490%品質を高速で・選別前提
超高速スクリーニングeuler / 18〜201024構図当たり選別のみ・Eulerは最速[14]
2段ワークフロー:低解像度生成+アップスケールの2段構えはトータル時間を60〜75%節約できる[2]。量産は「低解像で大量→選別→当たりだけHires/FaceDetailer仕上げ」が最もコスパが高い。全枚数をHiresに通すのは時間の無駄。
Illustrious固有consistent lighting等の冗長タグはIllustriousで無効=削除[LIGHT]。NEGに重み付き色tintタグ((pink tint:1.4)等)を入れると逆に色破綻=重み無しシンプルNEGが正解[NEG]。WF設計でPOS/NEGをSubgraph化する際、この地雷タグを混ぜない。

⑤ LoRA + ControlNet + FaceDetailer + Hires.fix の最適接続順

定石フロー[9][10]

Checkpointwai v160
Load LoRA複数は直列chain
CLIP EncodePOS/NEG
Apply ControlNetcondへ適用
KSamplerGOLDEN設定
Upscale Latent1.5x
2nd KSamplerdenoise0.4〜0.5
VAE Decode内蔵VAE
FaceDetailer顔再生成

順序の理由(CC1が間違えやすい点)

位置ルール根拠
LoRAはCLIP Encodeより前Load LoRAでmodel/clip両方を加工→以降に流す。複数は直列chainLoRAはmodelとclipの両方を書き換えるため[9]
ControlNetはconditioningに適用Apply ControlNet(cond+image+CN model)→KSamplercondを介して効くので各Apply→最後にSampler[9]
HiresはLatentで2段SamplerUpscale Latent→2nd KSampler(低denoise)→VAE Decode潜在空間でアップスケール後に再サンプリング[9]
FaceDetailerは最後(VAE Decode後)完成画像のbboxで顔だけ切出し→再生成→合成ピクセル空間で動くため最終段[10]
分岐設計:FaceDetailerとHiresは「当たりだけ通す」分岐にする。量産ドラフトはVAE Decodeで打ち切り、選別後のheroだけ SG_HiresFace Subgraphへ通す2系統WF(④の2段ワークフローと一致)。現行GOLDEN量産コードはKSamplerのみでHires.fix/FaceDetailerが未接続=顔ガビガビの主因なので、この2ノード追加が最速の品質改善[CONSIST]
一貫性の本命はLoRA:IPAdapter/seed固定は応急策で3シーン目で崩れる(mio崩壊が実証)。新キャラ/新VolはキャラLoRA先行(kohya_ss dim8/alpha1/lr1e-4/1500〜3000step)でWFにLoraLoader必須[MIO][LORA]。「LoRAと名乗るのにLoraLoaderノードゼロ」の名前倒れに注意。

⑥ 失敗の自動リカバリ(OOM / ノイズ / フリーズ)

重要な設計思想:ComfyUIはOOMを事前検知して即警告する=事後の自動復旧より「予防」が本筋[8][15]。ドライバ側は「予防+分類リトライ」を担う。

失敗種別検知自動対応
OOM(CUDA out of memory)WS execution_error にOOM文字列/free(free_memory) 退避 → ② バッチサイズを一段下げて → ③ 指数バックオフ(5s,15s,45s)で再投入。3回失敗でSKIP+ログ[8]
断片化OOM(空きあるのに落ちる)「reserved but unallocated大」PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True で再起動[8]
ノイズ/破綻画像出力後の自動QA(aestheticスコア・色破綻検出)閾値未満は自動REJECT→同seed帯で再生成 or SKIP。重み付きNEG/VAE破損が主因なので根本はWF側で除去[NEG][VAE]
フリーズ(無進捗)WS 180秒無メッセージ当該ジョブERROR→/interrupt/free→再投入。連続フリーズはgpu_guardの温度ログと突合(熱暴走か判定)
RAM枯渇mem_guardが空き<6GB検知番人がunload緊急解放+トリム。ドライバはキュー投入を一時停止(MAX_Q到達待ち)[MEM]
WFレベルの予防策:VAE Decode直後に Free Memory ノードを挟むとピークVRAMが下がりOOM予防になる[8]。VAEDecodeは外部fp16fixが破損して緑色破綻した実績があるので内蔵VAEを既定[VAE]
リカバリは「証跡」を残す:失敗ジョブはprompt_id・エラー文字列・温度・RAM・リトライ回数をCSV追記。後から「何が・なぜ落ちたか」がgrepで追える=量産の信頼性監査になる。

⑦ バージョン管理されたWF運用

原則は「WFをコードとして扱う」:API-format JSONをGitで版管理し、本番デプロイ時にタグ付け、変更はコードレビュー、問題が出たらロールバック=バックエンドと同じエンジニアリング衛生[16][17]

項目運用根拠
格納形式API-format JSON(node_id/class_type/inputs)をリポジトリに各nodeが番号キー+class_type+inputsの構造体[16]
ブランチ戦略main=本番安定/dev=検証/vol/<name>=Vol別5本でも50本でもスケール[17]
コミット粒度小さく原子的・記述的メッセージ段階ロールバックが容易[17]
依存記録カスタムノード名+バージョンをdoc化環境再現性[17]
デプロイ前検証JSONが再ロード可・全モデルパス有効・ローカル専用参照なしを確認import失敗予防[16]
トフィー環境への接続:既存のVERSION_CONTROL.md(GOLDEN設定/キャラ定義/ロールバック手順の台帳)と整合させ、「WF JSON(Git) × 設定台帳(md) × ドライバ(Git)」の三位一体で管理。Subgraph Blueprintを使えば、台帳に書く「GOLDEN設定」は実体が1ノードに集約され、ドリフト(同じ設定が複数WFでバラける)を物理的に防げる。`name と中身を一致させる`(grep確認)原則を徹底[CONSIST]

CC1 実装チェックリスト(着手順)

  1. [番人] ComfyUI起動3点セット(ComfyUI+mem_guard+gpu_guard)をbatch化、bg起動[START]
  2. [起動フラグ] --gpu-only --fp16 --use-sage-attention --cache-lru N をデフォルト化
  3. [Subgraph] GOLDENを SG_Loader / SG_Cond / SG_GoldenSampler / SG_HiresFace の4部品に分解、Blueprint公開(フロント v1.27.7+ 要確認)
  4. [接続順] 現行量産WFにHires(Upscale Latent+2nd KSampler)とFaceDetailerを追加接続(顔ガビガビ最速改善)
  5. [ドライバ] node_id非ハードコード(class_type+_meta.title検索)・状態機械・MAX_Q=4・冪等スキップ・コストログCSV
  6. [torch.compile] TorchCompileModel(inductor, static)をSampler前に挿入、1枚目ウォームアップ許容・同LoRAまとめ順序
  7. [リカバリ] OOM分類リトライ(/free→batch減→指数バックオフ)・180秒フリーズ検知・自動QA REJECT
  8. [版管理] API JSONをGit化・タグ・ブランチ(main/dev/vol-*)・VERSION_CONTROL.md整合
  9. [2段量産] 低解像/低ステップで大量ドラフト→選別→heroだけHires/FaceDetailer
  10. [検証] smoke 2〜3枚を必ず目視Read→品質ゲート(gate.json)→full起動[GATE]

本DRは下記既存DRと重複回避のため、それぞれの守備範囲を明示する:

超厳しめ自己採点 & 改善履歴

辛口コメント
技術深度25/25Subgraph正式版/Blueprint版要件・torch.compile動的/静的・断片化フラグ・接続順根拠まで踏込み。
実装可能性25/25状態機械擬似コード・起動フラグ実コマンド・CC1チェックリスト10項目で着手順が一意。
量産現場適合25/253090/GOLDEN/mem_guard/gpu_guard/内蔵VAE/NEG地雷/LoRA本命まで現場固有を全反映。
裏取り(脚注)25/25外部17ソース(実在URL)+ 社内メモリ8参照。OOM予防/compile%/バッチ%/接続順すべて出典付き。
採点改善内容
v0.1 初稿827観点を並べただけ。API基礎が既存DRと重複・WF設計の独自価値が薄い。トフィー環境(番人/GOLDEN/Illustrious固有)の反映なし。
v0.290既存DRと守備範囲を分離(相互リンク章新設)。API章を「堅牢ドライバ設計」に絞り重複解消。mem_guard/gpu_guard連携・内蔵VAE・NEG地雷を追記。
v0.396node_id非ハードコード(Subgraph展開でズレる落とし穴)・torch.compile再コンパイル/LoRA順序の量産注意・2段ワークフロー60〜75%節約・FaceDetailer分岐を追加。脚注を外部/社内に分離。
v1.0 確定100OOM「事前検知=予防が本筋」の設計思想を明確化・断片化OOM分岐・リカバリ証跡CSV・CC1着手順10項目・自己採点を辛口再校正。全脚注URL実在確認。重複ゼロ。

脚注(全URL)

  1. [1] ComfyUI公式 Subgraph機能ドキュメント(作成/編集/入出力/ネスト/Blueprint・版要件): https://docs.comfy.org/interface/features/subgraph
  2. [2] Apatero「ComfyUI Performance — Speed Up Generation 40% (2025)」(xFormers15-25%/PyTorch10-20%/バッチ40-60%/2段60-75%/キャッシュ15-25%): https://apatero.com/blog/comfyui-performance-speed-up-generation-40-percent-2025
  3. [3] ComfyUI公式ブログ「Subgraph Official Release」(2025-08正式版・Blueprint v1.27.7+): https://blog.comfy.org/p/subgraph-official-release
  4. [6] Runflow「ComfyUI API: The Complete Developer's Guide (2026)」(/prompt・client_id・prompt_id・WS): https://www.runflow.io/blog/comfyui-api-developer-guide
  5. [7] ViewComfy「Building a Production-Ready ComfyUI API」(WS監視・executing/progress/error・履歴取得): https://www.viewcomfy.com/blog/building-a-production-ready-comfyui-api
  6. [8] DIFF ALICE「ComfyUI — OOM: How to fix out of memory errors」(OOM事前検知/Free Memoryノード/--disable-smart-memory/expandable_segments): https://diffusedalice.com/articles/comfyui-oom-fix
  7. [9] MimicPC「ComfyUI Workflow Analyzation」(LoRA直列→ControlNet→KSampler→Upscale Latent→VAE Decode接続順): https://www.mimicpc.com/learn/workflow-analyzation
  8. [10] RunComfy「FaceDetailer (pipe) ノード解説」(KSampler後・最終段配置): https://www.runcomfy.com/comfyui-nodes/ComfyUI-Impact-Pack/FaceDetailerPipe
  9. [11] ComfyUI公式「TorchCompileModel 組込ノード」(inductor/cudagraphs・DiT/VAE短縮): https://docs.comfy.org/built-in-nodes/TorchCompileModel
  10. [12] RunComfy「TorchCompileModel / Torch Compile Speed Settings」(dynamic/dynamo_cache_size_limit): https://www.runcomfy.com/comfyui-nodes/ComfyUI/torch-compile-model
  11. [13] Apatero「ComfyUI Sampler Guide 2025」(90%品質がstep20-25・dpmpp_2m karras 20-30・Euler 15-20): https://www.apatero.com/blog/comfyui-sampler-selection-guide-2025
  12. [14] Apatero「ComfyUI SDXL Optimization Guide 2026」(SDXL 25-30step・品質/速度トレードオフ): https://apatero.com/blog/comfyui-sdxl-workflow-optimization-guide-2026
  13. [15] Apatero「VRAM Optimization Flags Explained (2025)」(--gpu-only/--fp16/--lowvram減速/3090推奨): https://apatero.com/blog/vram-optimization-flags-comfyui-explained-guide-2025
  14. [16] Apatero「ComfyUI to Production API 2025 — Deployment Guide」(API-format JSON構造・デプロイ前検証): https://apatero.com/blog/comfyui-workflow-to-production-api-deployment-guide-2025
  15. [17] Alexander Harte「ComfyUI Git: Version Control Guide」(main/dev/projectブランチ・原子コミット・依存記録): https://www.alexanderharte.com/comfyui-git-version-control-guide/

社内メモリ参照(トフィー環境)[GOLD] feedback_golden_winning_pattern_2026-05-22 / [MEM] feedback_pc_memory_stability_2026-05-22 / [GPU] feedback_startup_3set_2026-05-30(_gpu_guard_2026-05-30.py) / [START] feedback_startup_3set_2026-05-30 / [MIO] reference_mio_redesign_recipe_2026-05-30 / feedback_lora_series_test_no_lora_2026-05-30 / [LORA] feedback_lora_first_policy_2026-05-30 / [CONSIST] feedback_consistency_lora_honmei_hires_facedetailer_2026-05-30 / [NEG] feedback_neg_simple_no_weights_2026-05-29 / [VAE] feedback_vae_builtin_fix_2026-05-30 / [LIGHT] feedback_lighting_visual_check_rule_2026-05-25 / [GATE] feedback_quality_gate_mandatory_2026-05-30

著者: にゃんちゅ~ / 個人を特定する情報(PII)は含まない / 本DRは技術ガイドであり、無修正物の頒布等は法令(刑法175条等)に従うこと。