Nodes/ComfyUI-FlashVSR_Ultra_Fast/FlashVSR Ultra-Fast (Advanced)
ComfyUI Node

FlashVSR Ultra-Fast (Advanced)

The tuning-knobs version

By lihaoyun6·Created 10 months ago·Updated 9 months ago· 754
FlashVSR Ultra-Fast (Advanced)
  • pipe
  • frames
  • image
scale2
color_fixtrue
tiled_vaetrue
tiled_dittrue
tile_size256
tile_overlap24
unload_ditfalse
sparse_ratio2.0
kv_ratio3.0
local_range11
seed0

This is the node you reach for once the plain FlashVSR Ultra-Fast node's tiny/full and scale don't give you enough control - usually because you're fighting VRAM on a long or high-res clip and need to push the tile geometry or the attention sparsity yourself rather than trusting the presets. It doesn't load a model on its own; it needs a pipe from the FlashVSR Init Pipeline node wired into it first. That split - a loader node plus a worker node - is a pattern you'll see across a lot of ComfyUI packs, and it's here so the loading decisions (which checkpoint, what precision, which attention backend) live in one place while every actual upscale run reuses them.

Why this exists over the simple node

FlashVSR is fast because it's built on Wan's VAE latent space and streams frames through a diffusion transformer restoration pass rather than fully denoising from scratch, using Sparse_SageAttention to keep the attention computation cheap. The simple node picks reasonable settings for all of that and hides the mechanics. This node exposes them - tile size and overlap explicitly instead of just an on/off tiling switch, and the sparse-attention parameters that control how aggressively the attention pattern gets approximated. Most people never need this node; you reach for it when the defaults are OOMing or the seams between tiles are showing.

Inputs and outputs that matter

pipe (from FlashVSRInitPipe) and frames (your video) are required. image comes back out, same as the simple node. The rest:

  • scale - 2 to 4, same advice as everywhere else in this pack: 4 is better, drop to 2 if you're VRAM-tight.
  • color_fix - default on. Runs a wavelet-transform color correction pass on the output, which the simple node doesn't expose as a toggle. If you're seeing color drift on the advanced path, this is the first thing to check is actually enabled.
  • tiled_vae / tiled_dit - the same VRAM-versus-speed switches as the simple node, but here they're paired with explicit geometry below instead of a fixed internal tile size.
  • tile_size (default 256, range 32-1024) and tile_overlap (default 24, range 8-512) - how the input gets split for tiled processing. Bigger tiles mean fewer seams but more VRAM per tile; more overlap smooths the blending between tiles at some speed cost. Shrink tile_size before you touch anything else if you're still OOMing with tiling already on.
  • unload_dit - frees the DiT model before decode for a lower VRAM peak, at more time cost.
  • sparse_ratio (1.5-2, default 2), kv_ratio (1-3, default 3), local_range (9-11, default 11) - these tune Sparse_SageAttention itself: how much of the attention computation gets skipped or approximated versus computed in full. Lower ratios generally mean faster and lighter at some quality cost. The pack doesn't document the exact mechanics of each one in detail, so treat this as an honest gap - the practical move is to leave them at the defaults and only nudge them down if you're still short on VRAM after adjusting tiling and scale.
  • seed - the usual.

Installing it

One install covers all three FlashVSR nodes in this pack. Through ComfyUI Manager, search "ComfyUI-FlashVSR_Ultra_Fast" and install. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/lihaoyun6/ComfyUI-FlashVSR_Ultra_Fast.git
python -m pip install -r ComfyUI-FlashVSR_Ultra_Fast/requirements.txt

Download the FlashVSR model folder from JunhaoZhuang/FlashVSR on HuggingFace (or the -v1.1 repo) into ComfyUI/models/FlashVSR, with all four files: LQ_proj_in.ckpt, TCDecoder.ckpt, diffusion_pytorch_model_streaming_dmd.safetensors, Wan2.1_VAE.pth. Restart ComfyUI. Turing-generation GPUs or older need triton<3.3.0 pinned before install, or the sparse-attention build fails.

Common issues

No pipe input, or the node errors immediately. This node can't load a model by itself - check that FlashVSR Init Pipeline is upstream and actually connected to the pipe socket, not just sitting nearby on the canvas.

Still OOMing with tiling on. Shrink tile_size before you touch sparse_ratio or kv_ratio - tile geometry is the bigger VRAM lever of the two, and it's the one with an obvious, documented effect.

Faces still coming out wrong. This isn't specific to the advanced node - FlashVSR's weak spot across the board is facial detail, especially at tiny mode. Switching to full mode (set on the Init Pipeline node) or giving faces a separate pass helps more than fiddling with the sparse-attention ratios here.

Tweaking sparse_ratio/kv_ratio/local_range and not seeing a clear win. That's expected - they're a finer lever than most people need. If you're not actively VRAM-constrained after dialing in tiling and scale, leave them alone; the simple node's defaults cover the common case just fine.

CategoryFlashVSR

Inputs (13)

NameTypeDefaultDescription
pipePIPEFlashVSR pipeline
framesIMAGESequential video frames as IMAGE tensor batch
scaleINT22–4
color_fixBOOLEANtrueUse wavelet transform to correct output video color.
tiled_vaeBOOLEANtrueDisable tiling: faster decode but higher VRAM usage. Set to True for lower memory consumption at the cost of speed.
tiled_ditBOOLEANtrueSignificantly reduces VRAM usage at the cost of speed.
tile_sizeINT25632–1024
tile_overlapINT248–512
unload_ditBOOLEANfalseUnload DiT before decoding to reduce VRAM peak at the cost of speed.
sparse_ratioFLOAT2.01.5–2Recommended: 1.5 or 2.0 1.5 → faster; 2.0 → more stable
kv_ratioFLOAT3.01–3Recommended: 1.0 to 3.0 1.0 → less vram; 3.0 → high quality
local_rangeINT119–11Recommended: 9 or 11 local_range=9 → sharper details; 11 → more stable results
seedINT00–1125899906842624

Outputs (1)

NameTypeDescription
imageIMAGE