AetherScale • Super Resolution
NVIDIA's hardware video upscaler, now a ComfyUI node
- image
- image
- stats
This is the node that lets your RTX card's Video Effects hardware path do the upscaling instead of another diffusion pass. If you've ever eyeballed NVIDIA's RTX Video Super Resolution in a browser and wished you could run that engine over your own frames inside ComfyUI - this is it. It's part of the AetherScale pack, which wraps NVIDIA's nvidia-vfx SDK (the same family of engines behind the official Comfy-Org RTX nodes) and adds long-video memory handling the stock nodes skip.
Before you wire it up, know which job you're giving it. This is a more-pixels upscaler, not a more-detail one. It interpolates and cleans; it does not invent pores, lashes, or fabric weave. That's why the community consistently reads NVIDIA's output as "more natural" than generative upscalers on already-clean footage - and it's real-time fast while SeedVR2 is counting seconds. If your source is genuinely soft and you want a model to hallucinate detail that was never there, this is the wrong tool and you know where the right one lives.
How it works
On first run the node lazily installs NVIDIA's nvidia-vfx wheel into its own private vendor/ directory (via pip, pinned to 0.1.0.1) - not into ComfyUI's global Python. auto_bootstrap defaults to true, so it just happens; you need internet once. The effect is built per configuration and cached (effect_cache = single is fine), then it processes frame-by-frame rather than shoving a whole batch onto the GPU. Big outputs can drop to FP16 and spill to memory-mapped CPU storage, which is how a long 4K clip doesn't murder your VRAM. clean_cache = true (the default) means no .mmap files linger on disk after a run.
The inputs that matter
- source_profile -
high_bitrate(default) for clean encodes,compressedwhen the source is a streaming mess with compression artifacts,bicubicfor reference-style output. - resize_mode -
scaleuses thescalefactor (default 2x),exacthitstarget_width/target_height,long_edgecaps the long side vialong_edge. - quality -
ultra/high/medium/low; cost scales with quality. - dimension_alignment - snaps output dimensions to multiples (8 is a sensible default; raise it if a downstream encoder complains).
- clean_cache - leave on unless you're debugging and specifically want a disk-backed
.mmapin.aetherscale_cache.
You get two outputs: image and stats - that second one is a JSON string, and it's genuinely worth reading because it tells you the resolved output size, the storage backend, and what the VRAM guard actually did.
Installing it
ComfyUI Manager users: search AetherScale and install. Otherwise:
cd ComfyUI/custom_nodes
git clone https://github.com/vizart-vj/ComfyUI-AetherScale.git
Restart ComfyUI. The folder name must stay ComfyUI-AetherScale. Requirements: Windows 10/11, an NVIDIA RTX GPU with a current driver, Python 3.10+, and internet on first use for the runtime bootstrap. Nothing else - requirements.txt is deliberately empty; the real dependency installs itself lazily.
Where people get burned
First run feels like a hang while the runtime downloads; that's normal, let it finish. If you disabled auto_bootstrap and the runtime is missing, you get a hard error instead - flip it back or run AetherScale • Runtime with repair. And remember the pack's honest limitation: this node will not repair genuinely damaged footage. That's where the community 2-pass recipe comes in - run the Restoration node's deblur (or artifact reduction) at source resolution first, then upscale the clean result. Also keep in mind that downstream ComfyUI nodes will still materialize a full IMAGE tensor, so an extremely long, high-res output can get heavy in RAM even with the mmap safety net. Watch the stats output and plan accordingly.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| source_profile | COMBO | high_bitrate | 3 options: high_bitrate, compressed, bicubic |
| quality | COMBO | high | 4 options: ultra, high, medium, low |
| resize_mode | COMBO | scale | 3 options: scale, exact, long_edge |
| scale | FLOAT | 2.001–4 | — |
| target_width | INT | 38400–16384 | — |
| target_height | INT | 21600–16384 | — |
| long_edge | INT | 384064–16384 | — |
| dimension_alignment | COMBO | 8 | 7 options: 1, 2, 4, 8, 16, 32, +1 |
| cuda_device | INT | 00–0 | — |
| effect_cache | COMBO | single | 3 options: single, persistent, none |
| cuda_stream | COMBO | current | 2 options: current, dedicated |
| memory_policy | COMBO | performance | 3 options: performance, balanced, aggressive |
| vram_guard | COMBO | auto | 3 options: auto, release_models, preserve_models |
| min_free_vram_mb | INT | 20480–24576 | — |
| output_device | COMBO | cpu_safe | 2 options: cpu_safe, same_as_input |
| auto_bootstrap | BOOLEAN | true | — |
| output_precisionopt | COMBO | auto | 3 options: auto, float16, float32 |
| output_storageopt | COMBO | auto | 3 options: auto, mmap, ram |
| clean_cacheopt | BOOLEAN | true | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| stats | STRING | — |