Nodes/AetherScale/AetherScale • Super Resolution
ComfyUI Node

AetherScale • Super Resolution

NVIDIA's hardware video upscaler, now a ComfyUI node

By vizart-vj·Created 11 days ago·Updated 11 days ago· 76
AetherScale • Super Resolution
  • image
  • image
  • stats
source_profilehigh_bitrate
qualityhigh
resize_modescale
scale2.00
target_width3840
target_height2160
long_edge3840
dimension_alignment8
cuda_device0
effect_cachesingle
cuda_streamcurrent
memory_policyperformance
vram_guardauto
min_free_vram_mb2048
output_devicecpu_safe
auto_bootstraptrue
output_precisionauto
output_storageauto
clean_cachetrue

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, compressed when the source is a streaming mess with compression artifacts, bicubic for reference-style output.
  • resize_mode - scale uses the scale factor (default 2x), exact hits target_width/target_height, long_edge caps the long side via long_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 .mmap in .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.

CategoryAetherScale/Enhance

Inputs (20)

NameTypeDefaultDescription
imageIMAGE
source_profileCOMBOhigh_bitrate3 options: high_bitrate, compressed, bicubic
qualityCOMBOhigh4 options: ultra, high, medium, low
resize_modeCOMBOscale3 options: scale, exact, long_edge
scaleFLOAT2.001–4
target_widthINT38400–16384
target_heightINT21600–16384
long_edgeINT384064–16384
dimension_alignmentCOMBO87 options: 1, 2, 4, 8, 16, 32, +1
cuda_deviceINT00–0
effect_cacheCOMBOsingle3 options: single, persistent, none
cuda_streamCOMBOcurrent2 options: current, dedicated
memory_policyCOMBOperformance3 options: performance, balanced, aggressive
vram_guardCOMBOauto3 options: auto, release_models, preserve_models
min_free_vram_mbINT20480–24576
output_deviceCOMBOcpu_safe2 options: cpu_safe, same_as_input
auto_bootstrapBOOLEANtrue
output_precisionoptCOMBOauto3 options: auto, float16, float32
output_storageoptCOMBOauto3 options: auto, mmap, ram
clean_cacheoptBOOLEANtrue

Outputs (2)

NameTypeDescription
imageIMAGE
statsSTRING