ModelPack Download / Select File
The Node That Doesn't Load Anything
- model_path
Five nodes in this pack load models. This one just tells you where a file is. It's the only node in the top-level ModelPack category rather than ModelPack/loaders, and that's the tell: no MODEL, no CLIP, no VAE - one STRING output called model_path.
Which sounds useless until you remember how much of a ComfyUI graph is plumbing. Nodes that take a path instead of a load object, nodes that stage a download, nodes you use while you're figuring out what's in an artifact - that's the gap this fills.
Inputs and output
model_type- enum:Checkpoint,Diffusion Model,CLIP,VAE,LoRA. This isn't cosmetic. It decides which ComfyUI model folder the node resolves a local filename against -checkpoints,diffusion_models,text_encoders,vae,loras- and which subfolder of the download cache the artifact lands in. Pick the wrong one and you get a file-not-found, because a LoRA filename is never going to turn up inmodels/checkpoints.reference- the OCI reference. Empty means local mode.file- with areference, the path inside the artifact; without one, a filename from the foldermodel_typeselects. At least one must be set.
Output: model_path, an absolute path as a string. Wire it into any node that wants a path rather than a loaded object, or leave it unconnected.
The three real uses
Inventory. Set reference, leave file blank, and if the artifact holds more than one weight file the node raises an error listing every weight path it found. That's the fastest way to see what's actually inside an artifact without pulling out a registry CLI, and it's how you find the exact string to paste into the file field of one of the loaders.
Pre-staging, so a run pulls once. The pack tracks the destinations it has already pulled in the current process. Run this node first and a downstream diffusion-model or VAE node hits the same already-downloaded copy without going back to the registry. With a tag reference that saves a second round trip in the same run; with a digest reference it changes nothing, because digests never re-pull anyway.
Getting an absolute path for a node that wants one. Local mode - leave reference empty, set model_type and file - is a "resolve this model name to a real filesystem path" node. That's genuinely handy when something downstream wants a path, or when you're debugging whether ComfyUI is even looking at the folder you think it is. That last one is a real problem in this ecosystem: the corpus is full of people who put Flux weights in three different folders and watched a loader show none of them.
Installing it
Manager: search ComfyUI ModelPack (cerussite). Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/SiLeader/ComfyUI-ModelPack comfyui-modelpack
python -m pip install -r comfyui-modelpack/requirements.txt
Restart ComfyUI. Dependencies are modelpack-client and its small stack (oras, jsonschema, zstandard) - no torch work, no compile. Install with the Python that runs ComfyUI, not a system one; the Windows portable build hides its interpreter in python_embedded\. The pack wants Python 3.10+ and ComfyUI 0.22.0+.
Pulling, caching, and the errors worth knowing
Artifacts land in ComfyUI/models/modelpack/<model folder>/<hash>/, where <model folder> comes from your model_type choice and <hash> is the first 24 characters of the SHA-256 of the reference string. Digest references are pulled once and reused offline forever; tag references are re-pulled the first time they're used after a restart, with a fallback to the local copy if the registry can't be reached. Credentials for private registries come from docker login in ~/.docker/config.json.
Leave both reference and file empty and you get "Specify a ModelPack reference or a local model filename" - the clearest error in the pack. Otherwise the failure modes are the same as the loaders: a bad in-artifact path lists the valid ones, an artifact with no loadable weight file says so, and a stale reference just 404s against the registry.
One caveat that catches people sharing workflows: the output is an absolute path. C:\Users\you\... or /home/you/... is accurate on your machine and wrong on everyone else's, so don't build a shared workflow around this node's string. It's a local plumbing tool, not a portable one.
Honest summary: if you're using the loader nodes, you'll rarely open this one. It's the node you reach for when you're mid-debug - what's in this artifact, which folder is this file really in, what's the absolute path - and then forget about. That's a legitimate reason for a node to exist. It just isn't the one you install the pack for.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_type | COMBO | 5 options: Checkpoint, Diffusion Model, CLIP, VAE, LoRA | |
| reference | STRING | OCI reference, e.g. registry.example.com/models/foo:v1. Leave empty to select a local file. | |
| file | STRING | Path within the artifact if it has multiple weights, or local ComfyUI model filename. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model_path | STRING | — |