How to upscale video with SeedVR2 on a cloud GPU
Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Install from the official ByteDance-Seed/SeedVR README, download the weights that README’s example names, run the documented SeedVR2 command, and copy the output directory off the instance before you destroy it. Destroying the instance deletes its disk.
Image and video upscaling from a different repository, whose README publishes no GB figure, is How to upscale images and video with Real-ESRGAN on a cloud GPU. Video matting whose README prints no GPU GB figure, and whose CLI writes a foreground video and an alpha video, is How to run MatAnyone video matting on a cloud GPU. Another upscaler, whose low-VRAM comment prints 12G and 16G, is How to upscale images with SUPIR on a cloud GPU. Face restoration whose README prints no GB figure is How to restore faces with CodeFormer on a cloud GPU. Text-to-video and image-to-video from a different repository is How to run Wan 2.2 video generation on a cloud GPU. If the process runs out of memory: How to fix CUDA out of memory on a cloud GPU.
The README’s license line says SeedVR and SeedVR2 are licensed under the Apache 2.0. LICENSE is the Apache License, Version 2.0, January 2004. The GitHub license field on 2026-11-13 was Apache-2.0. The model cards for ByteDance-Seed/SeedVR2-3B and ByteDance-Seed/SeedVR2-7B that day had cardData.license apache-2.0 and gated false. lastModified was 2025-06-22T08:35:30.000Z and 2025-07-14T17:27:06.000Z. Both cards repeat the Apache 2.0 line. They do not print a GPU GB figure. Read LICENSE before you redistribute the program or the weights.
The commands below are copied from the upstream files named in each step. They were not run on a CloudGPU instance for this page. Anything this page adds around them is marked.
What the README says about memory
The GitHub README inference section has a GPU requirement paragraph. That paragraph names a card this page does not print. This page does not copy the paragraph. The documented multi-GPU option is the inference line below, which passes --nproc-per-node=NUM_GPUS and --sp_size NUM_SP. In projects/inference_seedvr2_3b.py, --sp_size defaults to 1, and configure_sequence_parallel calls init_sequence_parallel when sp_size > 1. The 7B file has the same function. The model cards do not print a GPU GB figure.
The README links numz/ComfyUI-SeedVR2_VideoUpscaler. That node’s hardware section prints three lines: “Minimal VRAM (8GB or less): Use GGUF Q4_K_M models with BlockSwap and VAE tiling enabled”; “Moderate VRAM (12-16GB): Use FP8 models with BlockSwap or VAE tiling as needed”; “High VRAM (24GB+): Use FP16 models for best quality and speed without memory optimizations”. A later limitations paragraph says the integration supports low VRAM systems (8GB or less with proper optimization) and that VRAM usage varies. Those sentences are the node’s. They are not in the ByteDance-Seed README. This page did not remeasure them.
GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from gpu-prices.json, updated_at 2026-11-13T20:10:32.168Z. GET /v1/public/gpu-catalog the same day (generated_at 2026-11-13T20:10:33.209Z) listed the same names and the same vram_gb values, plus Ascend 910B at 64, which is not in gpu-prices.json and is not listed here. The catalog response also includes an availability field. This page does not copy it. Every prices row has gpu_count 1. Every catalog row has min_gpu_count 1. This page does not mark a row as enough. Catalog rows at 8, 12, 16, and 24 are the vram_gb values that match numbers the ComfyUI node README prints. Which listing you can start is on Deploy.
The catalog template list had no SeedVR2 template.
| Catalog name | vram_gb |
|---|---|
| RTX 2080 | 8 |
| RTX 3080 | 10 |
| RTX 2080 Ti | 11 |
| RTX 3080 Ti | 12 |
| V100 16G | 16 |
| A30 | 24 |
| RTX 3090 | 24 |
| RTX 4090 | 24 |
| RTX 4090D | 24 |
| RTX 4080 SUPER 32G | 32 |
| RTX 5090 | 32 |
| RTX 5090D | 32 |
| V100 32G | 32 |
| A100 40G | 40 |
| A800 40G | 40 |
| A40 | 48 |
| RTX 4090 48G | 48 |
| RTX 4090D 48G | 48 |
| RTX A6000 | 48 |
| NVIDIA RTX PRO 5000 72G | 72 |
| RTX PRO 5000 72G | 72 |
| A100 80G | 80 |
| A800 80G | 80 |
| H800 | 80 |
| RTX 6000D | 83 |
| H20 96G | 96 |
| RTX PRO 6000 96G | 96 |
| RTX PRO 6000 Max-Q | 96 |
| H20-3e 141G | 141 |
Install
On Deploy, choose Raw GPU. The quick start, copied. The clone URL is the one the README prints.
git clone https://github.com/bytedance-seed/SeedVR.git
cd SeedVR
conda create -n seedvr python=3.10 -y
conda activate seedvr
pip install -r requirements.txt
pip install flash_attn==2.5.9.post1 --no-build-isolation
requirements.txt pins torch==2.3.0, torchvision==0.18.0, diffusers==0.29.1, and transformers==4.38.2. The README then says to install apex. It prints two pre-built wheels: apex-0.1-cp39-cp39-linux_x86_64.whl for python=3.9, torch=2.4.0, cuda=12.4, and apex-0.1-cp310-cp310-linux_x86_64.whl for python=3.10, torch=2.4.0, cuda=12.1. Both URLs are on ByteDance-Seed/SeedVR2-3B. The conda line above is python 3.10. The README’s next command is pip install apex-0.1-cp310-cp310-linux_x86_64.whl. It does not print a download command for the wheel. The torch pin in requirements.txt is 2.3.0. The wheel comment says torch=2.4.0. This page did not install either one and does not choose between them.
The same README says that to use color fix, put color_fix.py at ./projects/video_diffusion_sr/color_fix.py. This page did not copy that file.
Download the weights
The download block is the README’s. The comment says to take SeedVR2-3B as an example and points at https://huggingface.co/models?other=seedvr for all models. projects/inference_seedvr2_7b.py loads ./ckpts/seedvr2_ema_7b.pth and ./configs_7b/main.yaml. The README does not print a second download block for that file. The 7B model card lists seedvr2_ema_7b.pth and seedvr2_ema_7b_sharp.pth. The 7B script’s checkpoint string is seedvr2_ema_7b.pth, not the sharp file. This page did not download the repository.
# Take SeedVR2-3B as an example.
# See all models: https://huggingface.co/models?other=seedvr
from huggingface_hub import snapshot_download
save_dir = "ckpts/"
repo_id = "ByteDance-Seed/SeedVR2-3B"
cache_dir = save_dir + "/cache"
snapshot_download(cache_dir=cache_dir,
local_dir=save_dir,
repo_id=repo_id,
local_dir_use_symlinks=False,
resume_download=True,
allow_patterns=["*.json", "*.safetensors", "*.pth", "*.bin", "*.py", "*.md", "*.txt"],
)
The 3B script loads ./ckpts/seedvr2_ema_3b.pth. It also calls torch.load('pos_emb.pt') and torch.load('neg_emb.pt') from the current directory. Those two files are in the repository root. The 3B model card also lists them.
Inference
The README says you need to set the related settings in the inference files. The printed command, copied, names the 3B script. NUM_GPUS, INPUT_FOLDER, OUTPUT_FOLDER, SEED_NUM, OUTPUT_HEIGHT, OUTPUT_WIDTH, and NUM_SP are the README’s placeholders.
# Take 3B SeedVR2 model inference script as an example
torchrun --nproc-per-node=NUM_GPUS projects/inference_seedvr2_3b.py --video_path INPUT_FOLDER --output_dir OUTPUT_FOLDER --seed SEED_NUM --res_h OUTPUT_HEIGHT --res_w OUTPUT_WIDTH --sp_size NUM_SP
The argparse defaults in that file are --video_path ./test_videos, --output_dir ./results, --seed 666, --res_h 720, --res_w 1280, --sp_size 1, and --out_fps unset. The function signature’s res_h and res_w defaults are 1280 and 720. The parser defaults are the ones generation_loop receives, because main passes **vars(args). The 7B file is projects/inference_seedvr2_7b.py. The README does not print a torchrun line that names it. This page does not add that line.
When the sequence-parallel rank is 0, the script sets filename to os.path.join(output_dir, os.path.basename(path)). A single-frame sample is written with mediapy.write_image. A longer sample is written with mediapy.write_video. The basename keeps the input file’s name. With the default --output_dir, a file clip.mp4 in the input folder would be written as ./results/clip.mp4. This page did not run the script.
The 3B model card’s limitations paragraph says the methods are sometimes not robust to heavy degradations and very large motions, and that they tend to overly generate details on inputs with very light degradations, for example 720p AIGC videos, occasionally on small resolutions, for example 480p. That paragraph does not print a GPU GB figure.
ComfyUI node the README links
The SeedVR README links https://github.com/numz/ComfyUI-SeedVR2_VideoUpscaler. The node README’s manual install, copied, is for a ComfyUI checkout. How to install ComfyUI and ComfyUI-Manager on a cloud GPU is that checkout. The node README also describes ComfyUI Manager search text ComfyUI-SeedVR2_VideoUpscaler. The Linux requirements line is the one below. The Windows line is in the same README and is not copied here.
cd ComfyUI
git clone https://github.com/numz/ComfyUI-SeedVR2_VideoUpscaler.git custom_nodes/seedvr2_videoupscaler
.venv/bin/python -m pip install -r custom_nodes/seedvr2_videoupscaler/requirements.txt
That README says models are automatically downloaded on first use and saved to ComfyUI/models/SEEDVR2. It also links manual downloads at numz/SeedVR2_comfyUI, AInVFX/SeedVR2_comfyUI, and cmeka/SeedVR2-GGUF. The software section says Python 3.12+ and PyTorch 2.0+. That Python line is not the official README’s python=3.10, and that PyTorch line is not torch==2.3.0. The node’s license section says the code is released under the Apache 2.0 license. Repository HEAD on 2026-11-13 was 4490bd1f482e026674543386bb2a4d176da245b9, committed 2025-12-24T08:52:32Z.
example_workflows/SeedVR2_HD_video_upscale.json has a SaveVideo node whose widgets are video/ComfyUI, auto, and auto. The install guide says folder_paths.py sets the output directory to output. The node’s CLI help says --output is the output path and the default is auto-generated in the output/ directory, and --output_format is mp4 or png with auto-detect as the default. One printed CLI block is the low-VRAM example. It is the node’s, not the ByteDance-Seed README’s.
# Memory-optimized for low VRAM (8GB)
python inference_cli.py image.png \
--dit_model seedvr2_ema_3b-Q8_0.gguf \
--resolution 1080 \
--blocks_to_swap 32 \
--swap_io_components \
--dit_offload_device cpu \
--vae_offload_device cpu
The official repository does not print a Gradio launch. ComfyUI’s listen port is the install guide’s 127.0.0.1 port 8188. How to use SSH port forwarding on a cloud GPU is the tunnel. This page did not install the node and did not run the CLI.
When it fails
CUDA out of memory. The ByteDance-Seed README’s GPU requirement paragraph is not copied on this page, and the model cards print no GB cutoff. The node’s limitations list says that for OOM during encoding, enable VAE encode tiling and reduce tile size; for OOM during upscaling, enable BlockSwap and increase blocks_to_swap; for OOM during decoding, enable VAE decode tiling and reduce tile size; and if it is still OOM, reduce batch size or resolution. If the process raises that error, use how to fix CUDA out of memory on a cloud GPU.
“CUDA error: no kernel image is available for execution on the device” on an RTX 5090. requirements.txt pins torch==2.3.0. The apex wheel comment says torch=2.4.0 and cuda=12.1 for the cp310 wheel. The node README says PyTorch 2.0+ and names Blackwell for optional SageAttention 3. Those lines do not name compute capability 12.0 and do not pin a CUDA 12.8 wheel. The RTX 5090 guide says that card is compute capability 12.0 (sm_120) and that PyTorch 2.7 and later, on a build for CUDA 12.8 or newer, is the line that announced support. This page did not install a torch wheel and did not re-test this package on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32. That is the catalog number only.
Save the videos, then destroy
Copy the --output_dir you passed, or ./results if you left the script default, including each output that keeps the input basename, before you destroy the instance. If you used the node’s SaveVideo example, the widget prefix is video/ComfyUI under the ComfyUI output directory. If you used the node’s CLI without --output, the help text says the file is auto-generated in output/. Save your work before you destroy a cloud GPU is the checklist. The terms say data on local instance storage is permanently deleted when the instance is destroyed.
The pricing page FAQ states the billing rule in these words:
Per-minute options have a 1-minute minimum; unused prepaid minutes are refunded when you destroy the instance. Some configurations use whole-hour billing with a 1-hour minimum; unused time within a charged hour is not refunded on voluntary stop. The billing period, minimum charge and initial prepayment are shown before confirmation. No subscription.
Prices are not copied here.
Frequently asked questions
How much VRAM do the SeedVR2 files print?
The ByteDance-Seed README GPU requirement paragraph names a card this page does not print, and this page does not copy that paragraph. The SeedVR2-3B and SeedVR2-7B model cards print no GPU GB figure. The ComfyUI node the README links says 8GB or less for GGUF Q4_K_M with BlockSwap and VAE tiling, 12-16GB for FP8 with BlockSwap or VAE tiling, and 24GB+ for FP16. This page does not mark a catalog row as enough. Which listing you can start is on https://cloudgpu.app/deploy.
Which inference command does the README print?
The printed command is torchrun --nproc-per-node=NUM_GPUS projects/inference_seedvr2_3b.py with --video_path, --output_dir, --seed, --res_h, --res_w, and --sp_size. The script defaults are --output_dir ./results, --res_h 720, --res_w 1280, and --sp_size 1. projects/inference_seedvr2_7b.py loads ./ckpts/seedvr2_ema_7b.pth. The README does not print a torchrun line that names the 7B file. This page did not run the command.
Where are the outputs saved?
The 3B script writes os.path.join(output_dir, os.path.basename(path)) with mediapy.write_image or mediapy.write_video. The default output_dir is ./results. The SaveVideo widgets in the node example workflow are video/ComfyUI, auto, and auto. The node CLI says --output defaults to an auto-generated path in output/. This page did not run the script or the node.
What license does the repository print?
The README says SeedVR and SeedVR2 are licensed under the Apache 2.0. LICENSE is the Apache License, Version 2.0, January 2004. The GitHub license field on 2026-11-13 was Apache-2.0. The 3B and 7B model cards reported cardData.license apache-2.0 and gated false. The ComfyUI node README says its code is Apache 2.0. That license text is not a CloudGPU price and not a storage allowance.
Sources (read 2026-11-13, Asia/Shanghai)
- ByteDance-Seed/SeedVR
readme.md(clone, requirements, apex wheels, SeedVR2-3B download, 3B torchrun line, Apache 2.0 line, link to the ComfyUI node): blobfbdbaa4086168f74f0783b1a5dd92164ac511ac3. Repository HEADe4de8c24441a67e1b7df56abea10645059bb1185, committed 2026-01-27T06:02:23Z. The GPU requirement paragraph is not copied. https://github.com/ByteDance-Seed/SeedVR/blob/main/readme.md projects/inference_seedvr2_3b.pyandprojects/inference_seedvr2_7b.py(checkpoint paths, argparse defaults,pos_emb.ptandneg_emb.pt, output basename): read from repository HEADrequirements.txt(torch==2.3.0) andLICENSE: read from repository HEAD. GitHub license fieldApache-2.0- Hugging Face model cards
ByteDance-Seed/SeedVR2-3BandByteDance-Seed/SeedVR2-7B(Apache 2.0, no GPU GB figure,seedvr2_ema_7b_sharp.pthon the 7B card): read 2026-11-13. Model API the same day:gatedfalse,cardData.licenseapache-2.0,lastModified2025-06-22T08:35:30.000Z and 2025-07-14T17:27:06.000Z - numz/ComfyUI-SeedVR2_VideoUpscaler README (8GB, 12-16GB, 24GB+, install,
ComfyUI/models/SEEDVR2, CLI--output, low-VRAM CLI block, Apache 2.0): blob197ad2d8880c44478beb72f7b21578ecfbc7028c. Repository HEAD4490bd1f482e026674543386bb2a4d176da245b9, committed 2025-12-24T08:52:32Z example_workflows/SeedVR2_HD_video_upscale.json(SaveVideo widgetsvideo/ComfyUI,auto,auto): read from that repository HEAD- Public GPU memory: https://cloudgpu.app/gpu-prices.json (
updated_at2026-11-13T20:10:32.168Z) and https://cloudgpu.app/v1/public/gpu-catalog (generated_at2026-11-13T20:10:33.209Z).GET /v1/public/compute-capabilitiesreturned feature flags and no GPU list. The catalog had no SeedVR2 template
Cards you can start are on the Deploy page. Prices are on https://cloudgpu.app/pricing and are not repeated here.
Last updated: 2026-11-13 (Asia/Shanghai).