Nodes/Fat Mex Nodes/Fat Mex Upscaler
ComfyUI Node

Fat Mex Upscaler

Bigger images, one node, and the 4x-then-halve trick

By FatMex·Created 7 months ago·Updated 7 months ago· 3
Fat Mex Upscaler
  • image
  • image
upscale_model(no models found)
rescale_factor1.00
resize_methodlanczos
max_dimension0

Upscaling is three different jobs wearing one name, and this node does the first two. It's the classic UpscaleModelLoader + ImageUpscaleWithModel + ImageScale chain in a single box: load an upscale model, run it over your image with tiled processing so it doesn't OOM, then optionally resize the result to a target. No diffusion, no ControlNet tile, no 10-minute wait - this is the "more pixels" family, the ESRGAN-style pass that sharpens and enlarges what's already there.

That matters because the most common mistake is reaching for the wrong tool: if you need the model to invent detail that isn't there (rescuing a soft or damaged image), you want the generative/restoration lineage (SUPIR, SeedVR2) - not this. If your source is already sharp and you just need it bigger for print or a closer crop, this is the correct, fast, free answer.

How it works

  • Loads your upscale model from ComfyUI/models/upscale_models/ via Spandrel, which understands most ESRGAN-family .pth files. Models are cached, so the second run is quick.
  • Tiled upscaling - the image is processed in 512px tiles with 32px overlap. This is what lets it handle images too big for one shot. If you hit an out-of-memory error, it automatically halves the tile size and retries, down to a floor of 128px, before giving up. Nice touch that usually just works.
  • Optional final resize - where the good tricks live:
    • rescale_factor - scale down after upscaling. A 4x model at 0.5 rescale = effective 2x, which is a genuinely clever way to get the model's quality boost at a smaller size.
    • max_dimension - cap the longest side (0 = no cap), preserving aspect ratio. Handy when you upscale a 1024 image 4x and need it to fit a 4K or social-size target.
    • resize_method - lanczos default; bicubic/bilinear/nearest-exact are there if you prefer.

The one required input is image; output is image. That's the whole node.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/FatMex/ComfyUI-FatMex-Nodes.git FatMex-Nodes
pip install -r FatMex-Nodes/requirements.txt

Or ComfyUI Manager → search "Fat Mex Nodes" → Install → restart.

Then drop an upscale model into ComfyUI/models/upscale_models/. The community favorites for general use are 4x-UltraSharp and Remacri; for faces specifically, 4xFaceUpDAT (the same model the pack's face swap uses). These come from the usual upscale-model repos - the pack doesn't bundle them.

Where people get burned

  • No model = no upscale. The upscale_model dropdown shows (no models found) when your upscale_models/ folder is empty, and the node silently returns your original image with a warning in the console. It doesn't error - it just does nothing. Install a .pth and it springs to life.
  • Expecting detail invention. Run it on a blurry face and you'll get a larger blurry face. This is not restoration; pair it with the Inpaint Sampler or a face-detail pass if you need the model to rebuild detail (and keep recognizable faces out of generative restoration - they get rewritten into plausible strangers, per the KB).
  • rescale_factor only goes down (0.1–1.0). You don't use it to upscale further; the upscale model's own scale factor does that.
  • Big batches on little GPUs. Tiled processing helps a lot, but upscaling a batch of 4K images still takes memory. The auto-tile-halving saves you from the hard crash, not from the wait.
CategoryFat Mex

Inputs (5)

NameTypeDefaultDescription
imageIMAGEImage to upscale.
upscale_modeloptCOMBO(no models found)Upscale model to use. Place .pth files in ComfyUI/models/upscale_models/.
rescale_factoroptFLOAT1.000.1–1Scale down after upscaling. 1.0 = keep full size, 0.5 = half the upscaled size. E.g. 4x model + 0.5 rescale = effective 2x.
resize_methodoptCOMBOlanczosInterpolation method for final resize.
max_dimensionoptINT00–16384Cap the longest side to this value (0 = no cap). Preserves aspect ratio.

Outputs (1)

NameTypeDescription
imageIMAGE