MiniMax H3 OpenVDN Model Composer (Advanced/T8)
Grafting a distilled branch onto your H3 model
- model
- model
- report_json
This is the node that makes OpenVDN real. Everything else in the pack's OpenVDN family - the audit, the execution plan - exists to protect and feed this one operation: take your clean native H3 model, apply the pinned OpenVDN adapters, and attach a large distilled "linear branch" through ComfyUI's ModelPatcher so the whole thing samples as one modified model. Think of it as a very opinionated model-merging node where the merge recipe is fixed, version-pinned, and hash-verified rather than something you freehand with a patcher.
What does OpenVDN buy you? A distilled H3. The upstream project (Apache-2.0 math, adapted here to ComfyUI's fused-QKV H3 and PackedLayout - it never imports Diffusers) trains a hybrid-attention branch and adapters that let H3 sample in 8 function evaluations instead of the usual 20–50-step slog. On a 33B omni model that's the difference between a long render and a short one. That's the whole point of the pack's "10-speed" workflows: OpenVDN_DMD8_*_Advanced.json files named after this 8-NFE route.
How it works
It starts from a clean, native H3 MODEL - the one you loaded yourself, not something it downloaded. Then, in order:
- It clones the model so your original stays untouched.
- It applies the pinned OpenVDN adapters. Which ones depends on
stage:stage_dmd_8nfeapplies both thedefaultandturboadapters (that's the distilled 8-step route), whilestage_b_50nfeapplies onlydefault(the 50-step "Stage B" quality route). - It attaches the 50-layer VDN branch - the ~4.28GB
linear_branch/model.safetensors- through Comfy ModelPatcher. - It records a provenance attachment on the output model so the Execution Plan node can read back exactly what was composed.
It also validates which conditioning layouts it can handle: native H3 text, first/last-frame, image/video/audio reference, and hybrid all work; competing attention owners don't, and it refuses to compose over one. And because H3 bases come in two flavors - the full 2688-wide AdaLN base and the curve-pruned INT8 base - the composer reads the adaln_t_table in your base and selects the matching curve-projected turbo adapter by content SHA. You do not add a separate LoRA node for the turbo adapter; it's automatic, or it errors before sampling if your pruned base's curve table isn't one it knows.
The inputs
model- the clean native H3 MODEL. Must be H3; this isn't a generic model patcher.vdn_root- where the branch lives (defaultOpenVDN/vdn-minimax-h3, scanned under your diffusion_models folder).stage-stage_dmd_8nfe(8-step, default) orstage_b_50nfe(50-step quality route).verify_hashes- keep it true.allow_structural_base- required only for the local INT8/ConvRot H3 base; it records an explicit "unproven-base exception" rather than pretending the base is the exact upstream revision.
Outputs are the composed model and a report_json. Wire the composed model into the OpenVDN Execution Plan, which turns it into sampler + sigmas for your KSampler.
Installing and running it
Install the pack - ComfyUI Manager "MiniMax H3 Audio T8" or git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8 into custom_nodes/ - restart fully. Then get the branch package from the install-ready mirror:
hf auth login
hf download t8star/Vdn-Minimax-H3-Comfy --local-dir ComfyUI/models
Everything lands in the right models/ subfolders, including models/diffusion_models/OpenVDN/vdn-minimax-h3/. No pip extras; the pack's requirements are deliberately empty so installing can't replace ComfyUI's Torch stack.
Gotchas
- Don't stack anything on top. OpenVDN owns the model branch and adapters. Adding SLA, VSA, Sol-Attn, or BlockCache isn't "extra speed," it's a guaranteed conflict the composer (and the audit) will reject.
- The license is real. The branch code is Apache-2.0, but the H3 weights it runs on are under the MiniMax H3 Community License, which excludes the US, EU, UK and South Korea. Check your region before pulling the package.
- 16GB cards: one task at a time. The pack validated these routes on an RTX 4060 Ti 16GB with only ~0.5–0.9GB of headroom left at the worst points. Run one H3 job, not a queue of them.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| vdn_root | COMBO | OpenVDN/vdn-minimax-h3 | 1 options: OpenVDN/vdn-minimax-h3 |
| stage | COMBO | stage_dmd_8nfe | 2 options: stage_dmd_8nfe, stage_b_50nfe |
| verify_hashes | BOOLEAN | true | — |
| allow_structural_base | BOOLEAN | false | Required for the current local INT8/ConvRot H3 base. This records an explicit unproven-base exception; it does not relabel it exact. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| report_json | STRING | — |