AetherScale • Restoration
Decompression, denoise, and deblur at full resolution — the cleanup half of NVIDIA's VFX
- image
- image
- stats
The AetherScale Super Resolution node gets the billing, but this is the one that quietly does the work people actually rave about. Restoration runs NVIDIA's VFX cleanup engines at the same resolution as the input - no resizing, no inventing detail - and it's what the whole "RTX 2-pass" recipe that made people drop their Topaz subscriptions is built on. The author's framing says it directly: one node, three same-resolution tasks, so you don't end up with a drawer full of near-identical cleanup nodes.
You feed it a frame batch, pick a job, and it streams the cleanup frame by frame. The three task options are the honest choices:
- artifact_reduction (default) - for video that's been through the compression wars: streaming caps, bad bitrates, blocky edges.
- ai_denoise - grain and sensor noise, without smearing detail into mush the way a Gaussian blur would.
- ai_deblur - the sharpener of the trio. This is the one people chain before Super Resolution, because deblurring a soft source first and then upscaling gives noticeably better results than upscaling the blur along with everything else.
How it works
Under the hood each task maps to a mode in the same NVIDIA VFX engine that powers Super Resolution (artifact_reduction → the compressed-source path, denoise, deblur), but with the output locked to the input dimensions so nothing grows. It runs through the shared lazy runtime bootstrap - NVIDIA's nvidia-vfx wheel installs into the pack's private vendor/ on first use - and it keeps the same streaming model: pairs of frames in, cleaned frame out, never a full video batch parked on the GPU.
The inputs that matter
Honestly, this node is refreshingly boring to configure. task and quality (ultra/high/medium/low) are the ones you'll touch. Everything else in the required list is the shared runtime block that every enhancement node in this pack carries - cuda_device, effect_cache, cuda_stream, memory_policy, vram_guard, min_free_vram_mb, output_device, auto_bootstrap - and the defaults are the right ones for 99% of runs. The vram_guard and min_free_vram_mb pair (2 GB by default) exists so the node doesn't OOM the diffusion models ComfyUI still has resident; leave them alone until a run actually fails.
Outputs are image and stats - the stats JSON will confirm the task that ran and the resolved quality level, which is handy when you're A/B testing.
Setting it up
Same story as every AetherScale node: ComfyUI Manager → search AetherScale, or clone into custom_nodes and restart:
cd ComfyUI/custom_nodes
git clone https://github.com/vizart-vj/ComfyUI-AetherScale.git
Windows 10/11, RTX card, current driver, Python 3.10+, internet for the one-time runtime download. requirements.txt is empty on purpose.
Troubleshooting without a crystal ball
If a clip still looks blocky after artifact reduction at high, try ultra before you assume it's broken. If the node errors on the very first run, it's almost always the runtime not having finished bootstrapping - check the AetherScale • Diagnostics node's JSON, and use AetherScale • Runtime with the repair action if runtime_ready is false. And manage expectations: this cleans artifacts and softness, it doesn't resurrect genuinely wrecked footage. When a source is truly destroyed, the cleanup-then-upscale chain only gets you so far - that's the point where generative restoration (SeedVR2 and friends) stops being overkill. Don't skip deblur before upscale, though. That ordering is the actual magic trick.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| task | COMBO | artifact_reduction | 3 options: artifact_reduction, ai_denoise, ai_deblur |
| quality | COMBO | high | 4 options: ultra, high, medium, low |
| 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 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| stats | STRING | — |