Nodes/comfyui-otacoo/UNet Loader 🔰
ComfyUI Node

UNet Loader 🔰

Pick your UNet by looks, not by filename

By otacoo·Created 7 months ago·Updated 30 days ago· 1
UNet Loader 🔰
    • MODEL
    unet_name
    weight_dtypedefault

    If you keep a pile of standalone diffusion models in models/unet, the built-in loader makes you pick by filename - and filename roulette is how you end up generating with a checkpoint you forgot you'd swapped. OtacooUnetLoader is the "UNet Loader 🔰" node from the comfyui-otacoo pack, and its whole trick is showing you a preview image next to each model in the selector. Pick by looks, not by memory.

    You'd reach for it when you're loading a model without its CLIP and VAE. That's the "unet" folder's job in ComfyUI: standalone diffusion models - SD3 and Flux class pipelines where you pair the model with a separate text encoder, or a finetuned unet you're swapping into an existing graph. One output, MODEL, straight into your KSampler's model input. That's the entire contract.

    How it works

    The backend is the same code the built-in UNETLoader runs: it hands the file to comfy.sd.load_diffusion_model() and returns the MODEL. What the pack adds is the frontend - it intercepts the dropdown, hits a small /otacoo/images/unet route, and renders a filterable grid of thumbnails instead of a text list. The loading itself is ComfyUI's own, so there's no behavior drift between this and the stock node. If you're on the classic (LiteGraph) UI the grid works as advertised; on the Nodes 2.0 / Vue UI the pack falls back to a plainer picker - the README is upfront that full previews are a LiteGraph thing for now.

    The two inputs that matter

    • unet_name - the model to load. Files listed from models/unet. That folder doesn't exist on every fresh install; if the dropdown is empty, create it and drop your .safetensors in.
    • weight_dtype - defaults to default, and that's usually right. The interesting options are the fp8 ones: fp8_e4m3fn and fp8_e4m3fn_fast are the ones you actually want (e4m3fn is the good 8-bit format, half the VRAM of fp16 with near-invisible quality loss - the standard way to fit a 12B-class model on a consumer card). fp8_e5m2 is the older, less accurate format; skip it. The _fast variant switches on ComfyUI's fp8 optimizations, which wins on some 40-series cards and can be a wash elsewhere - if you're not VRAM-starved, leave it at default and let ComfyUI decide.

    Output is a single MODEL, which wires into KSampler's model port. Since this loader doesn't return CLIP or VAE, you'll pair it with a separate text encoder and VAE node elsewhere in the graph.

    Install

    This is the whole pack, so installing it once gets you all four 🔰 nodes:

    cd ComfyUI/custom_nodes
    git clone https://github.com/otacoo/comfyui-otacoo.git
    

    then restart ComfyUI. Or use ComfyUI Manager → Install Custom Nodes → search otacoo. No pip requirements, no model downloads - the pack depends only on ComfyUI's own internals plus a bit of JS.

    Getting previews to show

    Drop an image next to the model file with the same base name, in the same folder:

    models/unet/my_model.safetensors
    models/unet/my_model.preview.jpg
    

    The pack checks <basename>.preview.png/.jpg/.jpeg/.webp first, then plain <basename>.png/.jpg/.jpeg/.webp, first match wins. No preview file, no thumbnail - the entry just shows text. It's a small pack (first release early 2026, no real community footprint yet, so no bug reports to warn you about), but the one thing worth knowing: if the grid suddenly stops appearing, you're probably on the Vue UI, and that's a known limitation rather than a broken install.

    Categoryloaders

    Inputs (2)

    NameTypeDefaultDescription
    unet_nameCOMBOThe UNet model to load.
    weight_dtypeoptCOMBOdefaultThe weight precision to load the model with.

    Outputs (1)

    NameTypeDescription
    MODELMODEL