VACE Stitcher Options
Don't touch it until you need it
- options
If you've ever sat through a five-second VACE generation and thought "I wish this could just be a node," the VACE Stitcher in ComfyUI-FBnodes is that wish granted. And this node, VACE Stitcher Options, is what you plug into it when the defaults aren't doing it for you. It's a pure parameter-override node - it loads nothing, renders nothing, and exists only to hand a bundle of settings to the Stitcher's options input.
It's optional: leave the options socket unconnected and the Stitcher runs on sensible defaults. This node is for the moments you need to control context frames, steps, crossfade, or loop-back - which, once you start stitching real footage, is most of the time.
What the Stitcher is doing under the hood
VACE Stitcher generates AI transitions between clips you feed it - the Wan answer to "chain clips into a longer video." It uses VACE (Alibaba's video-to-video/extension framework for Wan) with two-stage sampling: a high-noise pass handles motion and composition, then a low-noise model refines detail. That's exactly how Wan 2.2 itself works, and it's why this node has two step counts. It's slow - VACE 14B is famously 15-40 minutes a shot on a 4090 - but it's the open path to smooth joins instead of hard cuts. Stitcher caches each transition as a lossless .latent file, so re-runs skip pairs you already generated. That's a feature until you change a setting and wonder why nothing changed; see troubleshooting below.
The inputs that matter
Every field in this node is technically "required," but the defaults are sane and you'll adjust maybe a third of them. The ones a beginner actually sets:
context_frames(default 8) - reference frames from each clip edge that VACE keeps unchanged. This is your anchor; too few and transitions drift from the source clips, too many and the transition has less room to move.replace_frames(default 8) - frames regenerated at each edge for blending. This is the actual morph region.new_frames(default 0) - brand-new transition frames generated between clips. 0 means the transition is built from regenerating clip edges; bump it up to let the model invent connective footage.steps_highandsteps_low(default 4 each) - sampling steps for the two stages. This is where speed lives. 4/4 is fast-ish; dropping to 2/2 with a distilled Wan 2.2 LoRA is the standard speed move, at the cost of quality.cfg(default 1.0) - classifier-free guidance. VACE is flow-matching, so 1.0 is the right neighborhood. Push it up only if you're fighting prompt adherence.seed- worth pointing out that without an Options node connected, the Stitcher uses a random seed every run. Connect this node and the seed is yours to control.seamless_loop- generates a transition from the last clip back to the first, which is how you get a true loop out of a stitch job.decode_batch_size(default 160) - frames per VAE decode batch. Lower it if you're hitting memory limits on long clips; slower but gentler on VRAM.
sampler_name (default euler) and scheduler (default simple) are the usual ComfyUI dropdowns; the defaults are what the reference workflow used. crossfade (on) blends over context_frames, and color_match (off) matches transition colors to the source clips via the MKL method - flip that on when your clips were shot under different lighting.
Output
One output: options (type VACE_OPTIONS). It wires into the VACE Stitcher node's options input. That's the entire job.
Installing it
This node ships in ComfyUI-FBnodes, a grab-bag pack by FranckyB (also behind ComfyUI-Prompt-Manager). In ComfyUI Manager, search "ComfyUI-FBnodes". Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/FranckyB/ComfyUI-FBnodes.git
pip install -r ComfyUI-FBnodes/requirements.txt
The real requirements are av (PyAV) and color-matcher - the latter is why color_match works. The bigger install is the models: you need both Wan 2.2 VACE models, high-noise and low-noise, either bf16/fp8 from Comfy-Org/Wan_2.2_ComfyUI_Repackaged or GGUF from QuantStack/Wan2.2-VACE-Fun-A14B-GGUF, into models/diffusion_models/ (or models/unet for GGUF). Those multi-gigabyte downloads are the real cost of using this node.
Troubleshooting
- "Size of tensor a must match size of tensor b" - your clips aren't the same resolution; the Stitcher needs uniform, 32-aligned clips (the changelog fixed a failure when size wasn't divisible by 32).
- Transitions not regenerating - cached
.latentfiles skip already-generated pairs, so a changed parameter won't retrigger them. Use the Stitcher's delete button to clear the cache. - Nothing changed after connecting Options - check the seed: coming from the default random-seed setup, the first fixed-seed run looks identical until you rerun.
The honest verdict: this is a "when you need it" node, and keeping it separate from the Stitcher's 15 sliders is the right design. Wire it in when you're tuning a transition, leave it off when the defaults work.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| context_frames | INT | 84–40 | Reference frames from each clip edge used as VACE context (kept unchanged). |
| replace_frames | INT | 80–40 | Frames to regenerate at each clip edge for seamless blending. |
| new_frames | INT | 00–40 | Brand new transition frames to generate between clips. |
| steps_high | INT | 41–20 | Sampling steps for high-noise stage. |
| steps_low | INT | 41–20 | Sampling steps for low-noise stage. |
| cfg | FLOAT | 1.00–10 | Classifier-free guidance scale. |
| sampler_name | COMBO | euler | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| scheduler | COMBO | simple | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 |
| seed | INT | 00–18446744073709550000 | — |
| seamless_loop | BOOLEAN | false | Generate a transition from last clip back to first clip. |
| vace_strength | FLOAT | 1.000–10 | VACE conditioning strength. |
| crossfade | BOOLEAN | true | Crossfade over context_frames between original clips and VACE transitions. |
| color_match | BOOLEAN | false | Color match VACE transitions to original clips using MKL method. |
| decode_batch_size | INT | 1601–640 | Frames per VAE decode batch. Lower = less memory, slower. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| options | VACE_OPTIONS | — |