AuraSR Upscaler
The fast GAN 4x that hates JPEGs
- image
- transparency_mask
- IMAGE
AuraSR is fal.ai's open reproduction of GigaGAN's upscaler, and this node is how you get it into ComfyUI. If you've read anything about upscaling on this site, you know the field splits into "add pixels" (ESRGAN, Lanczos) and "add detail" (SeedVR2, SUPIR). AuraSR sits in an odd spot between the two: it's a single-pass GAN like ESRGAN - fast, cheap, no sampler loop - but a much bigger, more generative one, so it doesn't just interpolate, it actually invents texture. That's the appeal and the catch in one sentence.
Reach for it when you want a fast 4x on a clean image straight out of your generation pipeline and don't want to spend the time or VRAM SeedVR2 needs. Don't reach for it as your restoration tool - that's not what it's for, and it's noticeably worse at it than the current community favorites.
How it works
Where ESRGAN-family models are trained to be conservative interpolators, AuraSR is a GAN (GigaGAN architecture) trained to generate plausible high-frequency detail on top of your image in one forward pass. That makes it fast and light on VRAM compared to anything diffusion-based, but it also means the model has real opinions about texture - and when it guesses wrong, you get oversharpening, haloing, or a weird dithered grain instead of clean detail. The pack's own README is upfront that v1 is "ultra sensitive to ANY kind of image compression," and community testers back that up hard: feed it a JPEG or anything that's been re-saved and you'll often get worse results than a plain ESRGAN model would give you. Feed it a raw PNG straight from SD/Comfy and it tends to behave much better. AuraSR v2 reportedly fixed most of this - the README explicitly says v2 no longer suffers from the compression issue, and running a de-artifact pass before it can actually hurt v2's output.
The inputs and outputs that matter
image(IMAGE) - the source. Feed it something as close to lossless as possible, especially with the v1 model.model_name- which AuraSR checkpoint to use, populated from whatever you've dropped in theAura-SRmodel folder. Empty dropdown means you haven't downloaded a model yet (see below).mode-4xis the standard pass.4x_overlapped_checkboardand4x_overlapped_constantare newer variants that can look better but take roughly twice as long - worth trying if plain4xisn't cutting it, not worth it as your default.tile_batch_size(default 8, 1–32) - how many tiles get processed together. Push it up for speed if you have VRAM to spare, pull it down if you're hitting out-of-memory.deviceandoffload_to_cpu- force CPU inference or offload the model when idle. Leave both alone unless you're VRAM-constrained.transparency_mask(optional, MASK) andreapply_transparency(default true) - the two the README calls out specifically. If you're upscaling a transparent PNG, the stock "Load Image" node strips the alpha channel before it ever reaches this node, so plain RGBA images won't reapply transparency correctly unless you either wire in a mask from a proper RGBA loader or use a node that preserves alpha. This whole feature also gets silently disabled if you send a batch of images through.
Output is a single IMAGE, ready to save or pipe into another pass.
Installing it
Easiest path: ComfyUI Manager → search "AuraSR-ComfyUI" → install → restart and reload the browser tab. Manual route is the usual cd ComfyUI/custom_nodes && git clone https://github.com/GreenLandisaLie/AuraSR-ComfyUI, then restart.
The model isn't bundled - you have to fetch it yourself. Create an Aura-SR folder inside ComfyUI/models, then grab both the .safetensors and the config.json from HuggingFace (or the v2 weights at fal/AuraSR-v2) and drop them in there. If you keep both versions around, rename each model and its matching config to the same base name so the node can tell them apart. You can also point at a custom folder via extra_model_paths.yaml using the key aura-sr if you don't want it inside the default models tree.
Common issues
Dropdown is empty / node won't run. You skipped the model download step - model_name only lists what's actually sitting in Aura-SR, and the .safetensors needs its matching config.json next to it or it won't load.
Results look worse than the input, or covered in halos/grain. Classic v1-on-compressed-image symptom. Either switch to v2, or run a compression-artifact-removal model like DeJPG_OmniSR before AuraSR - but only on v1 inputs. Doing the same pre-pass with v2 can make things worse, per the README.
Transparency isn't coming through on the output. You almost certainly loaded your image with the stock Load Image node, which converts to RGB and drops alpha before AuraSR ever sees it. You need a node that actually outputs RGBA, or pass the alpha in explicitly via transparency_mask.
Out of memory on large images. Drop tile_batch_size, or fall back to device: cpu if you're really stuck - it'll be slow but it'll finish.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | 0 options: | |
| image | IMAGE | — | |
| mode | COMBO | 3 options: 4x, 4x_overlapped_checkboard, 4x_overlapped_constant | |
| reapply_transparency | BOOLEAN | true | — |
| tile_batch_size | INT | 81–32 | — |
| device | COMBO | 2 options: default, cpu | |
| offload_to_cpu | BOOLEAN | false | — |
| transparency_maskopt | MASK | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |