## What this does
A 2-stage ComfyUI workflow for MiniMax H3 Reference-to-Video that cuts generation time while keeping quality high.
- Stage 1 (Low-Res Draft): generates the video at low resolution using only the first 4 sigmas of an 8-step Euler schedule — a fast, cheap draft pass.
- Latent Upscale: the draft's latent is upscaled directly in latent space (no pixel decode) to your target resolution using the MiniMax H3 3D Latent Upscaler.
- Stage 2 (High-Res Refine): the upscaled latent is refined with just 3 lightweight sigma steps, using the same fixed seed as Stage 1 for consistency between passes.
- Audio is generated in Stage 1 and rejoined with the upscaled video latent before final decode.
Result: video quality close to a full high-resolution single-pass generation, at a fraction of the compute/time cost.
Description
FAQ
Comments (7)
Thank you! This is fantastic! I tweaked it a bit based on my previous res4lyf usage with WAN knowledge and I just love the efficiency gain here!
This one works well and unlike some of the other H3 LAtent upscale work flows this does not have that upscaled waxy look. The only thing I have noticed is sometimes it does not put shadows in where I would expect them making some of the characters look compositied into the scene instead of being really there but adding a new seed can fix that.
Honestly, this is the best workflow I've seen so far for Minimax H3 in terms of video image quality and generation speed. I just added a Power LoRA Loader, RTX Video Super Resolution, and a Video Combine node, as shown in the image. I posted two videos I generated using your workflow.
this workflow don't work at first, Nodes are not completed connected
this workflow is not optimezed for 4070 ti 16GB Vram, 32 ram
Fixes
PASS 1 Guider (BasicGuider): missing MODEL input — reconnected from ModelAttentionBackend.
MinimaxH3LatentUpscaler3D: widget values were shifted out of position because the node gained two new inputs (enable_temporal_chunking, force_unload) after the workflow was saved. ComfyUI reassigned the old values positionally, leaving device = "fp16" — an invalid value for a combo that only accepts cuda/rocm/cpu. Fixed: device = cuda, precision = fp16, and set both new toggles to true.
Optimizations
Latent bug that hadn't surfaced yet: the upscaler had fixed target dimensions of 1280×704 (landscape) while the conditioning is built at 3:4 (portrait). It would have failed on a shape mismatch as soon as it fit in VRAM. Converted mode.width / mode.height into inputs linked to the PASS 2 ResolutionSelector, so they can no longer drift apart.
force_unload = true — unloads the upscaler before the PASS 2 sampler starts, which is exactly where the OOM was happening.
Aligned the resolution chain: PASS 1 × 2 = PASS 2 = the LoRA's native 768p training resolution — no odd upscale factors.
Result on an RTX 4060 Ti 16GB: previously OOM'd at 362 frames @ 1.5 MP (1056×1408); now runs 243 frames @ 1.0 MP (864×1152) in ~13 min with 8 GB VRAM left over.
I want also add that the workflow work only with Eros model and after some testing, is working beautifull