FlashVSR+: Free 4K Upscaling for AI Video That Fits on One Graphics Card
Almost every AI video clip you have seen this year was born small. The popular video models render somewhere around 720p, sometimes a little more, and the clip that looks great in a phone-sized preview starts to fall apart the moment it lands on a 4K timeline next to real camera footage. Edges go soft. Text on a sign turns to porridge. The fix everyone reaches for is an upscaler, a tool that enlarges the picture and draws in the detail it thinks should be there.
Here is the part that rarely gets said out loud. Most open upscalers cannot hold a whole 4K frame in a normal graphics card's memory, so they cheat. They cut the frame into tiles, enlarge each tile on its own and stitch the pieces back together. Each tile makes its own small guesses about texture and light. Where two tiles meet, the guesses disagree, and in motion those disagreements show up as faint seams and crawling patches that a sharp-eyed client will spot on the second viewing.
FlashVSR+, released this week by researchers from Shanghai AI Lab, CUHK and Tsinghua University, among others, is built to skip that step. Its makers say it enlarges an entire 4K frame in one piece on a single 24 GB consumer card, the RTX 4090 class. It is free, and its Apache 2.0 licence lets you use it on paid work.
I think the tiling detail is the real story, more than the speed chart the launch leads with.
What it is, in plain terms
FlashVSR+ is a video upscaler. You give it a low-resolution clip and a target size, and it hands back a larger clip with new detail drawn in. It does this in a single pass per section of video, where many AI upscalers chip away at each frame in dozens of small refinement rounds. That single pass is where most of its speed comes from.
It comes in two versions. Turbo is the fast one and the one the authors recommend for everyday high-resolution work. Base is slower and aims for better restoration when quality matters more than time.
The code went up on GitHub this week, alongside a research paper, and the model files sit on Hugging Face. There is a free web demo, which I will come back to, so you can judge it on your own footage before installing anything.
The project page includes the example most video creators will care about. A clip generated by MiniMax H3, one of this autumn's popular open video models, at 1344 by 768 pixels, enlarged to full 3840 by 2160 UHD. That is the exact job this tool is pitched at: finishing generated video so it can sit in a real edit.
Why one piece instead of tiles matters
The trick behind fitting a whole 4K frame in 24 GB is about where the model looks.
To decide what a patch of grass or a strand of hair should look like when enlarged, an upscaler needs to look at the surrounding picture. Looking at everything at once is expensive, and that cost is what forces other tools into tiles. FlashVSR+ makes a bet that most of what matters is nearby. Most of the model only looks at the neighbouring pixels and the same spot in nearby frames. A handful of its layers still look across the whole frame, so the sky on the left and the sky on the right agree with each other.
That split is the whole idea. Local looking is cheap, so memory drops. The few whole-frame layers keep the picture consistent, so there are no tile borders to disagree.
The authors claim up to twice the speed and 45 percent less peak memory from this design, compared with looking at everything everywhere. Those numbers are theirs, and the paper does not spell out every baseline. The practical result they show is the one that matters to you: no tiles, on a card a freelancer might own.
What the speed numbers mean for your afternoon
The project page publishes a chart for an RTX 4090 at 4K. Turbo manages 0.98 frames per second. Base manages 0.50. SeedVR2, an earlier open upscaler, manages 0.18 on the same chart.
Translate that into a working day. A five-second clip at 24 frames per second is 120 frames. On Turbo that is about two minutes of waiting. On Base, about four. On SeedVR2, roughly eleven.
Two minutes is the difference between upscaling only the final cut and upscaling every candidate shot so you can judge them at full size. That changes how you work. You stop guessing which generation will hold up and start checking.
A word of caution on those figures. They come from the people who built the tool, on their own test clips. They are a reasonable starting point and nothing more.
The licence matters more than the speed
There is a business story sitting next to this release. Adobe finished buying Topaz Labs, the best-known name in paid video upscaling, on September 23. Topaz stays a separate brand for now, and its technology is already showing up inside Firefly and Photoshop. For creators, that means the polished, paid route to good upscaling now runs through one very large company.
FlashVSR+ is Apache 2.0, on both the code and the model files. That means you can use it on client work, change it, and build it into your own pipeline without a revenue cap, a territory restriction or a per-minute bill. In a season where many headline video releases carry research-only or region-limited licences, a clean commercial licence is worth more than a few frames per second.
Put this into practice
Start with the free demo. The Hugging Face Space at hugging-apps/flashvsr-plus takes an uploaded clip, lets you pick an output size and keeps your original frame rate. It runs on shared free hardware, so expect a queue, and keep test clips short.
Pick a hard test clip. Use one of your own generated shots with three things in it: small text, a face at medium distance, and fine texture like hair, foliage or fabric. Those are where upscalers either earn their keep or make things up.
Judge it like a finisher. Put the result on a 4K timeline next to a plain enlargement of the original, the kind your editing app does with no AI at all. View both at 100 percent. Then play them in motion, because tile seams and flicker hide in still frames and show up when things move. If you use Premiere, After Effects or Resolve, a Difference blend between the two versions will show you exactly where the AI added or changed detail.
If you like what you see, run it yourself. You need a Linux machine with an NVIDIA card. The README walks through a Python 3.10 setup, then a single command:
python -m inference.run_stream --input clip.mp4 --mode turbo \
--output clip_4k.mp4 --height 2176 --width 3840 --decode-every 28
Use --mode base for hero shots. For clips with big, fast movement, the README suggests lowering --temporal-compression from its default of 4 to 2 or 1, which helps with motion at the cost of time. For long clips, the --decode-every setting processes the video in sections so memory stays under control.
Mind the 2176. The README asks for frame sizes divisible by 128. True UHD is 2160 lines tall, which does not divide by 128, so the nearest valid height is 2176, the figure one of the README's own examples uses. Check the size of what comes out, and if it is 2176 lines tall, crop it to 2160 in your editor. It takes ten seconds once you know, and it will confuse you for an hour if you don't.
Honest limitations
It is Linux and NVIDIA only. There is no Mac version and no way to run it on an ordinary processor. If you edit on a Mac, the free Space or a rented cloud card is your route.
There is no ComfyUI node yet. If your whole pipeline lives in ComfyUI, FlashVSR+ is a separate step with its own folder and command line for now. Someone will probably wrap it soon, but nobody has as I write this.
Setup has some sharp edges. The project offers three ways of doing its core calculation. One needs NVIDIA's compiler tools to build. The README recommends a simpler option for the RTX 4090, but you will still be installing specific versions of specific packages. Budget an evening, not ten minutes.
There are no standard quality scores. The project page shows side-by-side comparisons and claims "consistent gains in user preference," without numbers. Pictures chosen by the authors are not evidence. Your own test clip is.
It draws detail, it does not recover it. Like every AI upscaler, it invents what it thinks belongs in the gaps. Small text can come back crisp and wrong. A face can come back sharper and slightly someone else. Check names, logos and faces frame by frame before anything goes to a client.
Big motion costs more. The default settings favour speed. Fast action needs the slower motion settings, and the README is clear that this raises the processing time.
It is days old. The GitHub repository had 68 stars on launch week. That is a research release, not a product with a support desk. Expect bugs, and expect the setup instructions to change.
Where this leaves you
Upscaling used to be the boring last step. For AI video it has become the step that decides whether a shot can sit next to real footage at all, and the tools for it are splitting into two camps: a polished paid route that now belongs to Adobe, and open research tools you can own outright if you are willing to do some setup.
FlashVSR+ is a strong entry in the second camp, mostly because it stopped cutting the picture into pieces. Whether it is better than what you use now is a question only your own footage can answer. Take your worst-looking keeper shot, the one with the blurry sign and the soft face, run it through the free demo, and put it on your timeline at full size. You will know within ten minutes whether this belongs in your finishing pass.
Medium metadata
Title: FlashVSR+: Free 4K Upscaling for AI Video That Fits on One Graphics Card
Subtitle: A new open upscaler enlarges a whole 4K frame in one piece on a single consumer card, skipping the tile seams that give AI upscales away, and its Apache 2.0 licence lets you use it on client work.
Tags: Video Editing, Artificial Intelligence, AI Video, Post Production, Open Source
Estimated read time: 8 minutes