ComfyUI Extension: ComfyUI-FlashVSR_Stable
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
High-performance Video Super Resolution for ComfyUI with VRAM optimization.
Looking for a different extension?
Custom Nodes (3)
README
ComfyUI-FlashVSR_Stable
High-performance Video Super Resolution for ComfyUI with VRAM optimization.
Run FlashVSR on 8GB-24GB+ GPUs without artifacts. Features intelligent resource management, 5 VAE options, and auto-downloading models.
Registry Link: https://registry.comfy.org/publishers/naxci1/nodes/ComfyUI-FlashVSR_Stable
✨ Key Features
- 🎬 Video Super Resolution: 2x or 4x upscaling using FlashVSR diffusion models
- 🧠 5 VAE Options: Choose from Wan2.1, Wan2.2, LightVAE, TAE variants for optimal VRAM/quality trade-off
- 📊 Pre-Flight Resource Check: Intelligent VRAM estimation with settings recommendations
- ⚡ Auto-Download: Models download automatically from HuggingFace if missing
- 🛡️ OOM Protection: Automatic recovery with progressive fallback (tiled VAE → tiled DiT → chunking)
- 🔧 Unified Pipeline: All modes share optimized processing logic
📋 Quick Links
- Changelog - Full version history
- Sample Workflow
- HuggingFace Models
Performance & VRAM Optimization
This node is optimized for various hardware configurations. Here are some guidelines:
VRAM Tiers & Settings
| VRAM | Mode | Tiling | Chunk Size | Precision | Notes |
| :--- | :--- | :--- | :--- | :--- | :--- |
| 24GB+ | full or tiny | Disabled | 0 (All) | bf16/auto | Max quality/speed. |
| 16GB | tiny | tiled_vae=True | 0 or ~100 | bf16/auto | Enable keep_models_on_cpu. |
| 12GB | tiny | tiled_vae=True, tiled_dit=True | ~50 | fp16 | Use sparse_sage attention. |
| 8GB | tiny-long | Required | ~20 | fp16 | Must use tiling and chunking. |
Performance Enhancements
- Attention Mode: Use
sparse_sage_attentionfor the best balance of speed and memory.flash_attention_2is faster but requires specific hardware/installation. - Precision:
bf16(BFloat16) is recommended for RTX 3000/4000/5000 series. It is faster and preserves dynamic range better thanfp16. - Chunking: Use
frame_chunk_sizeto process videos in segments. This moves processed frames to CPU RAM, preventing VRAM saturation on long clips. - Resize Input: If the input video is large (e.g., 1080p), use the
resize_factorparameter to reduce input size to0.5xbefore processing. This drastically reduces VRAM usage and allows for 4x upscaling of the resized result (net 2x output). For small videos, leave at1.0.
Pre-Flight Resource Check (NEW)
Before processing, FlashVSR now performs an intelligent pre-flight check that:
- Estimates VRAM Requirements: Calculates approximate VRAM needed based on resolution, frames, scale, and settings.
- Checks Available Resources: Uses
torch.cuda.mem_get_info()for accurate real-time VRAM availability. - Provides Recommendations: If OOM is predicted, suggests optimal settings.
Example console output:
============================================================
🔍 PRE-FLIGHT RESOURCE CHECK
💻 RAM: 15.4GB / 95.8GB
💾 VRAM Available: 14.2GB
📊 Estimated VRAM Required: 12.8GB
✅ Safe to proceed. Estimated ~12.8GB needed, 14.2GB available.
============================================================
If VRAM is insufficient:
⚠️ Current settings require ~18.5GB but only 8.0GB available.
💡 Recommended Optimal Settings:
• chunk_size = 32
• tiled_vae = True
• tiled_dit = True
• resize_factor = 0.6
🎨 VAE Model Selection
VAE Type Comparison
| VAE Type | VRAM Usage | Speed | Quality | Best For | | :--- | :--- | :--- | :--- | :--- | | Wan2.1 | 8-12 GB | Baseline | ⭐⭐⭐⭐⭐ | Maximum quality, 24GB+ VRAM | | Wan2.2 | 8-12 GB | Baseline | ⭐⭐⭐⭐⭐ | Improved normalization for Wan2.2 models | | LightVAE_W2.1 | 4-5 GB | 2-3x faster | ⭐⭐⭐⭐ | 8-16GB VRAM, speed priority | | TAE_W2.2 | 6-8 GB | 1.5x faster | ⭐⭐⭐⭐ | Temporal consistency priority | | LightTAE_HY1.5 | 3-4 GB | 3x faster | ⭐⭐⭐⭐ | HunyuanVideo compatible, minimum VRAM |
VAE Selection Guide
| Your VRAM | Recommended VAE | Additional Settings |
| :--- | :--- | :--- |
| 8GB | LightTAE_HY1.5 or LightVAE_W2.1 | tiled_vae=True, tiled_dit=True, chunk_size=16 |
| 12GB | LightVAE_W2.1 or Wan2.1 | tiled_vae=True |
| 16GB | Any VAE | Optional tiling for long videos |
| 24GB+ | Wan2.1 or Wan2.2 | Maximum quality, no restrictions |
Auto-Download
All VAE models auto-download from HuggingFace if not found locally:
| VAE Selection | File | Direct Download Link |
| :--- | :--- | :--- |
| Wan2.1 | Wan2.1_VAE.pth | Download |
| Wan2.2 | Wan2.2_VAE.pth | Download |
| LightVAE_W2.1 | lightvaew2_1.pth | Download |
| TAE_W2.2 | taew2_2.safetensors | Download |
| LightTAE_HY1.5 | lighttaehy1_5.pth | Download |
📖 Best Practices / Settings Guide
Low VRAM (8-12GB) Configuration
Mode: tiny-long
VAE: LightVAE_W2.1 or LightTAE_HY1.5
Tiled VAE: ✅ Enabled
Tiled DiT: ✅ Enabled
Chunk Size: 16-32
Resize Factor: 0.5-0.8
Keep Models on CPU: ✅ Enabled
Medium VRAM (16GB) Configuration
Mode: tiny
VAE: Wan2.1 or LightVAE_W2.1
Tiled VAE: ✅ Enabled
Tiled DiT: Optional
Chunk Size: 50-100
Resize Factor: 1.0
Keep Models on CPU: Optional
High VRAM (24GB+) Configuration
Mode: full or tiny
VAE: Wan2.1 or Wan2.2
Tiled VAE: ❌ Disabled
Tiled DiT: ❌ Disabled
Chunk Size: 0 (all frames)
Resize Factor: 1.0
Keep Models on CPU: ❌ Disabled
Processing Summary
At the end of each run, you'll see a summary:
============================================================
📊 PROCESSING SUMMARY
⏱️ Total Processing Time: 130.08s (1.54 FPS)
📥 Input Resolution: 276x206 (200 frames)
📤 Output Resolution: 552x412 (200 frames)
📈 Peak VRAM Used: 12.4 GB
============================================================
🔧 Node Parameters
Hover over any input in ComfyUI to see tooltips. Full parameter list:
| Parameter | Description |
| :--- | :--- |
| model | FlashVSR model version |
| mode | tiny (fast), tiny-long (lowest VRAM), full (highest quality) |
| vae_model | VAE architecture (5 options, auto-download) |
| scale | Upscaling factor: 2x or 4x |
| color_fix | Wavelet color transfer. Highly recommended. |
| tiled_vae | Spatial tiling for VAE. Reduces VRAM, slower. |
| tiled_dit | Spatial tiling for DiT. Required for 4K output. |
| tile_size | Tile dimensions. Smaller = less VRAM. |
| overlap | Tile overlap for seamless blending. |
| unload_dit | Unload DiT before VAE decode. |
| frame_chunk_size | Process N frames at a time. 0 = all. |
| enable_debug | Verbose console logging. |
| keep_models_on_cpu | Offload to system RAM when idle. |
| resize_factor | To first reduce the size of large videos and then enlarge them, use a range of (0.3-1.0). |
| attention_mode | Attention kernel: sparse_sage, flash_attention_2, sdpa, block_sparse |
💻 Command-Line Interface (CLI)
FlashVSR includes a full-featured CLI that mirrors all ComfyUI node parameters for standalone video upscaling.
Quick Start
# Basic 2x upscale
python cli_main.py --input video.mp4 --output upscaled.mp4 --scale 2
# 4x upscale with tiling for lower VRAM
python cli_main.py --input video.mp4 --output upscaled.mp4 --scale 4 \
--tiled_vae --tiled_dit --tile_size 256 --tile_overlap 24
# Long video with chunking to prevent OOM
python cli_main.py --input long_video.mp4 --output upscaled.mp4 \
--frame_chunk_size 50 --mode tiny-long
# Low VRAM mode (8GB GPUs)
python cli_main.py --input video.mp4 --output upscaled.mp4 --scale 2 \
--vae_model LightVAE_W2.1 --tiled_vae --tiled_dit \
--frame_chunk_size 20 --resize_factor 0.5
# Custom models directory
python cli_main.py --input video.mp4 --output upscaled.mp4 \
--models_dir /path/to/your/models
CLI Arguments Reference
All arguments map 1:1 with ComfyUI node inputs. Run python cli_main.py --help for full details.
Required Arguments
| Argument | Description |
| :--- | :--- |
| --input, -i | Input video file path (e.g., video.mp4) |
| --output, -o | Output video file path (e.g., upscaled.mp4) |
Pipeline Initialization (from FlashVSRNodeInitPipe)
| Argument | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| --model | choice | FlashVSR-v1.1 | Model version: FlashVSR, FlashVSR-v1.1 |
| --mode | choice | tiny | Operation mode: tiny, tiny-long, full |
| --vae_model | choice | Wan2.1 | VAE model: Wan2.1, Wan2.2, LightVAE_W2.1, TAE_W2.2, LightTAE_HY1.5 |
| --force_offload | flag | True | Force offload models to CPU after execution |
| --no_force_offload | flag | - | Disable force offloading |
| --precision | choice | auto | Precision: fp16, bf16, auto |
| --device | string | auto | Device: cuda:0, cuda:1, cpu, auto |
| --attention_mode | choice | sparse_sage_attention | Attention: sparse_sage_attention, block_sparse_attention, flash_attention_2, sdpa |
Processing Parameters (from FlashVSRNodeAdv)
| Argument | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| --scale | int | 2 | Upscaling factor: 2 or 4 |
| --color_fix | flag | True | Apply wavelet-based color correction |
| --no_color_fix | flag | - | Disable color correction |
| --tiled_vae | flag | False | Enable spatial tiling for VAE decoder |
| --tiled_dit | flag | False | Enable spatial tiling for DiT |
| --tile_size | int | 256 | Tile size for DiT processing (32-1024) |
| --tile_overlap | int | 24 | Overlap pixels between tiles (8-512) |
| --unload_dit | flag | False | Unload DiT before VAE decoding |
| --sparse_ratio | float | 2.0 | Sparse attention control (1.5-2.0) |
| --kv_ratio | float | 3.0 | Key/Value cache ratio (1.0-3.0) |
| --local_range | int | 11 | Local attention window: 9 or 11 |
| --seed | int | 0 | Random seed for reproducibility |
| --frame_chunk_size | int | 0 | Process N frames at a time (0 = all) |
| --enable_debug | flag | False | Enable verbose logging |
| --keep_models_on_cpu | flag | True | Keep models in CPU RAM when idle |
| --no_keep_models_on_cpu | flag | - | Keep models in VRAM |
| --resize_factor | float | 1.0 | Resize input before processing (0.1-1.0) |
Video I/O Parameters
| Argument | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| --fps | float | input FPS | Output video FPS |
| --codec | string | libx264 | Video codec: libx264, libx265, h264_nvenc |
| --crf | int | 18 | Quality (0-51, lower = better) |
| --start_frame | int | 0 | Start frame index (0-indexed) |
| --end_frame | int | -1 | End frame index (-1 = all frames) |
| --models_dir | string | ./models | Custom models directory path |
🚀 Installation
Step 1: Install the Node
cd ComfyUI/custom_nodes
git clone https://github.com/naxci1/ComfyUI-FlashVSR_Stable.git
python -m pip install -r ComfyUI-FlashVSR_Stable/requirements.txt
📢 Turing architecture or older GPUs (GTX 16 series, RTX 20 series, and earlier): Install
triton<3.3.0:# Windows python -m pip install -U triton-windows<3.3.0 # Linux python -m pip install -U triton<3.3.0
Step 2: Download Models
Download the FlashVSR folder from HuggingFace:
ComfyUI/models/FlashVSR/
├── LQ_proj_in.ckpt
├── TCDecoder.ckpt
├── diffusion_pytorch_model_streaming_dmd.safetensors
└── Wan2.1_VAE.pth (or auto-downloads)
💡 VAE files auto-download from HuggingFace if not present. Only the DiT model and other components need manual download.
Step 3: Custom Model Paths (Optional)
By default, FlashVSR looks for models in ComfyUI/models/FlashVSR/. To use a different location (e.g., models on another drive):
- Edit
model_paths.yamlin theComfyUI-FlashVSR_Stabledirectory - Set
flashvsr_model_pathto your custom path - Restart ComfyUI
Example configurations:
# Windows (D: drive)
flashvsr_model_path: "D:/AI/Models/FlashVSR"
# Windows (alternative syntax)
flashvsr_model_path: "E:\\ComfyUI\\models\\FlashVSR"
# Linux/Mac
flashvsr_model_path: "/home/user/models/FlashVSR"
flashvsr_model_path: "/mnt/storage/AI/FlashVSR"
# Use default (leave empty)
flashvsr_model_path: ""
📂 Auto-Download Support: If model files don't exist, they will automatically download to the directory specified in
model_paths.yaml. The custom path will be created if needed.Example: If you set
flashvsr_model_path: "D:/AI/Models", models will automatically download toD:/AI/Models/FlashVSR/on first use.
🖼️ Preview

Sample Workflow
🏷️ Recent Changes
See CHANGELOG.md for full version history.
🙏 Acknowledgments
- FlashVSR @OpenImagingLab
- Sparse_SageAttention @jt-zhang
- ComfyUI @comfyanonymous
- Wan2.2 @Wan-Video
- LightX2V @ModelTC
- LightX2V Autoencoders @lightx2v
📄 License
MIT License - see LICENSE for details.
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.