Nodes/ComfyUI-Apt_Preset/Model_Preset_Unpack
ComfyUI Node

Model_Preset_Unpack

Get your model filenames back out of an EPIPE

By cardenluo·Created 2 years ago·Updated 17 days ago· 309
Model_Preset_Unpack
  • Erun
  • ckpt_name
  • unet_name
  • clip_name1
  • clip_name2
  • clip_name3
  • clip_vision
  • control_net_name
  • style_model_name
  • loras_name

This is the other half of the pair. Model_Preset_pack bundles up to nine model-file choices into one wire; Model_Preset_Unpack takes that bundle and fans it back out into nine individual outputs so the rest of your graph - or the pack's own combined loader - can actually do something with them.

It's a pure pass-through node: no computation, no model loading, just unbundling a custom pipe type back into its parts. Part of ComfyUI-Apt_Preset's stack category, sitting right next to param_preset_Unpack and photoshop_preset_Unpack, which do the exact same job for different kinds of bundled data.

How it works

Feed it the EPIPE that came out of Model_Preset_pack and it reads the nine names stored inside - checkpoint, unet, up to three CLIPs, CLIP vision, ControlNet, style model, LoRAs - and outputs each one separately. What comes out are the names, the same strings you picked in the dropdowns upstream, not loaded MODEL or CLIP objects. You still need to wire each one into an actual loader (CheckpointLoaderSimple, UNETLoader, CLIPLoader, ControlNetLoader, a LoRA loader, or whichever of Apt_Preset's own loader nodes reads these names) to get something a sampler can use.

The point of splitting pack and unpack into two nodes, rather than one node that does everything, is that it lets you keep the "which files am I using" decision in one compact place near the top of your graph - maybe even saved as part of a workflow template - while the actual loading logic lives wherever you want it, possibly reused across several downstream branches that all need the same model set.

Inputs and outputs

  • Erun - the required EPIPE input, produced by Model_Preset_pack upstream. Nothing else this node can consume; it's typed specifically to that pack node's output.

Nine outputs come back out, one per field: ckpt_name, unet_name, clip_name1, clip_name2, clip_name3, clip_vision, control_net_name, style_model_name, loras_name. Each is the plain filename/string, ready to feed into whichever loader you're pairing it with.

Installing it

ComfyUI Manager: search "ComfyUI-Apt_Preset", install, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset.git

Restart afterward. install.bat handles Windows dependencies; on Linux/Mac, install from the requirements file inside your ComfyUI venv. This node has no dependency of its own beyond the pack itself - it just reads a string bundle apart.

Common issues

"Erun" input has nothing to connect to it. You need a Model_Preset_pack node upstream feeding it - this node's input type (EPIPE) is specific to that pack node's output and won't accept anything else, including ComfyUI's own model types.

An output name doesn't match a file that exists. The unpack node just returns whatever string was stored at pack time - if you've since renamed or deleted the underlying file, or you're loading an old saved workflow against a different models folder, the name comes back unchanged and the downstream loader is what fails, not this node. Re-select the file in Model_Preset_pack if the underlying file has moved.

Expected a loaded model, got a string. Same trap as the pack node: neither half of this pair loads anything. If you wired one of these outputs directly into a sampler expecting a MODEL, that's the mismatch - route it through an actual loader node first.

CategoryApt_Preset/stack

Inputs (1)

NameTypeDefaultDescription
ErunEPIPE

Outputs (9)

NameTypeDescription
ckpt_name
unet_name
clip_name1
clip_name2
clip_name3
clip_vision
control_net_name
style_model_name
loras_name