Nodes/ComfyUI RTX Video Suite/⚙️ RTX Batch Upscale (Advanced)
ComfyUI Node

⚙️ RTX Batch Upscale (Advanced)

The same RTX engine, with every lever exposed

By uczensokratesa·Created 6 months ago·Updated 5 months ago· 9
⚙️ RTX Batch Upscale (Advanced)
    • output_path
    • preview_frames
    • info
    video_path
    output_subfolderupscaled_videos
    output_filename
    scale_modefactor
    scale_factor2.0
    target_width1920
    target_height1080
    qualityULTRA
    chunk_size80
    batch_size4
    codech264_vhs
    crf19
    add_audiotrue
    return_previewtrue

    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 - factor uses scale_factor (1.0–4.0); resolution ignores the factor and upscales to target_width / target_height instead. 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 (default h264_vhs) - the one that reads like a joke. h264_vhs is 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 on h264_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_subfolder and output_filename - where and what it saves. Leave the filename empty for auto-generated upscaled_<name>_<timestamp>.mp4; if you do name it, it'll append .mp4 for you. Files go under output/.

    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_size to 2, then chunk_size from 80 toward 32, and quality to HIGH. In resolution mode, check you didn't set a target_width/target_height that's bigger than your VRAM realistically handles.
    • In resolution mode nothing changes - you're still in factor mode, so the factor is winning. Switch scale_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_audio off, 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, turn add_audio back 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.

    Categoryvideo/upscaling

    Inputs (14)

    NameTypeDefaultDescription
    video_pathSTRINGConnect from Video Path Picker node
    output_subfolderSTRINGupscaled_videosSubfolder in output/ directory
    output_filenameSTRINGLeave empty for auto-generated name
    scale_modeCOMBOfactor2 options: factor, resolution
    scale_factorFLOAT2.01–4
    target_widthINT192064–8192
    target_heightINT108064–8192
    qualityCOMBOULTRA4 options: LOW, MEDIUM, HIGH, ULTRA
    chunk_sizeINT8016–400
    batch_sizeINT41–12
    codecCOMBOh264_vhsh264_vhs = VHS quality (bulletproof I/O)
    crfINT190–51Quality (0=lossless, 18=visually lossless, 23=default, 51=worst)
    add_audioBOOLEANtrue
    return_previewBOOLEANtrue

    Outputs (3)

    NameTypeDescription
    output_pathSTRING
    preview_framesIMAGE
    infoSTRING