Custom Refine Option
Dial in exactly how VACE repairs its own long-video seams
- custom_refine_list
Multi-round VACE extension has a known disease: each round feeds on the last, and the error accumulates until the video goes oversaturated, color-shifted and blurry. The SuperUltimate VACE Long Video nodes fight that by "refining" the transition frames - running a small corrective pass on them before the next round samples. This node is where you get your hands on that corrective pass, one frame at a time.
You'll only reach for it when the default behavior isn't cutting it. The default refine is a single refine_init strength on the VACEPromptCombine node; this node replaces that with per-frame, per-effect lists. If your long video looks fine, you don't need it. If the seams look subtly wrong, this is the tuning panel.
How it works
Every input is a comma-separated string of floats, one value per crossfade frame in order. The long-video code reads them left to right for the transition frames, and if your list is shorter than the transition, the last value is reused for the rest - so a single value is a valid (constant) list. The effects, and what the code actually does:
whiten_list- blends each frame toward white. Kills color cast at the seam.saturation_list- desaturates toward grayscale. This is the big one for the oversaturation spiral; values below ~1.0 pull color back.blur_list- Gaussian blur radius. Softens the transition and hides hard edges.contour_list- applies a contour/edge mask, keeping edges crisp while the flat areas get adjusted.mask_value_list- the mask strength applied to the refined transition frames (how hard the correction is allowed to bite).latent_strength_list- scales the control-latent strength per slice (note theinit_crossfade_frame // 4cadence this list runs on - it's per latent chunk, not per frame).colormatch_strength_list- per-frame color matching against the previous round's last frame, for fixing brightness/color jumps directly.
Output is custom_refine_list (REFINELIST), which you plug into VACEPromptCombine's custom_refine. When connected, it overrides that node's refine_init.
Working with it
Defaults are 0.2, 0.2, 0.2 whiten, 0.8, 0.8, 0.8 saturation, zeroes elsewhere - a mild whitening-plus-desaturation that's the pack's idea of a safe seam repair. Move up in small steps: the author's own caveat is that too much refinement makes the transition frames' color or brightness visibly wrong, which is a different, worse artifact than the one you're fixing.
Before you commit to a long render, preview each effect on a single frame with the RefineTest node - it applies the identical whiten/blur/saturation/contour operations to one image so you can see exactly what your list values will do. That pairing (tune here, preview there) is the fast loop.
Install
It's one node in the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/bbaudio-2025/ComfyUI-SuperUltimateVaceTools
Restart ComfyUI (or search "SuperUltimateVaceTools" in Manager). No extra dependencies; this node is pure PIL image math.
Gotchas
- The lists are strings, and the parser splits on commas and drops anything that isn't a number.
0.2, 0.2is fine; trailing commas or stray spaces are tolerated; a typo that isn't a float silently disappears and the fallback default kicks in. - Keep list lengths roughly matching your transition length. Longer is harmless (extra values are ignored), shorter means the last value applies to everything after it.
- This node does nothing on its own - it only has meaning once wired into a VACEPromptCombine. A standalone REFINELIST is just a promise.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| whiten_list | STRING | 0.2, 0.2, 0.2 | — |
| saturation_list | STRING | 0.8, 0.8, 0.8 | — |
| blur_list | STRING | 0, 0, 0 | — |
| contour_list | STRING | 0, 0, 0 | — |
| mask_value_list | STRING | 1.0, 1.0, 1.0 | — |
| latent_strength_list | STRING | 1.0 | — |
| colormatch_strength_list | STRING | 0.0, 0.0, 0.0 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| custom_refine_list | REFINELIST | — |