Seamless looping video and audio from MiniMax H3, in a single generation. No first/last frame, no anchor clip, no second pass, no crossfade.
Every showcase clip is one 8-step turbo render from a text prompt, seed 1000, no rerolls. Prompts are in each video's details.
How it works
The MiniMax H3 Loop node wraps the end of the latent around to its start while sampling. The model denoises the loop point with real context on both sides, the same as any other moment in the video. There is nothing to stitch afterwards, so the loop point carries no blend, fade or ghosting.
Audio loops too.
views2 (default) samples a second, half-rotated view and takes the audio around the loop point from it, so the sound stays clean across the join.Loop Decode decodes with wrapped context and returns exactly one loop of frames and audio.
Loop Interpolate runs FILM or RIFE across the whole loop, including last frame to first, for a seamless 48 fps version.
Loop Control Video fits your own seamless loop (a 3D depth pass, for example) to the Fun ControlNet, so H3 restyles exact repeating geometry or camera travel.
Works with text to video, a reference image (
<Picture 1>), the turbo LoRAs, FastH3 and the Fun ControlNet.
Workflows in the zip
MiniMax-H3-Loop: ref2va, 25 steps, about 21 min per loop. The smoothest on fast motion.
MiniMax-H3-Loop-Turbo-v2: ref2va + turbo LoRA v1.1, 8 steps, about 7 min. Comes close to 25 steps.
MiniMax-H3-Loop-Turbo: ref2va + turbo LoRA v1.0, 8 steps, about 7 min.
MiniMax-H3-Loop-FastH3: FastH3-Omni, 8 steps, about 7 min.
MiniMax-H3-Loop-Control: ref2va + turbo LoRA v1.0 + Fun ControlNet, 8 steps, about 4 min.
Times are per loop on an RTX 4090 at 1280×704 with a 4.25 s loop. Each workflow has a note with lengths, settings and prompting tips.
Install
ComfyUI v0.42.0 or newer.
Install MiniMaxH3-Loop from ComfyUI Manager, or clone it into custom_nodes:
git clone https://github.com/pxl-pshr/ComfyUI-MiniMaxH3-LoopAlso install ComfyUI-Frame-Interpolation for Loop Interpolate. The Control workflow also needs ComfyUI-VideoHelperSuite.
Restart. The workflows also appear in ComfyUI's template browser.
Models
ref2va (all but FastH3): minimax_h3_ref2va_pruned_int8_convrot in diffusion_models
FastH3: fasth3_omniref_8step_pruned_int8_convrot in diffusion_models
Turbo LoRA v1.0: minimax_h3_ref2v_turbo_8step_v1.0 in loras
Turbo LoRA v1.1: minimax_h3_ref2v_turbo_8step_v1.1 in loras
Text encoder: qwen3vl_32b_minimax_h3_nvfp4_awq in text_encoders
Fun ControlNet (Control only): minimax_h3_fun_controlnet_union_pruned_int8_convrot in model_patches
Other precisions are in the same Hugging Face repos.
Length
Use one of these lengths for an exact audio loop: 107 (4.25 s), 158 (6.4 s), 209 (8.5 s), 260 (10.6 s) or 311 (12.75 s). The loop is the length minus 5 frames.
Getting a clean loop
The node makes sure the join is denoised like the rest of the clip. Whether it looks invisible depends mostly on the prompt: describe a state that keeps going, not a sequence of events.
Start with
Locked-off static camera, no pan, no zoom.One clear subject doing one continuous or cyclic thing: pulsing, rotating, swaying, drifting, breathing.
Nothing that piles up. Puddles, crumbs and spills reset at the loop point, so describe them as already there from the first frame.
No timelines, "then", "finally", or one-off events like a bite or a blink.
Use a reference image (
<Picture 1>) to hold a subject. Pinned first/last frames read as a shot start and can make the loop point jump.Try two or three seeds. The seed decides more than you'd expect.
PROMPTING.md in the zip is the full guide. It also works as instructions for an LLM: give it the file and a rough idea, and it writes a loop-safe prompt.
Links
GitHub, docs and issues: github.com/pxl-pshr/ComfyUI-MiniMaxH3-Loop. License: GPL-3.0.