Nodes/comfyUI-TiledWan/TiledWan Video VACE Pipeline
ComfyUI Node

TiledWan Video VACE Pipeline

Run Wan 2.1 VACE on videos it was never meant to fit

By Baverne·Created about a year ago·Updated 7 months ago· 8
TiledWan Video VACE Pipeline
  • video
  • mask
  • model
  • vae
  • text_embeds
  • samples
  • feta_args
  • context_options
  • loop_args
  • sigmas
  • unianimate_poses
  • fantasytalking_embeds
  • uni3c_embeds
  • multitalk_embeds
  • freeinit_args
  • cache_args
  • slg_args
  • experimental_args
  • vace_ref_images
  • processed_video
  • processing_info
target_frames81
target_width832
target_height480
frame_overlap10
spatial_overlap20
steps30
cfg6.00
shift5.00
seed0
schedulerunipc
vace_strength1.000
vace_start_percent0.00
vace_end_percent1.00
decode_enable_vae_tilingfalse
decode_tile_x272
decode_tile_y272
decode_tile_stride_x144
decode_tile_stride_y128
debug_modetrue
debug_color_shiftfalse
force_offload_between_tilestrue
riflex_freq_index0
denoise_strength1.00
force_offloadtrue
batched_cfgfalse
rope_functioncomfy
vace_tiled_vaefalse
decode_normalizationdefault

Wan 2.1 VACE is genuinely great at video inpainting - right up until your footage exceeds 832×480 and 81 frames, at which point it just refuses. TiledWan Video VACE Pipeline is the reason this pack exists: one node that takes a video, a mask, and conditioning, tiles the whole thing, runs the complete native WanVideo VACE pipeline on every tile, and stitches it back so you can process footage of any size and length without losing your mind (or your VRAM).

It's the flagship of Baverne's comfyUI-TiledWan pack, and the README states the premise plainly: "Wan2.1 Vace can perform video inpainting on 832x480 81-frame videos. This custom node set adapts it to process as long and as large videos as one wants with tiling while maintaining consistency." If you've done long-video work, you know that sentence is carrying a lot.

How it works, roughly: the video is split into temporal chunks (81 frames each by default) and each chunk into spatial tiles (832×480 by default), all with overlap. Every tile runs the full pipeline - encode, sample, decode - while already-processed neighboring tiles overwrite the overlapping regions to keep edges consistent, with masks zeroed in overwritten areas. The last frames of each chunk become reference frames for the next chunk, which is the temporal glue that stops each 81-frame window from drifting into its own universe. Stitching is dimension-wise - columns first, then lines, then across time - with fade blending at the overlaps, and the final output is cropped back to your exact input dimensions. Between tiles it offloads the model from VRAM, which is how "arbitrarily large" stops being a lie on consumer cards.

Inputs worth your time:

  • video and mask - the footage and what to inpaint, matching in dimensions and frame count
  • model (WANVIDEOMODEL) and vae (WANVAE) - feed it the output of ComfyUI's native WanVideo Loader with a Wan 2.1 VACE checkpoint and the matching video VAE
  • target_frames / target_width / target_height - the tile geometry. 81 / 832 / 480 are the defaults because that's what the model is trained for; the tooltip is blunt that other frame counts "might generate artefact or frame drops"
  • frame_overlap (10) and spatial_overlap (20) - how much the tiles bleed into each other
  • vace_strength - 1.0 means total reconstruction, 0.0 means no change. This is your "how much am I actually editing" dial
  • steps, cfg, shift, seed, scheduler - standard Wan sampler settings

Optional inputs include text_embeds, vace_ref_images (reference frames to hold a character consistent across tiles), and denoise_strength, plus a wall of advanced kwargs like context_options, freeinit_args, and cache_args that you should ignore until you know why you need them. Outputs are processed_video (the stitched result) and processing_info, a string with tile counts and timing that's genuinely useful for tuning.

