Home Creators Posts Import Register Favorites Logout

Videos

  • stage2_00004-audio_slp.mp4
  • stage2_00006_slp.mp4
  • stage2_00007_slp.mp4
  • stage2_00001-audio_slp.mp4

Downloads

Content

Hey everyone!

If you watched the MiniMax H3 Latent Upscale video https://youtu.be/eUhIsMHfmsA , you saw the concept — generate at 0.6 or 0.7 megapixels, then let the H3 model itself re-sample the latent up to 1080p in a second pass. The public post has the base workflow. This one has all three production versions I actually tested, covering text/image-to-video, reference-to-video, and video-to-video object swap, all wired with the turbo 4-step LoRAs and my enhanced fork of the upscaler node.

Public Post: https://www.patreon.com/aifuturetech/posts/minimax-h3-in-167653244

WHAT'S INCLUDED

----------------------------------------

1. Turbo Text + Image to Video + Latent Upscale

56 nodes. This is the one from the public post, upgraded. It runs the MiniMax H3 FL2VA checkpoint (minimax_h3_fl2va_int8_convrot.safetensors) with the 4-step turbo LoRA for the first pass at 0.6 megapixels portrait 9:16, then feeds the latent into the MMH3 latent upscale pipeline for the second pass.

Pipeline:

- First pass: FL2VA checkpoint + minimax_h3_fl2v_turbo_4step_v1.1_768p_comfyui_bf16.safetensors at strength 0.7 → generates the base video at low resolution, 73 frames, 24 fps, 10 seconds

- Realism LoRA: h3-realism-people-t2v-i2v-r2v (r34l1sm) at strength 1, loaded through the Power Lora Loader and switched ON — this one cleans up people and skin a lot

- Second pass: MMH3LatentUpscaleWithModelParams with minimax_h3_latent_upscaler_3d_bf16.safetensors, target 1280x704, running in fp32 on CUDA, keep_models_resident set to True

- Second-pass conditioning: MiniMaxH3ImageToVideo node with the prompt "segment video which takes <Picture 1> as reference, clear and sharp details" at 1344x768, 73 frames — remember to sync the width and height here with your upscale target

- Split params: spatial split tiles 864x480 with 128 overlap, temporal split 85 frames with 17 overlap and 0.999 fade — both active

- VAE decode: video VAE fp16 + audio VAE fp32, audio passes through untouched

As shipped, the two image loaders and their resize nodes are disabled, so it runs text-to-video. For image-to-video, enable the loaders and drop your first frame (or first + last frame, since the checkpoint is FL2VA) into them. That's it, same pipeline.

2. Turbo Reference-to-Video + Latent Upscale

63 nodes. This is the workflow behind the Tekken and Mortal Kombat style fight demos in the video. It uses the MiniMax H3 Ref2VA checkpoint (minimax_h3_ref2va_int8_convrot.safetensors), so you can feed character sheets, style references, even audio and video references, and generate 15-second clips.

Pipeline:

- First pass: Ref2VA checkpoint + minimax_h3_ref2v_turbo_4step_v0.1_comfyui_bf16.safetensors at strength 1 → 15 seconds at 24 fps, first-pass resolution set on the ResolutionSelector at 2 megapixels 16:9

- Realism LoRA (r34l1sm) at strength 1

- Second pass: same MMH3 latent upscale chain, but running the upscaler in bf16 this time, keep_models_resident True

- Spatial + temporal split params both active with the same settings as workflow 1

One honest note: action scenes in R2V are still risky. The teleport guy and the second fight attempt in the video came out okay, but the first generation was a fail. Characters holding stances and simple moves work best right now.

3. Turbo V2V Object Swap + Latent Upscale

59 nodes. This one swaps a person or object inside an existing video. Load your source video, load the replacement image, and the Ref2VA model re-renders the footage with the new subject while keeping the original motion.

Pipeline:

- Source: video loader for the clip you want to modify + image loader for the replacement subject (in my test, the swap-in image was a portrait photo of a young woman)

- First pass: Ref2VA checkpoint + minimax_h3_ref2v_turbo_4step_v0.1_comfyui_bf16.safetensors at strength 1, realism LoRA at strength 0.8 (a touch lower than the R2V workflow, that worked better for keeping the swap natural), 5 seconds at 24 fps, first pass at 0.7 megapixels 16:9

- Second pass: MMH3 latent upscale chain, bf16, keep_models_resident True, stage-2 ResolutionSelector at 2 megapixels

- Spatial and temporal split nodes are disabled in this file — a 5-second clip fits in one chunk, so splitting is not needed. Enable them if you feed longer footage.

WHAT YOU NEED

----------------------------------------

Model files — most MiniMax H3 files for ComfyUI live in one repo:

https://huggingface.co/Comfy-Org/MiniMax-H3

Into models/minimax-h3/:

- minimax_h3_fl2va_int8_convrot.safetensors (workflows 1)

- minimax_h3_ref2va_int8_convrot.safetensors (workflows 2 and 3)

- qwen3vl_32b_minimax_h3_int8_convrot.comfy.safetensors (text encoder, all three)

- minimax_h3_video_vae_fp16.safetensors + minimax_h3_audio_vae_fp32.safetensors

