Nodes/VRGameDevGirl Video Enhancement Nodes/MiniMax H3 Replace with Upscaled Video Latent
ComfyUI Node

MiniMax H3 Replace with Upscaled Video Latent

Splice the big video back into the latent without losing the audio

By vrgamegirl19·Created about a year ago·Updated about 7 hours ago· 718
MiniMax H3 Replace with Upscaled Video Latent
  • original_av_latent
  • upscaled_video_latent
  • upscaled_av_latent

H3 latents aren't just video. They're joint audio-video latents - a single tensor carrying both the picture and the sound, which is exactly why H3 can generate 15 seconds of video with native stereo. And that's the trap hidden in the upscaling workflow: if you run the learned latent upscaler on the whole thing or decode a video-only latent, you can quietly leave the audio half behind. VRGDG MiniMax H3 Replace with Upscaled Video Latent is the splice node that puts the two back together - original AV latent in, upscaled video latent in, complete upscaled AV latent out.

How it works

Two inputs, both LATENTs: original_av_latent and upscaled_video_latent. The node takes the video portion from the upscaled latent and the audio portion from the original joint latent and combines them into a single upscaled_av_latent output. That's the whole job, and it's precisely the job that has no stock ComfyUI equivalent - the standard latent nodes don't know that H3's latent is a compound structure, so they can't reassemble it correctly.

It's designed to sit at the end of the pack's H3 high-resolution chain: sample at a modest resolution, run the VRGDG MiniMax H3 Learned Latent Upscale on the video latent, then use this node to recombine with the original AV latent before decoding. Decode the upscaled video latent on its own and you get high-res video with no audio track; decode the original and you get your low-res render. This node is what makes the whole learned-upscale path output a complete clip.

Order matters for what you feed it: the upscaled_video_latent must be the video latent after upscaling, and original_av_latent the joint latent from before, because that's where the untouched audio lives. If you feed a non-upscaled latent into the video input, you get a reassembled latent that's exactly as small as you started - not an error, just no upscale.

The inputs that matter

  • original_av_latent - the joint AV latent from the H3 reference/i2v stage (holds the audio you want to keep).
  • upscaled_video_latent - the enlarged video latent from the Learned Latent Upscale node.

The single output, upscaled_av_latent, goes straight to the decoder.

Install

Pack-wide: ComfyUI Manager → search vrgamedev (or https://github.com/vrgamegirl19/comfyui-vrgamedevgirl), restart, hard-refresh. Manual: git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl into custom_nodes, then pip install -r requirements.txt; on Windows portable, pip install Cython scikit-build-core first.

Troubleshooting

The two failure modes are both silent. If the final video is high-res but silent, you decoded the upscaled video latent alone and never recombined - route it through this node first. If the final video is normal-res, you recombined but the "upscaled" input wasn't actually upscaled, so the splice reassembled the original size. And keep temporal alignment in mind: the two latents must cover the same clip length, or you're splicing mismatched timelines and the audio will drift off the picture.

CategoryVRGDG/Video/MiniMax H3

Inputs (2)

NameTypeDefaultDescription
original_av_latentLATENT
upscaled_video_latentLATENT

Outputs (1)

NameTypeDescription
upscaled_av_latentLATENT