Install: ComfyUI Manager (search "comfyUI-TiledWan"), or cd ComfyUI/custom_nodes && git clone https://github.com/Baverne/comfyUI-TiledWan, then restart. The node declares no extra dependencies, though the source imports scipy - if you hit a ModuleNotFoundError there, pip install scipy. The heavy part isn't the node, it's the Wan 2.1 VACE model and Wan video VAE you load through the native WanVideo Loader.

Now the honest part, because the README is unusually candid. The model "does suffer from poor definition and 'cartoonish' outputs sometimes," and cranking up the spatial tile count can backfire - Wan is meant to be given meaningful frames, and over-tiling makes it lose the plot. You can also get a noticeable color shift even on unmasked areas, and partially overwritten tiles amplify it in later chunks. That's why the author frames the output as "a good workbase for VFX-artists" rather than a finished shot. Budget for compositing; the pack even ships a commented example workflow to get you started.

CategoryTiledWan

Inputs (47)

NameTypeDefaultDescription
videoIMAGEInput video frames to process. Can be very large videos that will be automatically tiled for memory efficiency.
maskMASKMask defining areas to be processed. Should match the video dimensions and frame count.
modelWANVIDEOMODELWanVideo model for video generation/processing.
vaeWANVAEVideo VAE for encoding/decoding frames.
target_framesINT8116–200Target number of frames per temporal chunk. The model works best with 81 frames. If different, might generate artefact or frame drops
target_widthINT83264–2048Target width for spatial tiles. Works best around 832.
target_heightINT48064–2048Target height for spatial tiles. Works best around 480.
frame_overlapINT100–40Number of overlapping frames between temporal chunks.
spatial_overlapINT200–100Pixel overlap between spatial tiles.
stepsINT30Number of diffusion sampling steps.
cfgFLOAT6.000–30Classifier-free guidance strength. Higher values follow the conditioning more closely.
shiftFLOAT5.000–1000Shift parameter for the sampling schedule.
seedINT00–18446744073709550000Random seed for reproducible results. Use the same seed to get identical outputs.
schedulerCOMBOunipcSampling scheduler algorithm.
vace_strengthFLOAT1.0000–10VACE encoding strength. Controls how much the video is modified during processing. 1.0 mean total reconstruction, 0.0 means no change.
vace_start_percentFLOAT0.000–1
vace_end_percentFLOAT1.000–1
decode_enable_vae_tilingBOOLEANfalse
decode_tile_xINT27240–2048
decode_tile_yINT27240–2048
decode_tile_stride_xINT14432–2040
decode_tile_stride_yINT12832–2040
debug_modeBOOLEANtrue
debug_color_shiftBOOLEANfalseEnable color shift debugging to visualize tile boundaries. Useful for debugging tiling artifacts.
force_offload_between_tilesBOOLEANtrue
text_embedsoptWANVIDEOTEXTEMBEDS
samplesoptLATENT
riflex_freq_indexoptINT00–1000
denoise_strengthoptFLOAT1.000–1
force_offloadoptBOOLEANtrue
batched_cfgoptBOOLEANfalse
rope_functionoptCOMBOcomfy2 options: default, comfy
feta_argsoptFETAARGS
context_optionsoptCONTEXTOPTIONS
loop_argsoptLOOPARGS
sigmasoptSIGMAS
unianimate_posesoptUNIANIMATE_POSES
fantasytalking_embedsoptFANTASYTALKING_EMBEDS
uni3c_embedsoptUNI3C_EMBEDS
multitalk_embedsoptMULTITALK_EMBEDS
freeinit_argsoptFREEINIT_ARGS
cache_argsoptCACHEARGS
slg_argsoptSLGARGS
experimental_argsoptEXPERIMENTALARGS
vace_ref_imagesoptIMAGE
vace_tiled_vaeoptBOOLEANfalse
decode_normalizationoptCOMBOdefault2 options: default, minmax

Outputs (2)

NameTypeDescription
processed_videoIMAGEProcessed video with WanVideo VACE pipeline applied through tiled processing. Maintains original dimensions and quality.
processing_infoSTRINGDetailed information about the processing including tile counts, timing, and processing summary.