Model_Preset_pack
Bundle your model file choices into one wire
- Erun
Here's the trap first, because it's the thing that'll confuse you fastest: this node has no MODEL output. It doesn't load anything. What it does is let you pick a checkpoint, a unet, up to three CLIPs, a CLIP vision, a ControlNet, a style model, and a set of LoRAs - nine dropdowns total - and pack the whole selection into a single wire instead of nine. It's a config bundle, not a loader.
Model_Preset_pack is part of ComfyUI-Apt_Preset's stack category, and it's the pack's take on an idea you've probably seen elsewhere in the ecosystem: rgthree-comfy's Context nodes and the older Efficiency Nodes both carry a bundle of connections down one wire so your graph doesn't turn into spaghetti. Apt_Preset's version is narrower and more specific - it's not a generic "carry everything" bundle, it's specifically your model-loading choices, meant to be saved and recalled as a preset (the README calls this out directly: "Preset saving, which can save loaded models and sampling methods uniformly").
How it works
Each of the nine fields is a dropdown populated from your local ComfyUI models folders - the same lists you'd see in CheckpointLoaderSimple, UNETLoader, CLIPLoader, ControlNetLoader, and a LoRA loader, all in one place. You pick whichever subset you actually need for a given workflow (leave the rest at None) and the node packs that selection - just the names, not the loaded objects - into a single output of a custom type the pack calls EPIPE.
That's the whole job. No inference happens here, no weights get read into memory. The actual loading is the paired Model_Preset_Unpack node's problem - or whatever the pack's own combined loader does with the names once they come back out.
Inputs and outputs
All nine inputs are optional and independent, so use only what your workflow needs:
- ckpt_name - a full checkpoint, if your workflow uses one instead of a separate UNet+CLIP.
- unet_name - a standalone UNet/diffusion model file.
- clip_name1 / clip_name2 / clip_name3 - up to three text encoders, for architectures that need more than one (SD3.5-style setups use all three; Flux/Kontext-style setups use two, in order - clip1 then clip2, not clip1+clip3).
- clip_vision, control_net_name, style_model_name, loras_name - the rest of the usual suspects.
The single output is Erun, typed EPIPE - a custom pipe type that only another Apt_Preset node built to read it (namely Model_Preset_Unpack) can consume.
Installing it
ComfyUI Manager: search "ComfyUI-Apt_Preset", install, restart. Manual clone:
cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset.git
Restart ComfyUI afterward. Windows gets install.bat for dependencies out of the repo; on Linux/Mac, install from the requirements file inside your ComfyUI venv. This node itself downloads nothing - it just reads folder listings - but obviously the models you select in its dropdowns need to already be sitting in the right ComfyUI model folders, same as any native loader. If you're pointing unet_name at a GGUF-quantized model, install ComfyUI-GGUF first per the Apt_Preset README, so the pack can actually load what you selected once it reaches the unpack step.
Common issues
Dropdown shows "None" for everything, or a field you expect is missing entirely. These lists populate from your local model folders at the moment the node loads - if a folder's empty, or ComfyUI hasn't been restarted since you dropped a new file in, it won't show up. Restart after adding models.
Wired the output somewhere expecting a MODEL and it doesn't connect. That's expected - EPIPE isn't a MODEL, CLIP, or any standard ComfyUI type, so it will only plug into a socket built to accept it. Pair this node with Model_Preset_Unpack downstream; that's what turns your selections back into individual names you can feed to real loaders.
Nothing seems to actually load, even after unpacking. That's by design and worth internalizing: neither pack nor unpack node loads a model. They only carry which file you picked. The load still has to happen in an actual loader node fed by the unpacked names.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_nameopt | COMBO | None | 1 options: None |
| unet_nameopt | COMBO | None | 1 options: None |
| clip_name1opt | COMBO | None | 1 options: None |
| clip_name2opt | COMBO | None | 1 options: None |
| clip_name3opt | COMBO | None | 1 options: None |
| clip_visionopt | COMBO | None | 1 options: None |
| control_net_nameopt | COMBO | None | 1 options: None |
| style_model_nameopt | COMBO | None | 1 options: None |
| loras_nameopt | COMBO | None | 1 options: None |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Erun | EPIPE | — |