The #1 mistake with a video upscaler AI like Video2X is installing the wrong era of the project – old Python 4.x/5.x forks, random SourceForge mirrors of dead builds, or assuming it wants CUDA – then blaming the tool when Vulkan never sees a GPU. Video2X 6.4.0 is a C/C++ rewrite. Get the official 6.4.0 assets, prove Vulkan devices, then upscale.
Video2X stays free under GNU AGPL v3, local, and offline: super-resolution and frame interpolation through Real-ESRGAN, Real-CUGAN, Anime4K/libplacebo shaders, and RIFE on ncnn/Vulkan. 6.4.0 shipped 24 Jan 2025 (RIFE v4.25/v4.26, stronger Linux AppImage pathing, PTS-less inputs, metadata copy, Qt6 queue fixes). As of that release train, you’re deploying jobs – not collecting screenshots.
System requirements before you touch an installer
Miss these and the rest is noise. Hardware floors come straight from the official README.
| Piece | Minimum (official) | Practical note |
|---|---|---|
| CPU | AVX2 – Intel Haswell (Q2 2013+) or AMD Excavator (Q2 2015+) | No AVX2 → precompiled builds aren’t for you; build from source or use Colab |
| GPU | Vulkan: NVIDIA Kepler+, AMD GCN 1.0+, Intel HD 4000+ | Video2X does not use CUDA; Vulkan drivers must work |
| OS | Windows 64-bit or Linux (AppImage / containers / distro packaging) | README paths are Windows + Linux; no official macOS desktop binary called out there |
| Disk | Installer/binary + model weights + final output size | 6.x needs no huge mid-job frame dump – only final output space (README 6.0 highlights) |
| RAM/VRAM | Not hard-coded in README | Third-party write-ups often cite ~4 GB VRAM for 1080p×2; long jobs can fill system RAM hard (see community issue threads such as #1397-style reports) |
Official download source for Video2X 6.4.0
Stick to project channels only:
- Releases:github.com/k4yt3x/video2x/releases/tag/6.4.0 (or
/releases/latestwhen you intentionally want whatever is newest) - Docs hub:docs.video2x.org
- Mirror when GitHub is blocked: files.k4yt3x.com
- Containers:
ghcr.io/k4yt3x/video2x:6.4.0(registry also carrieslatest)
Windows names that matter: video2x-qt6-windows-amd64-installer.exe (GUI) and video2x-windows-amd64.zip (CLI). Linux ships Video2X-x86_64.AppImage. Skip store clones and 4.x mirrors.
Install Video2X 6.4.0 step by step
Three paths. Pick one primary; don’t stack half-copies on PATH.
Path A – Windows Qt6 installer (default desktop path)
- Download
video2x-qt6-windows-amd64-installer.exefrom the 6.4.0 (or latest) release assets. - Run the installer. Directory + shortcut prompts match the Windows Qt6 install doc.
- Launch once. First run may fetch model weights – community summaries put that cache around ~1.2 GB. Leave disk headroom.
- Refresh GPU drivers so Vulkan ICDs exist before a long encode.
Path B – Windows CLI zip (scripting / headless-friendly)
PowerShell pattern from the Windows CLI install page – still verify the tag is the 6.4.0 line before you automate:
$latestTag = (Invoke-RestMethod -Uri https://api.github.com/repos/k4yt3x/video2x/releases/latest).tag_name
curl -LO "https://github.com/k4yt3x/video2x/releases/download/$latestTag/video2x-windows-amd64.zip"
New-Item -Path "$env:LOCALAPPDATAProgramsvideo2x" -ItemType Directory -Force
Expand-Archive -Path .video2x-windows-amd64.zip -DestinationPath "$env:LOCALAPPDATAProgramsvideo2x" -Force
Add %LOCALAPPDATA%Programsvideo2x to your user PATH, open a new terminal, then jump to verification.
Path C – Docker / Podman
The catch is Vulkan inside the container, not “CUDA flags you remember from other tools.” Host drivers + (on NVIDIA) the NVIDIA Container Toolkit. Pinned example from the container guide:
docker run --gpus all -it --rm -v "$PWD":/host -w /host
ghcr.io/k4yt3x/video2x:6.4.0
-i input.mp4 -o output.mp4 -p realesrgan -s 4
--realesrgan-model realesr-animevideov3
No distro package handy? AppImage from the same release: chmod +x Video2X-x86_64.AppImage, run it.
First-time configuration that actually matters
Skip model beauty contests until the process sees the discrete GPU. GUI: preferences / device list → pick the card you paid for. CLI: inventory first.
Pro tip:
video2x --list-gpus(or-l) before any multi-hour job. Both Intel UHD and an RTX showing up? Pass-gwith the discrete index. Wrong Vulkan device is the silent speed killer – this is the one check that belongs on a sticky note.
Smallest CLI smoke test once PATH works (command-line docs):
video2x -i sample.mp4 -o sample_2x.mp4 -p realesrgan -s 2 --realesrgan-model realesr-animevideov3 -g 0
Five to fifteen seconds of footage, 2×, then climb to 4× / longer sources.
Funny how the hard part stopped being “install Python deps” after the 6.x rewrite – and became “prove which Vulkan device you actually handed the process.”
Verify the install works
A Start Menu icon is not a test.
video2x --help
video2x --list-gpus
Help text without missing-DLL chaos. At least one GPU line with a believable Vulkan/driver pair. Ten-second sample finishes? You’re deployed.
No local GPU worth using? Official README still points at the project’s Google Colab notebook – free T4/L4/A100-class sessions with fair-use limits. Don’t farm it 24/7.
Common install errors and fixes
These keep showing up in issues – not lab fiction.
vkEnumeratePhysicalDevices failed -3in Docker – Host drivers alone aren’t enough. Install NVIDIA Container Toolkit (or pass--device /dev/drion Intel/AMD), retry with explicit NVIDIA device nodes /--runtime nvidia, then--privilegedif still dead. That ladder is what the container docs walk through.- Empty GPU list / crawl-speed upscale – Drivers first. Hybrid laptops: force the discrete index with
-g(see sticky-note check above). Video2X will not “prefer RTX” for you. - Binary dies on old CPUs – No AVX2 means prebuilt 6.4.0 isn’t your path. Colab or a from-source build; don’t hoard random older EXEs.
- Multi-hour jobs thrash system RAM – Reports around very long runs (including discussion tied to issues like #1397) show RAM saturating while VRAM still looks calm. Close browsers/editors, cut concurrency, split the timeline.
- Missing older RIFE weights – 6.4.0 adds v4.25 and v4.26 in-tree; not every historical RIFE file ships in the download set. Use what the release bundles unless you already know where extra weights go.
Upgrade from older Video2X and uninstall cleanup
4.x/5.x Python stacks are a different product. Delete or uninstall the old tree so PATH can’t resolve a ghost video2x, then put 6.4.0 on a clean path. Don’t assume ancient configs or model caches migrate – re-select engines. Docker users: docker pull ghcr.io/k4yt3x/video2x:6.4.0 and fix compose tags.
Windows Qt6 build leaves via Settings → Apps. Zip layout: delete %LOCALAPPDATA%Programsvideo2x and the PATH entry; wipe custom model folders if you made any. Linux: drop the AppImage, or remove the container image with docker image rm ghcr.io/k4yt3x/video2x:6.4.0. Finished videos stay where you wrote them.
Once the binary lists the GPU you paid for, the rest is patience and disk for the finished file.
FAQ
Is Video2X 6.4.0 really free for commercial use?
AGPL-3.0. Run it freely. Ship modified versions over a network and source-sharing duties kick in. Read the license for your distribution model – “free download” is not blanket commercial indemnity.
GUI or CLI – which should I install?
Qt6 installer when you want queues, prefs, and a visual device picker. CLI zip (or the container entrypoint) when the job is a script, CI step, or headless box. Same engines either way; only the workflow changes. Forty files overnight? Loop the CLI with a pinned -g.
Why is my upscale using the laptop’s Intel GPU?
Because Vulkan enumerated it and nothing forced the discrete adapter. If --list-gpus never shows the RTX/AMD card, this is a driver or hybrid-graphics problem upstream of Video2X – fix the ICD/exposure first. When both adapters appear, pick the fast index in the GUI or with -g; the upscaler cannot invent a device the loader hides.
Next action: grab video2x-qt6-windows-amd64-installer.exe (or the 6.4.0 AppImage/container tag), run video2x --list-gpus, and upscale a 10-second sample before you queue a full movie.