Nodes/Iris-3B/Load Iris Upscaler
ComfyUI Node

Load Iris Upscaler

A separate 12 GB fine-tune, not a second pass of your model

By bani4kaskashka·Created 22 days ago·Updated 21 days ago· 13
Load Iris Upscaler
    • IRIS_UPSCALER
    ◄model_name▾►
    ◄weight_dtypebf16►

    Most "upscaler" nodes in ComfyUI are either a small ESRGAN-family network or an upscale-model file you point a generic loader at. This isn't that. Iris's upscaler is a full 12 GB fine-tune of the same 3B DiT, and this loader is how you get it into the graph.

    That size tells you the important things. It's a diffusion model doing restoration, it needs its own VRAM budget and its own load, and it is not the text-to-image checkpoint warmed over - which is why the pack has a dedicated loader instead of reusing Load Iris-3B Model. The loader also refuses the wrong file: it reads the config, checks the task name is restoration, and errors if it isn't.

    How it's conditioned

    The upscaler needs to know what it's doing, but there's no prompt. Instead it's conditioned on a stored empty prompt embedding - a small file (36 MB) that ships alongside the task and the loader fetches next to the pack on first use. That's the whole reason the node has no text input: restoration isn't steered, it's a fixed task, and the pack keeps the conditioning for that task in the weights' own folder.

    Practically, that means two things. Don't expect a prompt to change the result - there isn't a prompt field, and if you wired Iris Text Encode in here you'd have nothing to plug it into. And don't be surprised when the upscaler works on images that have nothing to do with Iris: it takes any IMAGE, because nothing about it depends on where the picture came from.

    Inputs and output

    model_name - an enum over models/diffusion_models, filtered to filenames containing "iris" and "upscaler". The t2i and depth checkpoints won't show up here, which is the filter doing you a favour. The default is iris-3b-upscaler.safetensors, and picking it while it's missing triggers a 12 GB download from speridlabs/iris-3b on first run. ComfyUI will also offer it under Missing Models.

    weight_dtype - bf16 (default, ~6 GB on the GPU) or fp32 (the shipped precision, ~12 GB, and per the author's tooltip it needs well over 16 GB of VRAM). Same advice as everywhere else in this pack: leave it on bf16.

    The output is IRIS_UPSCALER, which goes into Iris Upscale and nowhere else.

    On memory: like the rest of the pack, this model parks in system RAM between runs and only occupies the GPU while it's actually upscaling. That's why running text-to-image, then upscale, then depth in one graph doesn't add their VRAM together. It does add their RAM together - with all three Iris models resident, plan on about 22 GB of free system memory.

    Install

    ComfyUI-Manager, search Iris-3B. Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/bani4kaskashka/Iris-3B-Comfy-Nodes
    pip install -r requirements.txt
    

    Then restart. Opening Iris-3B Upscale 4x from Templates is the fastest way to see it wired correctly.

    Where it goes wrong

    "X is not an Iris restoration model." You're pointing at the text-to-image or depth checkpoint. They're the same architecture and the same 12 GB, but the loader reads the task name from the config and refuses anything that isn't the restoration fine-tune.

    Nothing in the dropdown. Name filter again. If you fetched upscaler/model.safetensors from the Hub yourself, rename it to contain "upscaler" (and "iris") - or set it up as a Hub-layout folder with its config.yaml beside it, which the loader also accepts.

    The empty-prompt fetch failed. That 36 MB file comes down separately from the 12 GB checkpoint, and it's cached next to the pack. If you're installing from a tarball or on a locked-down machine, that's the download to check in the log - the error shows up at loader time, not at run time.

    First run after install takes ages. It's 12 GB off disk. Subsequent runs are fine, because the model stays in RAM.

    CategoryIris-3B

    Inputs (2)

    NameTypeDefaultDescription
    model_nameCOMBOIris upscaler weights in models/diffusion_models. iris-3b-upscaler.safetensors is downloaded on first use if missing (12 GB)
    weight_dtypeCOMBObf16bf16 = 6 GB on the GPU. fp32 = 12 GB (the shipped precision) and needs well over 16 GB VRAM

    Outputs (1)

    NameTypeDescription
    IRIS_UPSCALERIRIS_UPSCALER—