Nodes/ComfyUI_Wan/Wan VACE - Video Repainting
ComfyUI Node

Wan VACE - Video Repainting

Restyle a whole video and keep the motion (cloud Wan VACE repaint)

By ru4ls·Created 12 months ago·Updated 11 months ago· 3
Wan VACE - Video Repainting
    • video_file_path
    • video_url
    modelwan2.1-vace-plus
    promptRepaint the video with the following description
    video_url
    regioninternational
    ref_images_url
    control_conditiondepth
    strength1.0
    seed0
    prompt_extendfalse
    watermarkfalse
    output_dir./videos

    Repainting is the VACE mode for "same video, different look." You feed in a clip of a dancer, prompt it with a watercolor painting of the same scene, and out comes that exact motion re-rendered in the new style. No mask to draw, no region to babysit - the whole frame gets regenerated, and the movement is carried over. WanVACEVideoRepainting from the ru4ls/ComfyUI_Wan pack is that, running on the Wan 2.1 VACE model over Alibaba's DashScope API rather than on your GPU.

    If WanVACEVideoEdit is the surgical scalpel (mask out one thing, change it), repainting is the spray gun: everything changes, the motion doesn't. It's the right tool for style transfer, recolorings, changing day to night, or swapping a scene's whole look while keeping the choreography.

    The two knobs that matter

    • control_condition - how the model extracts features from the source video to hang the repaint on. Default is depth, which preserves the scene's structure and is the safe general-purpose choice. posebodyface and posebody anchor on human motion instead (better for people-heavy clips where you care about movement fidelity), and scribble uses line-art structure.
    • strength - how strongly that extracted condition is applied, 0.0 to 1.0, default 1.0. This is your "how faithful to the original" dial. At 1.0 the motion is locked in tight; dial it down toward 0.5-0.7 and the model gets more freedom, which can look more creative or more drift-y depending on your clip. When a repaint comes back with weird morphing, strength is the first thing to lower.

    There's also an optional ref_images_url for a single reference image - useful if you want the repaint to match a specific style or character from a still. And the standard prompt describes what the new look should be. Seed, prompt_extend, and watermark behave like the rest of the pack.

    How it works

    Same async pattern as every node in this pack: submit the job to DashScope, poll until it's done (videos poll every 10 seconds, up to 60 tries), then the mp4 is downloaded to your local output_dir. Your two outputs are video_file_path and video_url. To preview, wire video_file_path into a "Load Video (Path)" node from ComfyUI-VideoHelperSuite - the README's standard instruction for all the video nodes here.

    The one thing to remember is that the input video_url must be publicly reachable by Alibaba's servers. A file:// path or a local-only address won't work. Host the clip somewhere with a real URL first.

    Install

    Search ComfyUI_Wan in ComfyUI Manager, or:

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

    Restart ComfyUI, then set the API key in config/.env (DASHSCOPE_API_KEY, plus DASHSCOPE_API_KEY_CHINA if you'll use the mainland China region). Dependencies are minimal - requests, Pillow, numpy, python-dotenv - because the generation runs on Alibaba's hardware. Which also means it's a paid API: every repaint is billed.

    Honest expectations: cloud VACE repaint is fast and clean on straightforward clips, but "restyle the dancer" with posebodyface at full strength can get jittery on fast cuts. When that happens, drop strength to 0.6-ish and re-run. Repainting is a two-or-three-tries affair more often than a one-shot - treat the first run as a cheap test.

    CategoryRu4ls/Wan/VACE

    Inputs (11)

    NameTypeDefaultDescription
    modelCOMBOwan2.1-vace-plus1 options: wan2.1-vace-plus
    promptSTRINGRepaint the video with the following description
    video_urlSTRINGURL of the input video
    regionCOMBOinternational2 options: international, mainland_china
    ref_images_urloptSTRINGNewline-separated URLs for reference images (only 1 image supported)
    control_conditionoptCOMBOdepth4 options: posebodyface, posebody, depth, scribble
    strengthoptFLOAT1.00–1
    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