Nodes/ComfyUI-PM-Manager/PM UNet Loader
ComfyUI Node

PM UNet Loader

For when the diffusion model ships without its CLIP and VAE

By pixel-magician·Created 7 months ago·Updated 4 months ago· 0
PM UNet Loader
    • model
    • model_name
    weight_dtype

    Some models arrive as a single checkpoint file with everything inside. Others - and this has been the norm for the last couple of years - ship the diffusion model on its own, with the text encoder and VAE as separate files. When you're assembling that second kind of workflow, you need a node that loads just the diffusion model, and that's what PM UNet Loader does. "UNet" is doing some heavy lifting in the name; it'll happily load transformer-based diffusion models too, which is what most of the modern ones are.

    If you've used the core "UNETLoader" node, you already know the shape: pick a file, get a model, wire it to your sampler, and pair it with a separately-loaded CLIP and VAE. The PM version's contribution is the same as everywhere else in this pack - a picker with previews and folder organization instead of a raw filename dropdown, so when your diffusion_models folder has twenty variants you can actually tell them apart.

    How it works

    The selection lives in a hidden widget fed by the pack's frontend, and execution is one call: comfy.sd.load_diffusion_model on the chosen file. It looks in models/diffusion_models first, with models/unet as a fallback location. The one input you set is weight_dtype, with the same four options as the pack's checkpoint loader: default, fp8_e4m3fn, fp8_e4m3fn_fast, and fp8_e5m2.

    Those fp8 options are worth knowing because this is the node where people actually use them. The diffusion model is the heavy part of the pipeline - the multi-GB chunk that determines whether a run fits your card - and loading it in fp8_e4m3fn is the standard VRAM-recovery move. _fast adds fp8 optimization passes for a speed bonus on top; e5m2 is the rarely-needed alternate format. If it fits at default, leave it; if the OOM errors start, fp8_e4m3fn is your first stop.

    Inputs and outputs

    • weight_dtype - the only input, for fp8 loading.
    • model - the loaded diffusion model, straight into your KSampler.
    • model_name - a * string with the file's relative path including the extension. That detail matters: some downstream nodes expect the filename with extension, and this loader goes out of its way to provide it.

    Installing it

    Standard PM Manager pack install:

    cd ComfyUI/custom_nodes
    git clone https://github.com/pixel-magician/ComfyUI-PM-Manager.git
    # restart ComfyUI
    

    Or via ComfyUI Manager, searching for ComfyUI-PM-Manager. Dependencies (opencv-python, imageio-ffmpeg) come with it, no model downloads - it reads from your existing models/diffusion_models folder.

    Common issues

    A "No UNet model selected" or "UNet model not found" error means the picker came up empty or pointed at a file that isn't in the lookup folders - check models/diffusion_models and refresh the browser tab to repopulate the widget. And the pack-wide gotcha: this pack is built on ComfyUI's newer extension API, so if the node doesn't appear in your list at all, update ComfyUI rather than reinstalling the pack.

    CategoryPM Manager

    Inputs (1)

    NameTypeDefaultDescription
    weight_dtypeCOMBO4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2

    Outputs (2)

    NameTypeDescription
    modelMODEL
    model_name*