ComfyUI Node

UC_load_model

Checkpoint, UNet, two CLIPs, VAE and your sampler settings in one node

By cardenluo·Created 2 years ago·Updated about 15 hours ago· 334
UC_load_model
  • over_model
  • over_clip
  • lora_stack
  • context
  • model
  • clip
ckpt_name
unet_name
unet_Weight_Dtype
clip_type
clip1
clip2
vae
audio_vae
collapse_sampling_parametersfalse
steps20
cfg8.0
sampler
scheduler

Since Flux, "loading a model" stopped meaning "pick a checkpoint". It means choosing between a checkpoint or a bare UNet, a weight dtype, a text encoder type plus one or two separate CLIP files, a VAE, sometimes a second VAE for audio, and a sampler configuration that three downstream samplers will inherit. UC_load_model is the Apt_Preset answer: every one of those in a single node that outputs a RUN_CONTEXT, a MODEL and a CLIP.

Every input is optional, which sounds friendly and is the node's main hazard: queue it with nothing selected and you get a context full of nothing.

The inputs, in the order you'll use them

ckpt_name or unet_name - not both. The node raises an explicit error if you set both, so stop worrying about precedence. unet_name lists everything in your unet folder plus unet_gguf, which means GGUF files show up in the same dropdown as safetensors. That's the pack's low-VRAM path: Q8 is effectively indistinguishable from fp16 at half the size, Q4_K_M is the 12GB-card compromise.

unet_Weight_Dtype - default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2. The cheap VRAM dial that costs you almost nothing in quality; on most 2026 models fp8 is what you should already be running.

clip_type - 29 options including flux2, wan, hidream, ltxv, sd3 and the SD lineage. This selects which text-encoder class ComfyUI uses to interpret the files you load, and it's the field most people leave wrong: load a Qwen text encoder as stable_diffusion and you get nonsense, not an error.

clip1 and clip2 - the encoder slots, populated from text_encoders plus clip_gguf. Two slots, in order. If you're coming from the README's model-combination table and wondering where clip3 went: that table describes the pack's other loader, Sum_load_adv, which handles the four-encoder cases (SD3.5, HiDream). UC_load_model gives you two.

vae and audio_vae - two separate VAE loaders, because audio-capable video models decode picture and sound through different VAEs and the context carries both.

Then the sampling block: steps (20), cfg (8), sampler (euler), scheduler. These aren't for this node - they're published into the context for the sampler nodes downstream to inherit. Note the defaults: 20 steps and CFG 8 is an SDXL-shaped configuration. If you're loading a distilled model, set them here or every sampler in the graph quietly runs wrong.

Finally the two override sockets. over_model and over_clip take a MODEL and a CLIP from anywhere else in your graph and make the internal loading irrelevant for that half - the README's phrasing is that the internal model "becomes invalid", and the code agrees. lora_stack takes a LORASTACK and applies it to the loaded pair, which is how LoRAs get into the context instead of chaining loader nodes.

What actually comes out

context, model, clip. The context is not a hollow wrapper - the node fills in some genuinely useful things beyond the model. If a CLIP is present it encodes a default positive (a girl) and negative (worst quality, low quality), so the pack's samplers have something to run with before you've written a prompt. When both clip1 and clip2 are loaded it sets guidance 3.5 on the positive conditioning, the Flux-style value. And it seeds a starter latent: a 16-channel 64×64 for normal models, or a 128-channel 32×32 when clip_type is flux2 - that channel count being one of the real architectural facts of the Flux 2 generation, not a typo.

The raw model and clip outputs matter as much as the context. They're your escape hatch: wire the context into the pack's samplers and wire model into any other pack's nodes that want a plain MODEL. Half-migrated graphs are fine.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset
cd ComfyUI-Apt_Preset
pip install -r requirements.txt

Restart ComfyUI; the node lives in Apt_Preset/unit_context. Two model-side prerequisites from the README, both easy to miss: GGUF files only load if ComfyUI-GGUF is installed (the pack checks for it and falls back rather than reading them itself), and the README's other optional integrations - Advanced-ControlNet for CN scheduling, nunchaku for the Nanchaku loader - are separate packs.

Troubleshooting notes from the field

If the node is missing entirely from your menu, ComfyUI's module import failed and took the whole Apt_Preset/* category with it - almost always the long requirements.txt (onnxruntime, opencv-python-headless, transparent-background, scenedetect, scipy …) not being installed in the right Python environment. ComfyUI's log shows a one-line IMPORT FAILED against the pack's folder; that's the signal, and pip install -r requirements.txt from inside the ComfyUI venv is the fix.

If a GGUF file is in your unet folder but not in the dropdown, ComfyUI-GGUF isn't loaded. And remember this pack is a Chinese-community project - tooltips, error strings and tutorials are frequently Chinese-only, and English-language discussion of it is nearly zero. The source is right there in your custom_nodes folder; when a message is unreadable, that's the faster reference.

CategoryApt_Preset/unit_context

Inputs (16)

NameTypeDefaultDescription
ckpt_nameoptCOMBO1 options: None
unet_nameoptCOMBO1 options: None
unet_Weight_DtypeoptCOMBO5 options: None, default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2
clip_typeoptCOMBO29 options: None, stable_diffusion, stable_cascade, sd3, stable_audio, mochi, +23
clip1optCOMBO1 options: None
clip2optCOMBO1 options: None
vaeoptCOMBO1 options: None
audio_vaeoptCOMBO1 options: None
collapse_sampling_parametersoptBOOLEANfalse仅折叠参数,如果后端缺这些参数,则会被采用
stepsoptINT201–999999
cfgoptFLOAT8.00–100
sampleroptCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
scheduleroptCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
over_modeloptMODEL
over_clipoptCLIP
lora_stackoptLORASTACK

Outputs (3)

NameTypeDescription
contextRUN_CONTEXT
modelMODEL
clipCLIP