flashVSR / README.md
stimi's picture
Upload 2 files
2ff17b7 verified
|
Raw History Blame Contribute Delete
3.48 kB
---
license: apache-2.0
base_model: JunhaoZhuang/FlashVSR
language:
- en
tags:
- video-super-resolution
- video-upscaling
- flashvsr
- api
- apimodels
---
# FlashVSR — hosted API access
**FlashVSR** is a real-time, diffusion-based streaming **video super-resolution** model
(CVPR 2026). This repository is **not the model weights** — it is a documentation page for
running FlashVSR through a hosted API on **[apimodels.app](https://apimodels.app)**, a
multi-model API gateway where one key and one OpenAI-compatible endpoint reach 110+ image,
video, audio and language models.
- Original model & weights: **[JunhaoZhuang/FlashVSR](https://huggingface.co/JunhaoZhuang/FlashVSR)**
- Authors: Junhao Zhuang, Shi Guo, Xin Cai, Xiaohui Li, Yihao Liu, Chun Yuan, Tianfan Xue
- License: Apache-2.0 (this page follows the upstream license)
This page is an independent, hosted-API integration. It is **not affiliated with or endorsed
by the authors** and does not redistribute their weights. All credit for the model is theirs.
## What it does
Turn a low-resolution clip into a sharper 720p / 1080p / 2K / 4K video. FlashVSR is a
one-step streaming framework, so it is fast enough for real-time use.
![FlashVSR before/after: 480p source vs FlashVSR 1080p](before-after.jpg)
*Same frame and region: a 480p source clip (left) vs the FlashVSR result at 1080p (right),
produced through the apimodels.app API. No other edits.*
## Use it via API
No GPU or setup on your side — call the hosted endpoint on apimodels.app. Get a key at
https://apimodels.app, then:
```bash
# 1) upload the clip -> get a public URL
curl -X POST https://api.apimodels.app/v1/files \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@input.mp4;type=video/mp4"
# -> { "data": { "publicUrl": "https://r2.apimodels.app/uploads/.../input.mp4" } }
# 2) create the upscale task (resolution: 720p | 1080p | 2k | 4k)
curl -X POST https://api.apimodels.app/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "model": "flashvsr", "video": "<publicUrl>", "resolution": "1080p" }'
# -> { "data": { "taskId": "..." } }
# 3) poll until state == "completed"
curl "https://api.apimodels.app/v1/video/generations?task_id=TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
# -> { "data": { "state": "completed", "resultUrls": ["https://..."] } }
```
Python (OpenAI-style base URL not needed — plain HTTP):
```python
import requests
BASE, KEY = "https://api.apimodels.app", "YOUR_API_KEY"
H = {"Authorization": f"Bearer {KEY}"}
pub = requests.post(f"{BASE}/v1/files", headers=H,
files={"file": ("input.mp4", open("input.mp4", "rb"), "video/mp4")}
).json()["data"]["publicUrl"]
task = requests.post(f"{BASE}/v1/video/generations", headers=H,
json={"model": "flashvsr", "video": pub, "resolution": "1080p"}
).json()["data"]["taskId"]
# then GET {BASE}/v1/video/generations?task_id=task until state == "completed"
```
## Pricing
Billed per second of **input** video length (not output). Failed jobs are not charged.
Result files are kept for 7 days.
| Resolution | Price / input second |
| --- | --- |
| 720p | $0.02 |
| 1080p | $0.03 |
| 2K | $0.035 |
| 4K | $0.06 |
## Links
- Run it: **[apimodels.app](https://apimodels.app)**
- API docs: https://apimodels.app/docs/flashvsr
- Original model: https://huggingface.co/JunhaoZhuang/FlashVSR