Nodes/comfyui-minimax-h3-audio-T8/MiniMax H3 OpenVDN Execution Plan (Advanced/T8)
ComfyUI Node

MiniMax H3 OpenVDN Execution Plan (Advanced/T8)

The plan node that won't let you misstep

By T8mars·Created about a month ago·Updated a day ago· 1,031
MiniMax H3 OpenVDN Execution Plan (Advanced/T8)
  • model
  • av_latent
  • model
  • sampler
  • sigmas
  • report_json

Distilled models have a nasty habit: they only behave at the step count they were distilled for. Run an 8-step distilled H3 at 20 steps and you don't get "a bit better" - you get wrong video, because the sampling trajectory the distillation baked in doesn't extend. This node exists to make that mistake impossible. You feed it the model the OpenVDN Model Composer produced plus your AV latent, and it hands back a sampler and sigmas with the step count already correct: 8 NFE for the DMD stage, 50 for Stage B. No step-count input exists, on purpose. There's nothing to mis-set.

It's the last piece of the OpenVDN chain: Runtime Audit → Model Composer → this Execution Plan → your KSampler. If you've seen people swear by "H3 in 8 steps," this is the plumbing that makes it a routine, safe operation instead of a dice roll.

How it works

Distilled flow-matching models (the DMD line - distribution matching distillation - is the video descendant of the DMD2 approach the KB's distillation notes cover) need a matching sampler recipe, not just matching steps. So the node reads the sampling contract from the receipt the Composer attached to the model, and builds:

  • the sampler - Euler, the converging flow-matching workhorse, which is the native-H3 default and behaves predictably at few steps
  • the scheduler - native_flow (the H3 dual-clock schedule, not Karras - aggressive sigma reshaping is exactly wrong for straight flow-matching trajectories)
  • the shifts - video 12, audio 3, because H3 is joint audio+video and the two modalities want their denoising effort distributed differently
  • the sigmas - generated from that contract, so the KSampler downstream has nothing left to decide about how many steps "8" means.

If you hand it a model that wasn't composed (no configured receipt), it refuses. The report_json output tells you the exact plan it executed - sampler, scheduler, NFE, sigma count - so a workflow share can prove what settings produced a result.

The inputs and outputs

Minimal, which is the point: model (the OpenVDN-composed MODEL) and av_latent (your joint audio/video latent, straight from H3 conditioning). Outputs are the model, a ready-made sampler, sigmas, and report_json. Wire all three into your standard sampler node and it just runs - correctly.

Installing and running it

Pack install as always:

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8

(or ComfyUI Manager → "MiniMax H3 Audio T8"), restart. Then the OpenVDN weights from the mirror:

hf auth login
hf download t8star/Vdn-Minimax-H3-Comfy --local-dir ComfyUI/models

That puts the branch under models/diffusion_models/OpenVDN/vdn-minimax-h3/ plus the H3 base, text encoder and VAE where ComfyUI expects them. Open the OpenVDN_DMD8_*_Advanced.json workflow in the pack's examples/workflows/10-speed folder - it wires this whole chain correctly, and hand-building it from scratch is how people end up with mismatched contracts.

Gotchas

  • Don't route this around. The whole point is that the step count is derived from the model, not chosen by you. If you're tempted to "add a few steps for quality," you're defeating the distillation - run Stage B (50 NFE) instead if you want the non-distilled quality path.
  • The composed model is the only valid input. Using a raw H3 model here errors out immediately, which is the safety working as designed.
  • Keep other accelerators away from the sampler. You can't "stack" this with SLA/VSA/Sol-Attn/BlockCache - those own the model's attention and break the OpenVDN contract.
  • License and hardware reminders apply - H3 weights are territory-restricted under the MiniMax H3 Community License, and 16GB cards should still run one job at a time.
CategoryT8/MiniMax H3/Performance/Advanced

Inputs (2)

NameTypeDefaultDescription
modelMODEL
av_latentLATENT

Outputs (4)

NameTypeDescription
modelMODEL
samplerSAMPLER
sigmasSIGMAS
report_jsonSTRING