PM UNet Loader
For when the diffusion model ships without its CLIP and VAE
- model
- model_name
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.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| weight_dtype | COMBO | 4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| model_name | * | — |