Nodes/ComfyUI InvSR/Load InvSR Models
ComfyUI Node

Load InvSR Models

One loader, two auto-downloads, zero model hunting

By yuvraj108c·Created 2 years ago·Updated 3 months ago· 262
Load InvSR Models
    • invsr_pipe
    sd_model
    invsr_model
    dtypefp16
    tiled_vaetrue

    LoadInvSRModels is the front door to the ComfyUI_InvSR pack: it pulls together the two pieces InvSR needs to do its one-step 4x upscale - a stabilityai/sd-turbo diffusers pipeline plus InvSR's custom noise-predictor weights - and hands them to the InvSRSampler node on a single wire. That's the whole job, and it's the part that makes this pack nicer to live with than most upscalers: you don't download or hunt for anything.

    What it loads and where it puts it

    Two model files, both fetched automatically on first run:

    • SD-Turbo (the distilled 1-step Stable Diffusion backbone) downloads into ComfyUI/models/diffusers.
    • The InvSR noise predictor - noise_predictor_sd_turbo_v5.pth - is fetched from the OAOA/InvSR HuggingFace repo into ComfyUI/models/invsr.

    If a file's already there, it uses it. This is why the pack works the first time you run the example workflow, which is rare enough in this ecosystem to be worth appreciating.

    Under the hood, the loader builds a diffusers StableDiffusionPipeline from the SD-Turbo checkpoint, swaps the VAE into tiled mode with gradient checkpointing (that's the tiled_vae switch), then loads the noise-predictor state dict into the custom network that models the diffusion inversion. The INVSR_PIPE output is just a bundle carrying all of that - you wire it to the sampler and forget about it.

    The inputs

    This node has no required inputs, just settings - four of them, and only two matter:

    • invsr_model - noise_predictor_sd_turbo_v5.pth (the default) or the newer noise_predictor_sd_turbo_v5_diftune.pth, a retuned revision added in the pack's April 2025 update. If v5's output looks off to you, try the diftune one.
    • dtype - fp16 (default), bf16, or fp32. fp16 is the right call on any modern card; drop to fp32 only when debugging weird output.
    • sd_model - one choice, stabilityai/sd-turbo. There's no other backbone; this is a locked-in dependency, not a menu.
    • tiled_vae - on by default, and you almost certainly want it on; it's what keeps large-image decoding from blowing VRAM.

    The single output is invsr_pipe, which feeds the invsr_pipe input of InvSRSampler. There's nothing else to wire.

    Installing

    Same story as the sampler - it's one pack: search "ComfyUI InvSR" in ComfyUI Manager, or

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

    then restart and run once to trigger the downloads.

    The one real trap

    If the loader dies with set_module_tensor_to_device() got an unexpected keyword argument 'non_blocking', your diffusers is too old - the pack's requirements were updated in April 2025 precisely for this, and people were still hitting it months later. Upgrade diffusers (or install via Manager, which keeps it fresher) and the node loads clean. The pack also pins numpy<2, so if you have other nodes that want numpy 2, expect a little dependency tug-of-war.

    It's a quiet little loader, but it's why the pack is beginner-friendly: everything downloads itself, and if the node loads, the hard part's done.

    CategoryINVSR

    Inputs (4)

    NameTypeDefaultDescription
    sd_modelCOMBO1 options: stabilityai/sd-turbo
    invsr_modelCOMBO2 options: noise_predictor_sd_turbo_v5.pth, noise_predictor_sd_turbo_v5_diftune.pth
    dtypeCOMBOfp163 options: fp16, fp32, bf16
    tiled_vaeBOOLEANtrue

    Outputs (1)

    NameTypeDescription
    invsr_pipeINVSR_PIPE