Nodes/Anymatix/Anymatix Upscale Model Loader
ComfyUI Node

Anymatix Upscale Model Loader

The upscale-model loader that actually works with ImageUpscaleWithModel — URL-addressed edition

By Anymatix·Created about a year ago·Updated 2 days ago· 0
Anymatix Upscale Model Loader
    • UPSCALE_MODEL
    model_name

    Upscalers in ComfyUI come in two very different flavours, and the KB's upscaling essay draws the line hard: some just add pixels (ESRGAN-family, Lanczos - fast, can't invent detail), and some generate detail (SeedVR2, SUPIR). Both are loaded as "upscale models" and consumed by the same ImageUpscaleWithModel node. AnymatixUpscaleModelLoader is the Anymatix-pack loader for that slot - the file is named by URL instead of a dropdown, and it's the piece that makes an Anymatix workflow's "Upscale Image 4x" card actually run on a stock ComfyUI.

    Mechanically it's the least "thin twin" of the pack's loaders. Instead of just inheriting, it loads the checkpoint itself via spandrel (the standard model-architecture detection library): strip a module. prefix if the file carries it (the ESRGAN-era quirk), hand the state dict to spandrel's ModelLoader, and insist the result is a single-image upscaler - a video or multi-image model gets rejected with a clear error rather than silently loading garbage.

    The bug it carries a warning label for

    Here's the honest engineering bit, straight from a comment in the source: ComfyUI's own UpscaleModelLoader attaches a patcher to the loaded model before returning it, and ImageUpscaleWithModel reads that patcher to know which device to run on. An earlier version of this twin stopped one step early and returned a bare spandrel descriptor - so every run of the app's "Upscale Image 4x" card died instantly with 'ImageModelDescriptor' object has no attribute 'patcher'. The fix is in place and kept deliberately verbatim from upstream so the twin can't drift again. What that means for you: if you ever see that exact AttributeError, it's an out-of-date version of this pack - update it.

    Inputs and output

    • model_name (STRING) - full path to the upscale model file (this one takes the whole path and verifies the file exists before loading, rather than basename-resolving). In an exported workflow it comes from a fetcher node; by hand you can paste a path directly.

    Output: UPSCALE_MODEL, wired into ImageUpscaleWithModel. From there the output IMAGE goes to wherever your pipeline needs bigger pixels.

    Choosing what to load

    The loader doesn't care which family the model belongs to, but you should. For the "just bigger" job, an ESRGAN-style 4x model is right. For restoring genuinely soft or damaged images, SeedVR2 is the community's default since late 2025 - runs 3x even on a 6GB card - but note the KB's warning: it's quantisation-sensitive (FP8 can tile, GGUF can damage skin), so run it FP16 if it fits, and give recognisable faces their own pass because any generative upscaler rewrites identity.

    Install

    Under the "Anymatix" category in anymatix-comfy-nodes. ComfyUI Manager: search "anymatix-comfy-nodes", install, restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Anymatix/anymatix-comfy-nodes
    

    Restart after. spandrel is already a ComfyUI dependency, so nothing extra installs for this node. No Anymatix app needed.

    CategoryAnymatix

    Inputs (1)

    NameTypeDefaultDescription
    model_nameSTRING

    Outputs (1)

    NameTypeDescription
    UPSCALE_MODELUPSCALE_MODEL