Skip to content

Towards Real-Time Diffusion-Based Streaming Video Super-Resolution — An efficient one-step diffusion framework for streaming VSR with locality-constrained sparse attention and a tiny conditional decoder.

License

Notifications You must be signed in to change notification settings

RyannDaGreat/FlashVSR

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This repo was forked from https://github.com/lihaoyun6/FlashVSR_plus.git

⚡ FlashVSR+

Optimized inference pipeline based on FlashVSR project

Authors: Junhao Zhuang, Shi Guo, Xin Cai, Xiaohui Li, Yihao Liu, Chun Yuan, Tianfan Xue

Modified: lihaoyun6

     

Your star means a lot for us to develop this project!


🤔 What's New?

  • Replaced Block-Sparse-Attention with Sparse_SageAttention to avoid building complex cuda kernels.
  • With the new tile_dit method, you can even output 1080P video on 8GB of VRAM.
  • Support copying audio tracks to output files (powered by FFmpeg).
  • Introduced Blackwell GPU support for FlashVSR.

🚀 Getting Started

Follow these steps to set up and run FlashVSR on your local machine:

⚠️ Note: This project is primarily designed and optimized for 4× video super-resolution.
We strongly recommend using the 4× SR setting to achieve better results and stability. ✅

1️⃣ Clone the Repository

git clone https://github.com/lihaoyun6/FlashVSR_plus
cd FlashVSR_plus

2️⃣ Set Up the Python Environment

Create and activate the environment:

conda create -n flashvsr
conda activate flashvsr

Install project dependencies:

# for CUDA 12.8
pip install -r requirements.txt --index-url https://download.pytorch.org/whl/cu128

# for CUDA 13.0
pip install -r requirements.txt --index-url https://download.pytorch.org/whl/cu130

3️⃣ Download Model Weights

  • When you run FlashVSR+ for the first time, it will automatically download all required models from HuggingFace.

  • You can also manually download all files from FlashVSR and put them in the following location:

./models/FlashVSR/
│
├── LQ_proj_in.ckpt                                   
├── TCDecoder.ckpt                                    
├── Wan2.1_VAE.pth                                    
├── diffusion_pytorch_model_streaming_dmd.safetensors 
└── README.md

4️⃣ Run Inference

CLI example:

python run.py -i ./inputs/example0.mp4 -s 4 ./

Or use gradio web ui:

python webui.py

🤗 Feedback & Support

We welcome feedback and issues. Thank you for trying FlashVSR+


📄 Acknowledgments

We gratefully acknowledge the following open-source projects:


📞 Contact


📜 Citation

@misc{zhuang2025flashvsrrealtimediffusionbasedstreaming,
      title={FlashVSR: Towards Real-Time Diffusion-Based Streaming Video Super-Resolution}, 
      author={Junhao Zhuang and Shi Guo and Xin Cai and Xiaohui Li and Yihao Liu and Chun Yuan and Tianfan Xue},
      year={2025},
      eprint={2510.12747},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2510.12747}, 
}

About

Towards Real-Time Diffusion-Based Streaming Video Super-Resolution — An efficient one-step diffusion framework for streaming VSR with locality-constrained sparse attention and a tiny conditional decoder.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%