v1.2 - Minor Update 2025-Oct-13
Sort the input directory list.
v1.1 - Minor Update 2025-Oct-11
Preserve input framerate in workflow VACE outputs. Previously, all output was forced to 16fps. Note, you must manually set the framerate in the Join & Save output.
Changed default model/sampler to Wan 2.2 Fun VACE fp8/KSampler. GGUF, MoE, 2.1 are still available in the bypassed subgraphs.
This workflow uses Wan VACE (Wan 2.2 Fun VACE or Wan 2.1 VACE, your choice!) to smooth out awkward motion transitions between video clips. If you have noisy frames at the start or end of your clips, this technique can also get rid of those.
I've used this workflow to join first-last frame videos for some time and I thought others might find it useful.
The workflow iterates over any number of video clips in a directory, generating smooth transitions between them by replacing a configurable number of frames at the transition. The frames found just before and just after the transition are used as context for generating the replacement frames. The number of context frames is also configurable. Optionally, the workflow can also join the smoothed clips together. Or you can accomplish this in your favorite video editor.
Detailed usage instructions can be found in the workflow. Please read this carefully. This is not a ready to run workflow. You need to modify it to fit your system. Directions about what to modify are in the instructions.
VACE can sometimes affect the brightness or saturation of the clips it generates. I don't know how to avoid this tendency, I think it's baked into the model, unfortunately. The best mitigations I've found are frame interpolation to 60fps and color correction in post-processing.
I've used native nodes and tried to keep the custom node dependencies to a minimum. The following packages are required. All of them are installable through the Manager.
ComfyUI-KJNodes
ComfyUI-VideoHelperSuite
ComfyUI-mxToolkit
Basic data handling
ComfyUI-GGUF - only needed if you'll be loading GGUF models. If not, you can delete the sampler subgraph that uses GGUF to remove the requirement.
KSampler for Wan 2.2. MoE for ComfyUI - only needed if you plan to use the MoE KSampler. If not, you can delete the MoE sampler subgraph to remove the requirement.
The workflow uses subgraphs, so your ComfyUI needs to be relatively up-to-date.
Model loading and inference is isolated in a subgraph, so It should be easy to modify this workflow for your preferred setup. Just replace the provided sampler subgraph with one that implements your stuff, then plug it into the workflow.
I am happy to answer questions about the workflow. I am less happy to instruct you on the basics of ComfyUI usage.
External Link: https://files.catbox.moe/erx0k4.json
Regarding Framerate
If your input videos are at some higher rate, you'll probably get sub-optimal results. The Wan models are trained at 16 fps, so you'll likely see diminishing returns from VACE with higher framerates. At least, you'll need to increase the number of context and replace frames by whatever factor your framerate is greater than 16 fps.
I suggest forcing your inputs down to 16 fps for processing with this workflow, then re-interpolating back up to your desired framerate.
Models
Since this is kind of an intermediate level workflow, I initially didn't provide any information about what models are required. Anybody who needs a workflow to smooth transitions between a bunch of already-generated video clips probably knows their way around a Wan workflow.
But it has occurred to me that not everybody may know where to get the VACE models or what exactly to do with them. And it may not be common knowledge that VACE is derived from the T2V models, not I2V.
So, here are download links for VACE models. Choose what’s right for your system and use case. You already know that you only need one set of VACE files from this list, so I won’t insult your intelligence by mentioning that.
Wan 2.2 Fun VACE
Wan 2.1 VACE
Kijai’s extracted Fun Vace 2.2 modules, for loading along with standard T2V models. Native use examples here.
And then of course you’ll need the usual VAE and text encoder models, and maybe a lightning lora. Use a T2V lora because VACE is trained from the Wan T2V models.
Description
v1.2:
sort the input directory list