- minimax_h3_fl2v_turbo_4step_v1.1_768p_comfyui_bf16.safetensors (turbo LoRA, workflow 1)

- minimax_h3_ref2v_turbo_4step_v0.1_comfyui_bf16.safetensors (turbo LoRA, workflows 2 and 3)

- h3-realism-people-t2v-i2v-r2v (r34l1sm).safetensors (realism LoRA, all three)

Latent upscale model + custom node (the two new things from this video, see refs):

- Latent upscale checkpoints: https://huggingface.co/LBH-123-AI/Minimax_h3_latent_Upscaler

Place minimax_h3_latent_upscaler_3d_bf16.safetensors into models/latent_upscale_models — NOT the upscalers folder, NOT diffusion_models. The node only looks in latent_upscale_models.

- Custom node: https://github.com/benjiyaya/ComfyUI-MinimaxH3-Latent-Upres

This is my fork of the MMH3 Ultimate Upscale node with the enhancements from the video (keep_models_resident flag, bounded model cache, tile progress bar, ComfyUI 0.33.0 crash fix).

GPU requirements:

- 24GB+ VRAM: run with keep_models_resident set to True (as shipped). The upscaler is only 600MB, loading and offloading it every chunk is wasted transfer time.

- 12-16GB VRAM: flip keep_models_resident to False so the upscaler offloads to CPU between chunks. Slower, but it fits.

----------------------------------------

QUICK START

----------------------------------------

1. Install the custom node: clone ComfyUI-MinimaxH3-Latent-Upres into your custom_nodes folder and restart ComfyUI.

2. Download the MiniMax H3 model files from the Comfy-Org repo into models/minimax-h3.

3. Download the latent upscale 3D checkpoint and put it in models/latent_upscale_models.

4. Import the workflow JSON for the mode you want. Check the loaders — nothing should be red.

5. Write your prompt (or load your images/video for R2V and object swap), queue it, and you get two outputs: the low-res first pass and the upscaled second pass. Compare them side by side.

----------------------------------------

TIPS

----------------------------------------

1. keep_models_resident is the whole point of the fork. On my 96GB card the original node ping-pongs the 600MB upscaler between GPU and CPU on every temporal chunk. For long videos that is a lot of wasted transfers. On big cards, keep it resident. On 12-16GB cards, turn it off.

2. 0.6 or 0.7 megapixels for the first pass is the sweet spot I keep landing on. Lower than that and the second pass has too little to work with. Higher and you are paying first-pass compute for detail the upscale pass would add anyway.

3. Sync the second-pass conditioning width and height with your upscale target. If the upscaler outputs 1280x704, the conditioning MiniMaxH3ImageToVideo node should match. Mismatched sizes are the most common silent failure.

4. The upscaler precision widget: workflow 1 runs fp32, workflows 2 and 3 run bf16. If you have the VRAM, FP32 gives you margin. bf16 is fine when memory is tighter — visually I could not call a difference in my tests.

5. Temporal split 85 frames with 17 overlap and 0.999 fade is what keeps long videos seamless between chunks. Keep the frame-0 keyframe anchoring on. For clips shorter than about 5 seconds you can bypass the split nodes entirely, like workflow 3.

6. Press L in your models folder to jump to latent_upscale_models faster. Small thing, saves hunting.

----------------------------------------

COMMON ISSUES

----------------------------------------

"ComfyUI 0.33.0 crashes with a ProgressBar TypeError when I run the upscale node"

→ Fixed in this fork. The base node calls ProgressBar.update_absolute() with a comment argument that the new ComfyUI rejects. My version catches that and falls back to the two-argument form. If you are on the base node, update to this fork.

"I put the upscale checkpoint in my upscalers folder and the node can't find it"

→ Move it to models/latent_upscale_models. The latent upscale model is not a pixel upscaler and the node does not search the upscalers or diffusion_models folders.

"Second pass looks blurry or drifts from the first pass"

→ Check the conditioning size matches the upscale target (tip 3), and check your sigma shift is 12 / 3 like in the workflows. Also make sure the turbo LoRA strength is where it should be: 0.7 for the FL2V turbo in workflow 1, 1.0 for the Ref2V turbo.

"R2V fight scenes come out broken"

→ Action is the weak spot right now, full stop. Simple stances, slow moves, and one clear action per shot work. Fast multi-character combat fails most of the time. I keep testing it anyway because when it lands it lands.

"VRAM spikes during the second pass"

→ Drop the spatial tile size below 864x480, or turn keep_models_resident off. Peak VRAM is bounded to a single tile, so smaller tiles mean a lower ceiling.

----------------------------------------

Questions? Drop them in the comments and I will help you sort it out.

Thanks for supporting the channel. You guys make these deep dives possible.

— Benji

Files

Comments

Rahul Kumar

Thanks Bro 🔥🔥🔥🔥

T

Some errors on a node. MMH3 Spatial Split Params MMH3 Spatial Split Params - grid_cols MMH3 Spatial Split Params - grid_rows Some input values are not available for this node. MMH3 Spatial Split Params - tile_size_mode but this parameters does not exist in the node. Something is missing. Comfyui is at it's lateste version.

Innovate Futures @ Benji

MMH3 Spatial Split Params node, you can try select > right click > Refresh node, then reconnect it to the main latent upscale node. thanks