Nodes/ComfyUI-FunPack/FunPack Upscale Video
ComfyUI Node

FunPack Upscale Video

Upscale the finished clip and keep the sound

By digital-garbage·Created about a year ago·Updated about 14 hours ago· 20
FunPack Upscale Video
      ◄filename►
      ◄subfolder►
      ◄typeoutput►
      ◄upscale_model▾►
      ◄rtx_options{}►

      Upscaling a video in ComfyUI normally means building a graph: load frames, run an upscale model per frame, save frames, then go find ffmpeg and re-mux the audio you just lost. FunPack Upscale Video skips all of that. You give it a filename, it reads the finished file, pushes every frame through an upscaler, writes a new file, and the fps and the sound come along for the ride.

      How it works

      The node resolves filename inside the folder you name with type (output or temp) and subfolder, then streams the video through one of two very different engines, chosen in upscale_model:

      A model from ComfyUI/models/upscale_models. It loads through ComfyUI's own UpscaleModelLoader and applies ImageUpscaleWithModel per frame. .safetensors is what you want; these are the ESRGAN-family 2×/4× spatial models. They invent detail. They do not know about time, so they won't smooth flicker - each frame is upscaled on its own merits.

      NVIDIA RTX Super Resolution. This appears in the dropdown only when the nvidia-vfx add-on is enabled, and it's a completely different tool: hardware video enhancement, fast, and closer to a very good Lanczos than to a diffusion model. On already-clean footage the community verdict is that it looks more natural than a generative upscaler precisely because it doesn't invent. It won't give you pores, lashes or fabric weave, and it can't fix a face.

      Your rtx_options JSON controls it, and the option names deliberately mirror NVIDIA's own RTX node so a setup you already have carries over:

      {"quality": "ULTRA", "resize": "scale", "scale": 2.0, "strength": 1.0, "tenbit": false}
      

      quality accepts BICUBIC, the four levels LOW/MEDIUM/HIGH/ULTRA, and the prefixed variants DENOISE_*, DEBLUR_*, HIGHBITRATE_*, plus STREAMING_MEDIUM and STREAMING_ULTRA. resize is scale (1.0–4.0) or size with width/height from 64 to 8192. Output dimensions snap to multiples of 8.

      Here's the detail worth internalising: DENOISE_* and DEBLUR_* keep the clip at its own size. They're a clean-up pass, not an upscale. If you asked for 2× and got 1× back, that's why.

      Inputs and outputs

      Required: filename, subfolder, type, upscale_model. Optional: rtx_options (default {}, so the defaults apply). There are no outputs - this is a terminal node, and it produces a file on disk under the output folder, with the engine tagged into the name so you can tell a 4× model run from an RTX run by looking at it.

      Install

      cd ComfyUI/custom_nodes
      git clone https://github.com/olivv-cs/ComfyUI-FunPack
      pip install -r ComfyUI-FunPack/requirements.txt
      

      Restart afterwards. Two extra notes specific to this node: nvidia-vfx is an add-on, not a requirements.txt entry - switch RTX Super Resolution on in Settings ▸ Modules and FunPack installs it on the next ComfyUI start. And video muxing means you want a working ffmpeg on the box; FunPack's own Settings ▸ Ready to generate? panel checks for it, which is a better five seconds than discovering it after a twenty-minute upscale.

      ComfyUI Manager works too - search ComfyUI-FunPack - but the Registry copy can trail the repo, so verify in Settings ▸ About FunPack.

      Troubleshooting

      "… is not in the output folder (anymore)." The file has to exist on that machine at queue time. Renders get cleaned up, temp files especially - check type isn't temp when you meant output.

      "RTX options are not valid JSON." Strict JSON, and the pack refuses values out of range by name rather than quietly clamping them - which is annoying right up until you'd otherwise have shipped a "2×" that wasn't.

      The dropdown has no RTX option. The add-on isn't enabled, or it hasn't installed yet. FunPack only lists the entry when the add-on is live.

      A 4× pass on a 15-second clip is taking forever. You're running a spatial model over every frame and holding the model in VRAM the whole time. If you only need pixels and not invention, RTX Super Resolution is the cheap answer - it's the one I'd reach for on a clean render and the one I'd avoid on a soft, degraded source.

      CategoryFunPack/Output

      Inputs (5)

      NameTypeDefaultDescription
      filenameSTRING—
      subfolderSTRING—
      typeCOMBOoutput2 options: output, temp
      upscale_modelCOMBOFrom ComfyUI/models/upscale_models (use .safetensors), or NVIDIA RTX Super Resolution.
      rtx_optionsoptSTRING{}NVIDIA RTX Super Resolution options as JSON: quality, resize, scale, width, height, strength, tenbit.

      Outputs (0)

      No outputs