Replicate papina/seedvr2
SeedVR2 for video, via Replicate β the 7B model without the data-center GPU
- VIDEO
- IMAGE
- API_JSON
SeedVR2 is the upscaler that the community stopped arguing about and started just using - the KB's panel calls it "the current default image upscaler as of mid-2026," one-step diffusion restoration that leaves the picture alone instead of re-inventing it. But here's the thing the hype threads gloss over: SeedVR2 is built for video, and on local hardware that means "I quickly realized I'd need datacenter class GPUs" for the video path. This node is papina's 7B build of SeedVR2 on Replicate, so the video upscaling runs on their GPUs. Your machine just sends frames and collects the result.
So what this node is really for: video upscaling that your own box can't do. The 7B variant is the bigger, quality-end model, and Replicate is one of the few places a hobbyist can actually run it on a sequence without renting a rig. The KB's upscaling essay notes SeedVR2's reputation on video - beating FlashVSR on heavy upscales (256px to 1024px) in direct comparisons - so this is a legitimately strong choice if you have low-res footage and no GPU.
Inputs that matter:
VIDEO(typed IMAGE, so it takes frames) - the video to upscale. You feed it frames, it returnsIMAGE(the upscaled frames as a batch tensor) plusAPI_JSON.resolution(default 1080) andmax_resolution(default 3840) - the scale ceiling. 1080p is the default target; push towardmax_resolutionfor 4K output and watch the cost climb.cfg_scale(default 1, 0β15) - the guidance dial. This is a restoration model; low values (around 1) are the point. Crank it and you're asking the model to invent more, which is where SeedVR's "adds detail that wasn't there" behavior turns into hallucination.sample_steps(default 1, max 4) - the one-step model runs in one step by design; raising it is for edge cases, not a quality lever you should normally touch.sp_size(1β4) - spatial tile size, a memory/quality tradeoff the 7B model needs on big frames.fps(default 24) - how to interpret the input frames when outputting.seed(default -1),output_format(png default),output_quality(90),apply_color_fix(default off) - the usual suspects.apply_color_fixon can help if the output shifts color relative to the source; off keeps the raw restoration.model_variant- "7b", and in this schema that's the only choice. So the model-size question is already decided for you here; this is the quality end.dry_run/force_rerun- pack-wide test-and-rerun controls.
The KB's quantisation warning matters less here (you're not choosing a local quant), but the texture warning still applies: SeedVR2's texture synthesis degrades on some content, and every generative rung rewrites faces. For video with people in it, check the output before committing to a long render.
Install is the pack standard - ComfyUI Manager (search ComfyUI-API-DockerCPU), or:
cd ComfyUI/custom_nodes
git clone https://github.com/trustypangolin/ComfyUI-API-DockerCPU
cd ComfyUI-API-DockerCPU
pip install -r requirements.txt
Set REPLICATE_API_TOKEN and restart; it's under π¨ DockerCPU API/π¨ Replicate.
The economics: video upscaling is where the bill gets real - you're paying per frame at high resolution, and a 30-second clip at 1080β4K is a lot of frames. Dry-run on a few frames first, check API_JSON, and batch your long clips deliberately. And if someone tells you SeedVR2 "looks smoothed out," ask which settings they used before you judge the model - the KB documents that the "OP messed up SeedVR2" pattern is usually misconfiguration, and cfg_scale and sp_size are the usual suspects.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| dry_run | BOOLEAN | false | β |
| force_rerun | BOOLEAN | false | β |
| VIDEO | IMAGE | β | |
| cfg_scaleopt | FLOAT | 1.000β15 | β |
| sample_stepsopt | INT | 11β4 | β |
| sp_sizeopt | INT | 11β4 | β |
| fpsopt | INT | 241β120 | β |
| seedopt | INT | -1 | β |
| output_formatopt | COMBO | png | 3 options: png, webp, jpg |
| output_qualityopt | INT | 9010β100 | β |
| apply_color_fixopt | BOOLEAN | false | β |
| model_variantopt | COMBO | 7b | 1 options: 7b |
| resolutionopt | INT | 108016β16384 | β |
| max_resolutionopt | INT | 38400β16384 | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | β |
| API_JSON | STRING | β |