沐阳 H3 · 二采后 VSR 增强(原尺寸)
Sharpening at 1:1, in the one slot where RTX VSR survives
- images
- images
The name is not a lie for once, but it's an easy one to misread: this is not an upscaler. H3VsrEnhance runs NVIDIA's RTX Video Super Resolution over your second-pass frames at the resolution you already have. One input, one output, no width or height anywhere in its schema. You use it when the second pass was "same resolution" and you want the frames de-noised and sharpened before delivery.
Why it has to sit exactly there, in the pack's own framing: same-resolution second pass has no scaling step at all, so the upscale method you picked is a no-op in that mode, and if you run VSR anywhere earlier the next VAE encode smooths the enhancement away. After the second-pass decode is the one place where VSR both takes effect and survives.
How it works
It's a wrapper around nvvfx.VideoSuperRes at QualityLevel.ULTRA, and most of the interesting engineering is about surviving that library rather than calling it.
First, it refuses any canvas whose width or height isn't a multiple of 8. That's not fussiness: VSR rounds its output to a multiple of 8, so an unaligned input would come back a different size and this node would silently become a resize instead of an enhancement. Every H3 canvas is 32-aligned, so in practice you'll only hit this if you're feeding it something from elsewhere.
Then it doesn't call VSR in-process at all. Frames are written out to a float16 memory-mapped file in ComfyUI's temp directory in batches of chunk_frames, and a separate Python process (rtx_vsr_worker.py, spawned with your own interpreter) does the work frame by frame on the GPU and writes another memmap back. The worker deliberately terminates via os._exit, because some Windows builds of nvvfx 0.1.0.1 block forever while destroying a VideoSuperRes effect - the isolated process means that hang kills a helper instead of your ComfyUI session. There's a timeout of max(120, 60 + 2 × frames) seconds, after which the child is killed and you get a proper error instead of a frozen queue. Frames come back as fp16 on CPU.
chunk_frames (default 4, 1–64) only controls how big a batch gets handed to that isolated process. Per the author's own tooltip, VSR itself always walks the frames one at a time on the GPU - so don't expect a bigger chunk to buy you speed.
What you actually set
images is the second-pass decode. chunk_frames is the staging batch, and honestly the default is fine; lower it if you're tight on system RAM, since the staging file is frames × H × W × 3 × 2 bytes. Output is images, same dimensions, same float16 dtype, ready to CreateVideo/SaveVideo.
Be clear about what you're buying. The community comparison of VSR against generative restorers is settled on this point: VSR "cleans up the image and can fix pixelation amazingly, but it's not going to add fine details" - closer to a very good scaler than to a diffusion model. On an already-clean H3 second pass that's exactly the trade you want, because there's no new texture being invented off your film grain. One caveat worth testing on your own footage: any purely per-frame enhancement can chatter on fine repeating texture frame to frame. Run a short segment over patterned wallpaper or a striped costume before committing a whole job.
Install
Same pack install as the rest of it:
cd ComfyUI/custom_nodes
git clone https://github.com/civilcoco/ComfyUI-MiniMaxH3-Myang.git
The one genuinely fiddly part is the runtime, and it's not in the pack: RTX VSR needs NVIDIA's nvidia-vfx package installed separately, plus a working CUDA GPU. The pack declares no Python dependencies at all, so nothing pulls it in for you.
And here's the failure everyone hits: nvidia-vfx frequently fails to install through requirements files or the Manager, which shows up as an import error the moment this node runs. Install it straight from NVIDIA's index:
# Windows portable
python_embeded\python.exe -m pip install -U --no-build-isolation nvidia-vfx --index-url https://pypi.nvidia.com
# manual / venv install
python -m pip install -U --no-build-isolation nvidia-vfx --index-url https://pypi.nvidia.com
The --no-build-isolation and the --index-url are both load-bearing; plain pip install nvidia-vfx is the thing that quietly doesn't work.
Other hit-you-in-the-face errors: NVIDIA RTX VSR 需要可用的 CUDA 显卡 if CUDA isn't available, and the timeout message if a render is huge enough to blow the per-run budget. And since this is an RTX-only path - it's the same NVIDIA enhancement stack that ComfyUI's own ComfyUI_NVIDIA_RTX_Nodes wraps - a non-RTX card gets you nothing. Unlike the pack's other rough-cut internals, this node sits in the plain 沐阳 H3 category, so it's meant to be found and wired by hand.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| chunk_frames | INT | 41–64 | 只影响送进隔离进程的分批大小;VSR 内部始终逐帧过显卡 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |