Nodes/ComfyUI-STARWrapper/STAR Video Super Resolution (All-in-One)
ComfyUI Node

STAR Video Super Resolution (All-in-One)

The diffusion-powered video upscaler that actually reads your prompt

By vjumpkung·Created 9 months ago·Updated 12 days ago· 3
STAR Video Super Resolution (All-in-One)
  • images
  • images
modelLight Degradation
precisionfp16
prompta good video
resolution720
max_chunk_len32
cfg7.5
samplerdpmpp_2m_sde
solver_modefast
steps15
seed42
vae_decode_chunk1

Most video "upscalers" you can drop into ComfyUI are pixel stretchers - ESRGAN passes and Lanczos that make the image bigger without adding anything. STAR is not that, and if you've ever run SUPIR on a still you already know what it feels like. It's a full diffusion model that treats upscaling as generation: it denoises your low-res frames back to life, guided by a text prompt, 2x to 4x bigger, with temporal coherence across the clip. Slow, VRAM-hungry, occasionally magical - and a genuinely different tool from the RTX real-time nodes or a SeedVR2 pass.

STAR stands for Spatial-Temporal Augmentation with Text-to-Video Models for Real-World Video Super-Resolution, from NJU-PCALab (Nanjing University, arXiv 2501.02976). This node is a wrapper around it by vjumpkung - a single-node pack that bundles the whole pipeline so you never touch the research code. It's a niche one, and the lack of community noise around it (zero real footprint on r/comfyui as of mid-2026) tells you it hasn't gone mainstream. It's not a beginner's first upscaler. It's the one you reach for when a clip is genuinely low-res and soft and you want detail invented, not just pixels.

How it works

Under the hood the node runs a four-piece pipeline. Your frames get upscaled to the target resolution and normalized, then encoded into latent space by Stable Video Diffusion's temporal VAE. The model adds noise, then a text-to-video U-Net (I2VGen-XL-based) with a ControlNet-style structure hint denoises it back over your chosen step count, conditioned on your prompt plus a built-in negative. Finally a chunked temporal-VAE decode turns the latents back into frames, and an AdaIN color fix (borrowed from sd-webui-stablesr) corrects the color drift diffusion upscalers love to introduce. The noise level is fixed internally - you don't set denoising strength, the model does.

Long clips are handled by chunking: if your frame count exceeds max_chunk_len, the video is sliced into overlapping windows with a 50% overlap so the seams don't show.

The inputs that matter

  • model - Light vs Heavy Degradation. Pick based on how wrecked the source is; heavy is for genuinely degraded footage. Each is a separate ~2-3GB weight file from the SherryX/STAR HF repo, auto-downloaded on first use.
  • images - a IMAGE tensor of frames, e.g. straight from VHS_LoadVideo (the included example workflow uses exactly that).
  • resolution - target for the shorter side, aspect ratio preserved. 720 is fine for 2x on a 360p source; don't chase 2160 unless you have the VRAM.
  • prompt - this is the party trick. "a high quality video" or describing the scene genuinely steers what detail gets invented.
  • steps / cfg / sampler / solver_mode - defaults (15, 7.5, dpmpp_2m_sde, fast) are sane; bump steps toward 30-50 if results look mushy.
  • max_chunk_len - the VRAM valve. Lower it when you OOM.
  • precision - fp16 or fp8. fp8 roughly halves model memory, and the code falls back to fp16 if your torch build can't do it.
  • seed - deterministic roll for reproducibility.

Output is a single IMAGE tensor (upscaled frames, 0-1 range) - wire it into VHS_VideoCombine to write the mp4.

Install

ComfyUI Manager: search ComfyUI-STARWrapper and click install. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/vjumpkung/ComfyUI-STARWrapper.git
cd ComfyUI-STARWrapper
pip install -r requirements.txt

Then restart. The requirements list is heavy and pinned in ways that can bite: open-clip-torch==2.20.0, numpy<2, plus av, opencv-python, fairscale, torchsde, diffusers[torch]. The README explicitly wants xformers installed first, matched to your PyTorch version (the bundled install.py attempts that match for you); the author notes CUDA 13 builds don't work.

Where people get burned

VRAM. This loads a U-Net, a structure network, an OpenCLIP text encoder and the SVD temporal VAE at once - think many GB even in fp16. If you OOM, lower max_chunk_len first, then the resolution. The two model files eat ~2-3GB of disk each on top. First run needs internet for the model, the VAE and the CLIP encoder, so a firewall or a flaky HF connection stalls at startup. And the pinned open-clip-torch / numpy<2 can fight other nodes in a big install - if unrelated nodes start erroring after this lands, check those versions. Don't expect real-time: a diffusion upscaler that rewrites detail takes minutes per short clip, not seconds. That's the price of the prompt-guided magic, and it's why the fast NVIDIA nodes and STAR aren't really competitors.

Categoryvideo/upscaling

Inputs (12)

NameTypeDefaultDescription
imagesIMAGE
modelCOMBOLight DegradationSTAR checkpoint trained for the source degradation level.
precisionCOMBOfp16UNet weight precision. FP8 requires compatible PyTorch and hardware.
promptSTRINGa good video
resolutionINT72016–16384
max_chunk_lenINT321–128Maximum temporal window processed by the diffusion model.
cfgFLOAT7.50–20Classifier-free guidance strength.
samplerCOMBOdpmpp_2m_sde2 options: heun, dpmpp_2m_sde
solver_modeCOMBOfast2 options: fast, normal
stepsINT151–100
seedINT420–18446744073709550000
vae_decode_chunkoptINT11–8Frames decoded per VAE pass. One minimizes peak VRAM; increase only when enough VRAM is available. This value no longer invalidates diffusion sampling in the modular workflow.

Outputs (1)

NameTypeDescription
imagesIMAGE