ComfyUI H3 レンダリングコア(H3 物理レンダリングとスケジューリングプロセス)
プロセス位置付け:短尺ドラマの物理生成コアプロセス 基本原則:ComfyUIのノード番号をハードコードしない。Windows WDDMドライバのフリーズを厳重に防止する。単一話者発話ロックと潜空間サイズの安全性チェックを強制する。
1. 実行契約と入出力
- 入力:
plan.json(カメラワーク、対話、175フレームのタイミング情報を含む)- 第2工程のキーフレーム画像:
segments/{seg_id}_keyframe.png style_bible.json
- 出力:
- H3ネイティブ生成ビデオ:
segments/{seg_id}.mp4(ネイティブの音声と映像を含む) - VRAM状態監視ログとレンダリング時間台帳
- H3ネイティブ生成ビデオ:
2. ハードコアSOP:3つの物理破綻防止則(数値特性とエラー例付き)
2.1 鉄則一:潜空間サイズの32整除則(VAE潜空間クラッシュ防止)
- 現象/エラー:
RuntimeError: shape '[1, 24, 1, 1, 15, 2, 26, 2]' is invalid for input of size 38160 - 根本原因:MiniMax H3の3Dパッチは、幅が16で割り切れ、かつその商が偶数であること(すなわち
width % 32 == 0)を要求する。 - 判定と処置:
- 使用禁止:848×480(848/16=53は奇数であり、パッチ=2で割り切れない。必ずクラッシュする!)
- 強制ロック:標準ワイド画面は一律 832×480 に固定する(832/16=52は偶数、52/2=26で完全に割り切れる!)。
2.2 鉄則二:Windows WDDMドライバ相互排他ロック防御(15倍の速度低下防止)
- 現象:
Windows上で
cudaMallocAsyncまたはマルチストリーム非同期転送(async-offload)を有効にすると、単一サンプリングステップが40秒から600秒に急増する(1セグメントあたり最大70分)。 - 根本原因:WindowsのWDDMドライバモデルは、CUDAストリーム間で大規模な重みを転送する際に、深刻なカーネル相互排他ロック競合(Mutex Lock Contention)を引き起こす。
- 処置(ComfyUI黄金起動パラメータ):
ネイティブキャッシュとシングルストリームスケジューリングを使用することでドライブロックを回避し、1セグメントあたりの生成時間を安定して 350秒(5.8分) に維持する。python <COMFYUI_PATH>/main.py --disable-auto-launch --disable-mmap --disable-cuda-malloc --disable-async-offload --listen 127.0.0.1 --port 8188
2.3 鉄則三:単一話者発話と沈黙指示の組み立て(全員の口パクを排除)
[Subject 1]と[Action 1]を構築する際、分離して組み立てることを強制する:
[Subject 1]:Primary speaker: [SpeakerName], alongside [ListenerName] (silent listener).[Action 1]コアプリミティブ:Only [SpeakerName] is actively speaking with natural, synchronized Mandarin lip movement, [Action]. Crucial requirement: [ListenerName] remains strictly silent with lips tightly sealed and mouth completely closed, neither speaking nor making any mouth motions, showing a tense glare. In the final 1.2 seconds, all characters firmly close their mouths, ending on a tense silent glare.
3. ハードコアSOP:VRAM断片化防止とブレークポイント再開保護
- セグメント間のVRAM解放:
各セグメントのレンダリング後、ComfyUIの
/freeエンドポイントを呼び出す必要がある:PyTorchの中間3D潜空間テンソルキャッシュをクリアし、長期間の連続生産によるOOMの蓄積を防止する。payload = {"unload_models": False, "free_memory": True} - ブレークポイント再開時の重複レンダリング防止:
segments/{seg_id}.mp4の存在を確認し、ファイルが既に存在し、かつサイズが100KBを超える場合、直接[再利用]を出力してスキップし、秒単位のブレークポイント再開をサポートする。
4. 専用ツールスクリプト
- H3 実行グラフアセンブリとスケジューリングエンジン:
python scripts/h3_render_orchestrator.py --plan plan.json --server 127.0.0.1:8188