Fast FLF Loop Workflow — MiniMax H3
A speed-optimized First & Last Frame workflow for MiniMax H3, built for generating seamless looping video clips — feed it the same image as both the first and last frame and it renders a clip that loops cleanly back to its start. Ideal for VJ loops, background visuals, motion design, and anything else that needs to run on repeat without a visible seam.
This version adds a speed stack on top of the standard H3 FLF setup: Sage Attention (KJNodes) + EasyCache, with steps reduced from 20 to 15 by default. Everything is bypassable per-node so you can A/B test speed against quality yourself.
Tested setup
Tested on an RTX 5080 (16GB VRAM) with 64GB system RAM. All benchmark numbers below come from that machine — treat them as a reference point, not a guarantee. If you're running a different GPU or amount of RAM, your times will vary, sometimes significantly: less VRAM will push more of the model into offloading (slower), less system RAM can bottleneck the dynamic VRAM staging this workflow relies on, and older GPU architectures won't get the same benefit from Sage Attention's fused kernels.
Where this should run: any RTX 40-series or 50-series (Ada/Blackwell) card with 16GB+ VRAM should comfortably handle this at 1.0 megapixel. 30-series and older cards will still work, but Sage Attention falls back to older kernels without the same speedup — expect noticeably longer render times. Under ~12GB VRAM, stick closer to the 0.4 megapixel preview resolution.

A note on that 337s vs 234s gap: your first generation after starting ComfyUI (or after loading a different model) will usually take longer, since models are still being staged into VRAM. Once everything's loaded, a second render back-to-back on the same models will be noticeably faster — that's where the 234s number comes from. This only holds if you queue another generation right after, without switching models or doing anything else that forces a reload in between. Keep that in mind when comparing your own numbers to the ones above.
On EasyCache quality: at the default threshold, EasyCache skips roughly half the sampling steps by reusing near-identical intermediate results. That's a big speedup but not free — abstract/geometric loops hide it well, detail-heavy or character content less so. Recommended: EasyCache on for previews and iteration, bypassed (or threshold lowered to ~0.1) for final renders.
Example generations
Two sample outputs included, both using the cobra reference image bundled with the workflow (matching prompt is preloaded in the first/last frame conditioning):
1.0 megapixel render
0.4 megapixel render
Load the cobra image into both the first-frame and last-frame LoadImage nodes to reproduce the examples, or swap in your own matching first/last frame pair.
Description
FAQ
Comments (4)
The only issue I've had is that when I use the same starting and ending image to loop, the character always comes to a stop for the last almost full second.
I guess I could manually edit those frames out, but that would be time consuming and annoying. Is there any other way to have full motion all the way through the loop? Or do you have any idea if I'm doing something wrong?
noticed that sometimes with prompting it does not always perfectly loops. or that the image slightly expands during the motion. havnt been able to figure that out yet.
I'm having the SAME EXACT issue you're describing... have you perhaps found a solution for this? :)
i dont have this... but i was using his prompt as reference "First hit at 0.0 seconds." but added simply behind it "end at 4.0 seconds." (the time of the video you want)... havent tryed with longer videos or very much videos tho.

