VACE Prompt Combine
The node that turns 'long VACE video' into a list you can actually edit
- model_override
- ref_image
- custom_refine
- previous_prompt
- vace_prompt_list
You don't tell SuperUltimate VACE Long Video what to make directly. You build a chain of these nodes - one per generation round - cascade them, and hand the last one over. VACE Prompt Combine is the round builder, and it's where almost all the actual "directing" happens in this pack: the prompts, the lengths, the reference images, the transition behavior. If you're confused about the long-video workflow, you're confused about this node.
How it works
Each instance defines one segment of the eventual video and spits out a vace_prompt_list (type PROMPTLIST). Plug its previous_prompt output into the next node's previous_prompt input and each new node appends its round to the growing list. The final node's output feeds the long-video node's vace_prompt_list. Simple chaining, and it's how the author's 45-second showcase was built: nine of these nodes, each 81 frames, chained.
The inputs that matter
positive_prompt/negative_prompt- the round's text. Want prompt travel (the story drifting scene to scene)? Just change the prompt per node. The author confirmed in the release thread that's exactly how it works.num_frame- frames in this round, default 81. Step of 4, min 5.init_crossfade_frame- how many frames of this round are actually the tail of the previous round, blended in. Default 3. The first round has nothing to crossfade from, so its value is effectively unused for blending - don't sweat it.refine_init- this is the pack's signature: the strength of the "refine" pass applied to those transition frames to fight multi-round quality decay (oversaturation, color cast, blur). Default 0, meaning the automatic refinement is off; the Long Video node's default behavior uses this. Raise it if you're seeing visible degradation at round boundaries.vace_strength- how hard the VACE conditioning bites, default 1.0.
Optional, but they're where the power is:
ref_image- a reference image for this round. Different rounds can have different references (say, the same character in different outfits).custom_refine- plug in a Custom Refine Option node for per-frame control over exactly how the transition frames get repaired. When connected,refine_initis ignored in favor of the full per-frame lists.model_override- swap the model for this round only. Note the tooltip: "no use for fun vace," i.e. ignored by the two-expert variant.seed_override- per-round seed; ignored when left at 0.previous_prompt- the chain link from the prior node.
Output: vace_prompt_list, which also carries the encoded per-round details down to the long-video nodes.
Install
Part of the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/bbaudio-2025/ComfyUI-SuperUltimateVaceTools
Restart ComfyUI (or search "SuperUltimateVaceTools" in Manager). No model files ship with it - you still need the Wan VACE weights.
Troubleshooting
- "init_crossfade_frame can not be larger than num_frame" - your transition is longer than the round. Shorten it.
- Rounds produce identical-looking segments - same prompt, same seed, nothing forcing a change. Either change the prompt or use
seed_overrideto give a round a different draw. - Quality sags at the boundaries but the middle is fine - that's exactly what
refine_init(orcustom_refine) exists to fix. Raise it gently; too high and the transitions get a visible color/brightness shift, which the author flags as the known trade-off. - Count your frames with the Check Total Frame node before committing to a long, slow run - you'll thank yourself.
The one thing to keep in your head: this node only describes rounds. The long-video node executes them. Chain first, double-check the list, then queue.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| positive_prompt | STRING | — | |
| negative_prompt | STRING | — | |
| num_frame | INT | 815–65535 | — |
| init_crossfade_frame | INT | 30–65535 | — |
| refine_init | FLOAT | 0.000–1 | — |
| vace_strength | FLOAT | 1.000–1 | — |
| model_overrideopt | MODEL | Use this model in this generation, no use for fun vace | |
| ref_imageopt | IMAGE | — | |
| custom_refineopt | REFINELIST | — | |
| previous_promptopt | PROMPTLIST | — | |
| seed_overrideopt | INT | 00–18446744073709550000 | will be ignored when set to 0 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| vace_prompt_list | PROMPTLIST | — |