Nodes/ComfyUI_Wan/Wan VACE - Video Extension
ComfyUI Node

Wan VACE - Video Extension

Extend a video with cloud Wan VACE

By ru4ls·Created 12 months ago·Updated 11 months ago· 3
Wan VACE - Video Extension
    • video_file_path
    • video_url
    modelwan2.1-vace-plus
    promptExtend the video with the following description
    regioninternational
    first_frame_url
    last_frame_url
    first_clip_url
    last_clip_url
    video_url
    control_condition
    seed0
    prompt_extendfalse
    watermarkfalse
    output_dir./videos

    Every Wan clip has the same ceiling: roughly five seconds before the model starts degrading. The community's answer has been VACE extension - generate new frames that continue coherently from the end of an existing clip, chain them, and you get long-form video without the quality cliff. WanVACEVideoExtension ("Wan VACE - Video Extension") from the ru4ls/ComfyUI_Wan pack is that technique on Alibaba's hosted wan2.1-vace-plus model. It's the node you reach for when your story is longer than one clip.

    The KB's Wan essay documents the local version of this trick - people extending in chunks, each extension picking up where the last left off - and it works the same way here, minus the local render. You're renting Alibaba's compute, billed per job, and getting a model that knows how to keep a scene going instead of restarting it.

    How it works

    You don't feed it a whole video. You feed it the edges of what you want to continue, and the model fills the new middle:

    • first_frame_url / last_frame_url - images for the start and end of the extended segment.
    • first_clip_url / last_clip_url - optionally, actual video segments to continue from or into.
    • video_url - the reference video for motion features, if you want the extension to inherit its movement.
    • control_condition - posebodyface, posebody, depth, or scribble, to extract motion/composition from that reference and steer the extension.

    The core idea from the community playbook: keep a few seconds of overlap between what you generated and what you're extending, so the model has context to hold onto. The README's example prompts - "extend the video with the following description" - plus your own motion prose is what steers the continuation. Every URL input must be publicly reachable by Alibaba's servers; local paths won't work.

    Otherwise the inputs are the pack standard: prompt (required), seed, prompt_extend, watermark, output_dir. Outputs are video_file_path and video_url; preview by feeding the path into a "Load Video (Path)" node from ComfyUI-VideoHelperSuite.

    The practical rhythm

    Extension is a loop, not a one-shot. Generate a clip, feed its tail into this node as first_clip_url (or grab its last frame as first_frame_url), extend, repeat. Each extension is another billed job, so the cost adds up - but so does the runtime you'd otherwise spend letting a 14B model chew through the same frames locally. If you're planning a multi-clip sequence, map out the extensions before you start, because each one compounds the previous result.

    Install

    ComfyUI Manager, search ComfyUI_Wan, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ru4ls/ComfyUI_Wan.git
    pip install -r ComfyUI_Wan/requirements.txt
    

    Restart, then copy config/.env.template to config/.env in the pack folder and set DASHSCOPE_API_KEY (plus DASHSCOPE_API_KEY_CHINA for the mainland China region). Dependencies are light - requests, Pillow, numpy, python-dotenv - since the generation runs remotely.

    The honest caveat

    Extension quality degrades over distance, same as every approach to long video. The first extension from a strong clip usually looks great; the fourth or fifth can drift in style or lighting. That's the model, not a setup error - keep extensions short, keep overlap generous, and if a link in the chain drifts, re-roll that segment rather than pushing forward. Think of this node as the bridge builder: it works, but the bridges get shakier the further you go.

    CategoryRu4ls/Wan/VACE

    Inputs (13)

    NameTypeDefaultDescription
    modelCOMBOwan2.1-vace-plus1 options: wan2.1-vace-plus
    promptSTRINGExtend the video with the following description
    regionCOMBOinternational2 options: international, mainland_china
    first_frame_urloptSTRINGURL of the first frame image
    last_frame_urloptSTRINGURL of the last frame image
    first_clip_urloptSTRINGURL of the first video segment
    last_clip_urloptSTRINGURL of the last video segment
    video_urloptSTRINGURL of the reference video for motion features
    control_conditionoptCOMBO5 options: , posebodyface, posebody, depth, scribble
    seedoptINT00–2147483647
    prompt_extendoptBOOLEANfalse
    watermarkoptBOOLEANfalse
    output_diroptSTRING./videosDirectory where the generated video will be saved. Browse to select a custom directory.

    Outputs (2)

    NameTypeDescription
    video_file_pathSTRING
    video_urlSTRING