Video Loop Move (QQ)
Shift a video loop's start point without re-rendering anything
- image
- audio
- image
- audio
Seamless loops are the one thing AnimateDiff used to own that people kept trying to drag into Wan workflows. The classic trick for a perfect loop is to make the last frames flow back into the first ones - but whether the seam actually hides depends a lot on where in the cycle you cut. VideoLoopMove is the cheap fix for exactly that: it moves the last N frames of a video to the front, so you can audition the loop with a different start point in seconds, without re-rendering.
The docstring gives the example: a 100-frame video with num_frames=16 moves the last 16 frames to the beginning, so playback starts at the point where the old seam was. That's the whole mechanism - a pure frame reorder. Inputs are image (your frames) and num_frames (how many to move; default 16). audio is optional: wire an AUDIO in and it comes back reordered in lockstep with the video on the output side (outputs are image and audio). That bit matters - a loop that's perfect visually but audibly pops at the cut is still broken, and this node keeps both aligned.
Why it earns its place
Getting a Wan loop to actually loop is fiddly. The community's answer for a start image that returns seamlessly is usually the "last frame of clip 1 becomes the first frame of clip 2" chaining trick, but that still leaves the decision of where to begin. With this node you generate once, then slide the loop boundary around until the motion at the cut looks natural - grass swaying, water, walking cycles all have a point where cutting is invisible. It's the kind of node that looks trivial and then saves you a 25-minute regeneration on a 5090.
The pairing that works well: generate an extended clip (say 97 frames), then use VideoLoopMove plus a fade or a WanReplaceFirstFrame-style re-anchor to close the loop. Also handy for syncing: if your loop must hit a beat in an audio track, moving the start frame to align the motion cycle with the downbeat is far easier than re-prompting.
Installing it
Ships in siraxe/ComfyUI-WanVideoWrapper_QQ. ComfyUI Manager → search WanVideoWrapper_QQ (or SA-Nodes-QQ), or:
cd ComfyUI/custom_nodes
git clone https://github.com/siraxe/ComfyUI-WanVideoWrapper_QQ.git
Restart ComfyUI. No extra dependencies.
Gotchas
num_frameslarger than the clip will misbehave - keep it well under the frame count.- It moves frames, it doesn't resample. If the moved section changes the clip's effective duration, downstream nodes counting frames will see the new length; that's expected, just account for it.
- Pack note: the repo was renamed to ComfyUI-SA-Nodes-QQ in v1.3.4, and old workflows referencing
wanwrapper_qqcan trigger an unintended install - delete any stalewanwrapper_qqfolder incustom_nodes.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| num_frames | INT | 160–10000 | — |
| audioopt | AUDIO | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| audio | AUDIO | — |