ComfyUI Node

EigenAI Upscaler

The 'ESRGAN' upscaler that's actually just PIL resampling

By jialuw0830·Created about a year ago·Updated 12 months ago· 0
EigenAI Upscaler
  • image
  • image
upscale_factor2
upscale_methodlanczos

Let's clear something up immediately: the README for this pack says the upscaler applies "ESRGAN upscaling for better quality." It does not. Read the actual code and the EigenAI Upscaler is a PIL.Image.resize() call with one of four resampling filters - lanczos (default), bicubic, bilinear, or nearest. No neural network, no ESRGAN model, no weights file anywhere. It is the "more pixels" kind of upscaling, not the "more detail" kind, and it's refreshingly honest once you know what to look for.

That's not a defect, by the way. The community keeps rediscovering that plain interpolation is the right tool when your source is already sharp and you just need it bigger - the KB's upscaling essay notes Lanczos mentions alone outnumbered every named ESRGAN model in recent discussion. Cheap, instant, cannot hallucinate detail it doesn't have. Just don't expect it to invent pores and fabric weave like SeedVR2 or a real ESRGAN model would, and don't expect to fix a soft image with it.

What it does

Local, no API involved. This is the one node in the entire pack that does actual work on your machine rather than shipping pixels to a server. Feed it an IMAGE, set:

  • upscale_factor - 2, 3, or 4 (default 2). Integer steps of 1, so 3× is available here, unlike the generators' built-in 2×/4× upscales.
  • upscale_method - lanczos, bicubic, bilinear, nearest. Lanczos is the right default; nearest exists for pixel-art.

It converts to PIL, resizes, converts back to a ComfyUI tensor, and hands you image out the other side. Wire it between a generator and a Save Image node and you get ComfyUI/output PNGs at 2–4× the generated resolution.

The traps

  • It drops batches. If the input tensor carries more than one image, the code takes image[0] and quietly upscales just the first. Batch processing through this node will surprise you.
  • It's resolution-agnostic, so it can't help you. Generating at 512×512 and upscaling 4× to 2048 gives you a bigger soft image, not a sharper one. The KB's guidance applies: upscale after, don't expect the upscaler to add content.
  • The "ESRGAN" label. If you came here expecting a real ESRGAN pass, use a proper upscaler node instead and keep this one for the quick-and-dirty ladder.

Installing

Same as every node in this pack:

cd ComfyUI/custom_nodes
git clone https://github.com/jialuw0830/flux_api_comfyui_plugin

Restart (or use ComfyUI Manager, search "Eigen AI FLUX API"). Dependencies are requests, pillow, numpy, torch - all already in ComfyUI, and since this node runs locally it even works if your API endpoint is dead.

Worth knowing: the unified generators (EigenAIFluxNode, EigenAIQwenNode) have an upscale toggle and upscale_factor built in, but that upscaling happens server-side before the image is returned. This node is the local alternative - and the only one whose output you can actually inspect mid-pipeline.

CategoryEigen AI Modular

Inputs (3)

NameTypeDefaultDescription
imageIMAGE
upscale_factorINT22–4
upscale_methodSTRINGlanczos

Outputs (1)

NameTypeDescription
imageIMAGE