⚙️ RTX Batch Upscale (Advanced)
The same RTX engine, with every lever exposed
- output_path
- preview_frames
- info
The Simple upscale node hides everything behind one dial. This is the same engine with the levers pulled out - exact target resolution, chunk size, codec, CRF. You reach for it when a long render keeps dying on the defaults, when you want a specific output resolution rather than a multiplier, or when you care what the encoder is doing.
Same pipeline under the hood: NVIDIA VFX SDK (the Maxine / "AI for Media" stack) upscales frames on your RTX GPU in batches, and raw RGB streams straight into an FFmpeg pipe with no temp files on disk. Same hard requirements, too: an RTX GPU with Tensor Cores, the nvvfx module (pip install nvidia-vfx - it is not on PyPI as nvvfx), and FFmpeg on your PATH. If nvvfx is missing you'll get the node's blunt "RTX upscaling requirements not met!" and nothing else to go on.
The inputs that matter
Don't touch most of these on your first run. These are the ones with real consequences:
scale_mode-factorusesscale_factor(1.0–4.0);resolutionignores the factor and upscales totarget_width/target_heightinstead. In resolution mode the output is rounded to a multiple of 8, which the SDK wants.chunk_size(default 80) - frames read per chunk before batching. Lower it if a long video is making your machine sweat; it's the streaming-memory dial.batch_size(default 4) - frames processed on the GPU per pass. Lower = less VRAM. On 6–8GB, start at 2.codec(defaulth264_vhs) - the one that reads like a joke.h264_vhsis the pack's internal name for "libx264 through the bulletproof FFmpeg pipe", not a real codec. The other options -mp4v,xvid,mjpeg,h264- fall back to OpenCV's built-in writer, which is simpler but has none of the crash-hardening. Unless you have a reason, leave it onh264_vhs.crf(default 19, 0–51) - quality. The tooltip says it straight: 0 is lossless, 18 is visually lossless, 23 is FFmpeg's default, 51 is worst. 18–19 is the sweet spot for upscaled video.output_subfolderandoutput_filename- where and what it saves. Leave the filename empty for auto-generatedupscaled_<name>_<timestamp>.mp4; if you do name it, it'll append.mp4for you. Files go underoutput/.
Outputs are the same trio as the Simple node: output_path (STRING, where it saved), preview_frames (IMAGE - first/middle/last frame, for a Preview Image node), and info (STRING with resolution, codec, audio status, render time). return_preview toggles the preview tensor if you want to skip the extra work.
Installing it
Identical to the rest of the pack - ComfyUI Manager (search "ComfyUI-RTX-Video-Suite") or:
cd ComfyUI/custom_nodes
git clone https://github.com/uczensokratesa/ComfyUI-RTX-Video-Suite.git
Restart ComfyUI. Then the real install: the VFX SDK. Driver floors are worth knowing - Windows 570.65+ (595+ for TCC devices), Linux 570.190+ / 580.82+ / 590.44+ - and if you run ComfyUI in Docker or Podman, you need the NVIDIA container toolkit and GPU capabilities passed through, or the SDK won't see the card.
Common issues
- OOM on a long render - this node's whole reason to exist. Drop
batch_sizeto 2, thenchunk_sizefrom 80 toward 32, andqualitytoHIGH. In resolution mode, check you didn't set atarget_width/target_heightthat's bigger than your VRAM realistically handles. - In resolution mode nothing changes - you're still in
factormode, so the factor is winning. Switchscale_mode. - Output plays but won't seek / looks odd - the default pipe encodes yuv420p with bt709 color flags, which is the right call for web playback. The OpenCV fallback codecs don't, which is one more reason to stay on
h264_vhs. - Audio missing -
add_audiooff, or the source had no audio stream to copy (the node skips silently in that case). If your source has audio and it's missing from the output, turnadd_audioback on.
The Advanced node doesn't make the upscale better than the Simple one - the GPU does the same work. It makes it survivable: the right chunk and batch settings are the difference between a 20-minute render that finishes and one that dies at 40%. That's the whole game.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| video_path | STRING | Connect from Video Path Picker node | |
| output_subfolder | STRING | upscaled_videos | Subfolder in output/ directory |
| output_filename | STRING | Leave empty for auto-generated name | |
| scale_mode | COMBO | factor | 2 options: factor, resolution |
| scale_factor | FLOAT | 2.01–4 | — |
| target_width | INT | 192064–8192 | — |
| target_height | INT | 108064–8192 | — |
| quality | COMBO | ULTRA | 4 options: LOW, MEDIUM, HIGH, ULTRA |
| chunk_size | INT | 8016–400 | — |
| batch_size | INT | 41–12 | — |
| codec | COMBO | h264_vhs | h264_vhs = VHS quality (bulletproof I/O) |
| crf | INT | 190–51 | Quality (0=lossless, 18=visually lossless, 23=default, 51=worst) |
| add_audio | BOOLEAN | true | — |
| return_preview | BOOLEAN | true | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| output_path | STRING | — |
| preview_frames | IMAGE | — |
| info | STRING | — |