Nodes/ComfyUI_Wan/Wan VACE - Video Outpainting
ComfyUI Node

Wan VACE - Video Outpainting

Outpaint the frame in any direction

By ru4ls·Created 12 months ago·Updated 11 months ago· 3
Wan VACE - Video Outpainting
    • video_file_path
    • video_url
    modelwan2.1-vace-plus
    promptOutpaint the video with the following description
    video_url
    regioninternational
    top_scale1.0
    bottom_scale1.0
    left_scale1.0
    right_scale1.0
    seed0
    prompt_extendfalse
    watermarkfalse
    output_dir./videos

    Image outpainting you know: take a photo, extend the canvas, and the model invents plausible scenery beyond the edges. WanVACEVideoOutpainting ("Wan VACE - Video Outpainting") from the ru4ls/ComfyUI_Wan pack does the same thing, but for video and on the hosted wan2.1-vace-plus model. Feed it a clip, tell it how much to expand on each side, and it scales the footage outward - new background material, same motion, all on Alibaba's DashScope API.

    It's the least glamorous VACE node in the pack and one of the most useful in practice. Vertical video you need to crop to landscape? A portrait shot that needs room for a headline? Footage that's just too tight? That's this node's whole job.

    How it works

    The interface is dead simple - four scale dials and a prompt:

    • top_scale / bottom_scale / left_scale / right_scale - each from 1.0 to 2.0, default 1.0 (no expansion). Set the sides you want to grow. Want a 1:1 clip widened to 16:9? Left and right to 1.5 or so. Want to add sky? Top to 1.2. This is the entire node.
    • prompt - required. Describe the footage (and what should fill the new space, if you have an opinion). "Extend the scene naturally" is a valid prompt; "the camera pans wider to reveal a street market" is a better one.
    • video_url - the source clip, which must be publicly accessible so Alibaba's servers can fetch it. No local paths.
    • seed, prompt_extend, watermark, output_dir - the usual pack fare.

    Outputs are video_file_path and video_url; preview by feeding the path into a "Load Video (Path)" node from ComfyUI-VideoHelperSuite. The async job pattern is standard for the pack: submit, poll every 10 seconds (up to 60 tries), download when done. Billed per job.

    How to think about the scales

    The scales are expansion factors, not final dimensions - and they compound in cost and quality the further you push. Going to 2.0 on every side is asking the model to invent a lot of new world, and that's where VACE outpainting starts showing its seams (backgrounds that don't quite match, motion that wobbles at the seam). In practice:

    • Small expansions (1.1-1.4) on one or two sides look near-seamless.
    • Aggressive expansion (1.8+) reads as "new scene that happens to share the foreground" more often than not.
    • If you only need one direction, only touch that dial - the defaults handle the rest.

    If a result comes back with a visible seam, the fix is usually more prompt direction ("matching brick wall continues to the left") rather than more scale.

    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 minimal - requests, Pillow, numpy, python-dotenv - because the compute is remote.

    The honest take

    This is the quiet workhorse of the VACE family: modest, mechanical, and genuinely handy. It won't make headlines like the multi-image reference node, but "I need this clip wider" is a daily problem, and this node solves it without you touching a video editor. Just remember it's paid per job and that aggressive expansion is where quality leaves the building - small, directed scales are the sweet spot.

    CategoryRu4ls/Wan/VACE

    Inputs (12)

    NameTypeDefaultDescription
    modelCOMBOwan2.1-vace-plus1 options: wan2.1-vace-plus
    promptSTRINGOutpaint the video with the following description
    video_urlSTRINGURL of the input video
    regionCOMBOinternational2 options: international, mainland_china
    top_scaleoptFLOAT1.01–2
    bottom_scaleoptFLOAT1.01–2
    left_scaleoptFLOAT1.01–2
    right_scaleoptFLOAT1.01–2
    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