SuperUltimate VACE Long Video
Turn 5-second VACE clips into a real long video
- model
- clip
- vae
- vace_prompt_list
- vace_control_list
- nag_params
- IMAGE
This is the pack's flagship, and the node the whole thing is named around. Wan VACE's native context tops out around 81 frames - roughly five seconds - and the classic community fix is to chain extension rounds until the quality melts down into oversaturation, color cast and blur. SuperUltimate VACE Long Video does the chaining for you and, the key part, repairs the transition frames between rounds so the degradation doesn't compound. It's the "long video without (obvious) quality downgrade" trick the author announced to r/comfyui in 2025, and it's still the reason people install this pack.
How it works
You don't prompt it directly. You build a chain of VACE Prompt Combine nodes - one per generation round - cascade them into each other, and feed the last one's vace_prompt_list into this node's vace_prompt_list. Each round carries its own prompt, frame count, optional reference image and crossfade settings. The node sums up the total (num_frame - init_crossfade_frame per round), then runs each round as a VACE generation where the first few frames are the tail of the previous round, crossfaded through the transition region.
The anti-degradation magic is the "refine" step: before a new round samples, its initial reference frames get a light corrective pass (whiten, desaturation, blur, contour operations - the same ones you can tune with the Custom Refine Option node). That breaks the error-accumulation spiral that made multi-round VACE look progressively worse. The trade-off, which the author is upfront about: the refined transition frames can have a slightly off color or brightness. Usually unnoticeable; if it bugs you, the Custom Refine Option article is your next read.
Inputs that matter
model- only VACE models (the tooltip says it), plusclipandvae.width/height- generation resolution, defaults 832x480.vace_prompt_list- the round chain from the Prompt Combine nodes.loopback_crossfade- set to a few frames and the last round's end gets blended back into the first round's start. Seamless loop, no extra control images needed.steps,cfg,sampler_name,scheduler,denoise- the usual sampler kit, applied to every round.vace_control_list- optional; feed it from chained VACE Control Image Combine nodes to mix control types (pose, depth, keyframes, lineart) across the video.nag_params- optional, swaps the sampler for the bundled NAG one.
Output is a single IMAGE tensor - the whole stitched video, one batch. Total length is sum(num_frame - init_crossfade_frame), which you can check in advance with the Check Total Frame node.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/bbaudio-2025/ComfyUI-SuperUltimateVaceTools
Restart ComfyUI (or search "SuperUltimateVaceTools" in Manager). No heavy dependencies beyond the usual Wan VACE model files in your ComfyUI models folder.
Troubleshooting
- "loopback_crossfade can not be larger than length of generation" - a round is shorter than your loopback window. Shrink
loopback_crossfadeor give rounds more frames. - Stalls at the end with no output after an update - the author's own fix from the release thread: right-click the node → Fix node (recreate).
- It's slow. The author's 45-second showcase was 9 rounds × 81 frames (689 total frames) and each round is a full VACE gen. On a 4090 that's a long coffee break, at minimum. Don't build a 30-round monster on your first try.
- Control errors about identical or overlapping frame positions - that's the control-list validator doing its job; see the VACE Control Image Combine article.
One real-world note from the launch thread: people found it "simpler than your standard VACE workflow" - the chaining is all in the nodes, no manual latent slicing. The catch is the same as always with VACE: character consistency drifts across rounds, and the refine step can't fully fix identity. Keep prompts per-round consistent if you want the person to stay the same person.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | Only VACE models are supported | |
| clip | CLIP | The CLIP model used for encoding the text. | |
| vae | VAE | — | |
| width | INT | 83216–16384 | — |
| height | INT | 48016–16384 | — |
| loopback_crossfade | INT | 00–10000 | — |
| vace_prompt_list | PROMPTLIST | — | |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 201–10000 | — |
| cfg | FLOAT | 8.00–100 | — |
| sampler_name | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| denoise | FLOAT | 1.000–1 | — |
| vace_control_listopt | CONTROLIMAGELIST | — | |
| nag_paramsopt | NAGParamtersSetting | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | Generated Video |