Controlled Load Diffusion Model
Load your diffusion model on command, and pick fp8 while you're at it
- trigger
- MODEL
"Controlled Load Diffusion Model" is the stock UNET loader wearing a leash. It wraps ComfyUI's built-in UNETLoader and adds a trigger input: connect the trigger and the model loads, outputting a MODEL; leave it empty and the load is skipped, returning None. Same gate as the pack's other Controlled nodes, but pointed at the thing that eats the most VRAM in your whole workflow.
The diffusion model is usually the last heavy object into memory and the one that tips you over the edge. If your text encoder and VAE are already resident and the UNet is what makes it OOM, gating when the load happens - or skipping it entirely in a branch you don't need - is a genuinely useful lever. The wrapper delegates straight to UNETLoader.load_unet(), so what you get out is a normal MODEL output for the sampler, nothing exotic.
The inputs that matter
unet_name- the model file picker, listing your diffusion models frommodels/unet(ordiffusion_models).weight_dtype- how the weights are held in memory. The options aredefault,fp8_e4m3fn,fp8_e4m3fn_fast, andfp8_e5m2. This is the interesting part: on a compatible GPU, fp8 roughly halves the model's memory footprint versus fp16 with barely any visible quality cost - that's often the difference between fitting on 12GB and not.e4m3fnis the standard fp8;e4m3fn_fasttrades a bit of safety for speed;e5m2is the older, slightly less precise variant.trigger- the gate. Any type, checked only forNone.
The honest read
Two things to know before you adopt it. First, the None output: if the trigger isn't fired, whatever you connected to the MODEL output will choke on a None. Treat it as a skip switch, not a scheduler. Second, this node only defers or skips the load - it does nothing to reclaim memory after the model is done. For that you pair it with the pack's Delete Model (Passthrough Any) node, which is the actual memory-management half of the equation. In practice, a decent chunk of the value here is just the fp8 weight_dtype choices, which you can get from ComfyUI's own UNETLoader on recent versions - the trigger is the differentiator.
Install is the usual: ComfyUI Manager, search "DeleteModelPassthrough", or clone it into custom_nodes, pip install -r requirements.txt (just torch and psutil), restart. No model downloads - this is all plumbing, and the pack itself is a self-described WIP from a small author, so check the console output when things misbehave. If the real problem is a card that's simply too small, remember GGUF quantized UNets (via city96's ComfyUI-GGUF) move the needle far more than gating the fp16 loader.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| unet_name | COMBO | 0 options: | |
| weight_dtype | COMBO | 4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2 | |
| trigger | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |