MiniMax H3 Local MV In-Node Renderer / 全本地MV内循环生成 (Advanced EXP/T8)
The renderer that plays every scene in order
- model
- clip
- video_vae
- audio_vae
- reference_image
- full_song
- mv_prompt_plan
- video
- video_path
- manifest_path
- completed_scenes
- status
- report_json
Normally a multi-scene MV in ComfyUI means babysitting it: run scene one, review, queue scene two, hope the node graph doesn't drift, and hand-stitch the videos with ffmpeg afterward. This node is the "stop babysitting me" answer. It takes the scene plan and per-scene prompts produced upstream, then generates every Ref2VA scene serially through the local MiniMax H3 model you connected, resumes anything it already finished, assembles the clips with bounded memory, and muxes your original song onto the final video exactly once. All from one queue.
Three design facts make it worth understanding before you queue anything long:
Three design facts
It is fully local and serial. The model, clip (the H3 Qwen3-VL text encoder), video_vae and audio_vae are all wired from your local graph. Scenes run one at a time through that single model - no concurrent generation, no HTTP /prompt queue submission, no remote H3, LLM, TTS or video API. Serial is slower but it's what makes memory bounded and resume possible.
It resumes like a download manager. Each run is bound to a chain_id (default my_h3_local_mv) plus a contract - the prompt plan, reference image, model_id, seed, geometry, timeline and sampling summary are hashed together. Accepted scenes are saved atomically with a manifest. Interrupt a 20-scene render at scene 14 and re-run with the same chain_id and settings: it verifies the contract hasn't changed, skips the accepted scenes, and finishes the rest. Change anything material and it refuses rather than silently mixing old and new footage. resume_existing (default true) is the switch for that behavior; leave it on.
Your generated audio is a placeholder. Each scene's video is conditioned on the song via <Audio 1>, but the segment audio is never your final soundtrack - the node muxes the complete original full_song once over the assembled video. That's deliberate: no per-segment AAC seams, and the master audio stays bit-perfect. What you get out is video timed to the music with the real song on top.
Inputs and outputs that matter
The inputs that matter beyond the model wiring: reference_image (your performer identity reference), full_song, mv_prompt_plan (from the Ref2VA Prompt Compiler), chain_id, base_seed, width/height (default 1024×768, must be multiples of 32), and steps (default 8) with the dual-clock sampler_name/scheduler and shift_video/shift_audio (defaults 6/3) hidden under advanced. crf and bit_depth control the encode. model_id is audit-only metadata - it's written to the report, never used to block a file.
Outputs: video (with in-canvas preview), video_path, manifest_path, completed_scenes (how many finished - not a quality verdict, just mechanical acceptance), status, and a report_json audit string.
V1 vs the Vocal Lock route
Reality check on which renderer to use. This is the V1 renderer: it conditions each scene on the full song mix. It's the simplest to stand up and fine for prototyping a full-song MV, but the README is clear that the Vocal Lock V2/V3 chain - isolated vocal driving the mouth, official recipe - is the accepted route for verified lip-sync. If the whole point is checked mouth movement on clean vocals, go V2 or V3. If you want a fast full-song draft where the performance just needs to move with the music, this is your node. Both routes share the resume/mux architecture.
Installing it
Install: ComfyUI Manager search MiniMax H3 Audio T8, or clone into custom_nodes (git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git) and restart - after updating ComfyUI core itself, since the pack relies on the recent native-H3 and weight-adapter APIs. Run the dated Ref2VA workflow under examples/workflows/24-mv-lipsync; and remember these local H3 weights are licensed territory-restricted (excluded in the US, EU, UK and South Korea).
Inputs (21)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | 本地 MiniMax H3 MODEL。 | |
| clip | CLIP | 本地 MiniMax H3 Qwen3-VL CLIP。 | |
| video_vae | VAE | — | |
| audio_vae | VAE | — | |
| reference_image | IMAGE | 歌手/人物身份参考图。 | |
| full_song | AUDIO | 驱动表演并最终一次性混入成片的原曲。 | |
| mv_prompt_plan | H3_T8_MV_PROMPT_PLAN | — | |
| chain_id | STRING | my_h3_local_mv | — |
| width | INT | 102432–16384 | 官方 Ref2V Turbo v0.1 验证尺寸;需要其他画幅时再显式修改。 |
| height | INT | 76832–16384 | — |
| base_seed | INT | 1234567890–18446744073709550000 | — |
| steps | INT | 81–1000 | — |
| shift_video | FLOAT | 6.000.01–100 | — |
| shift_audio | FLOAT | 3.000.01–100 | — |
| sampler_name | COMBO | dual_clock_euler | 45 options: dual_clock_euler, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 |
| scheduler | COMBO | native_flow | 11 options: native_flow, beta57, simple, sgm_uniform, karras, exponential, +5 |
| resume_existing | BOOLEAN | true | — |
| filename_prefix | STRING | H3_Local_MV | — |
| bit_depth | COMBO | 8 | 2 options: 8, 10 |
| crf | INT | 180–51 | — |
| model_id | STRING | user-selected-local-h3 | 只写入审计报告,不校验文件名、大小或哈希。 |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_path | STRING | — |
| manifest_path | STRING | — |
| completed_scenes | INT | — |
| status | STRING | — |
| report_json | STRING | — |