Nodes/ComfyUI-Apt_Preset/Model_Preset_pack
ComfyUI Node

Model_Preset_pack

Bundle your model file choices into one wire

By cardenluo·Created 2 years ago·Updated 18 days ago· 309
Model_Preset_pack
    • Erun
    ckpt_nameNone
    unet_nameNone
    clip_name1None
    clip_name2None
    clip_name3None
    clip_visionNone
    control_net_nameNone
    style_model_nameNone
    loras_nameNone

    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.

    CategoryApt_Preset/stack

    Inputs (9)

    NameTypeDefaultDescription
    ckpt_nameoptCOMBONone1 options: None
    unet_nameoptCOMBONone1 options: None
    clip_name1optCOMBONone1 options: None
    clip_name2optCOMBONone1 options: None
    clip_name3optCOMBONone1 options: None
    clip_visionoptCOMBONone1 options: None
    control_net_nameoptCOMBONone1 options: None
    style_model_nameoptCOMBONone1 options: None
    loras_nameoptCOMBONone1 options: None

    Outputs (1)

    NameTypeDescription
    ErunEPIPE