ComfyUI ModelPack
ComfyUI custom nodes for loading weights from CNCF ModelPack OCI artifacts.
ComfyUI ModelPack
ComfyUI custom nodes for loading weights from CNCF ModelPack OCI artifacts. The nodes use modelpack-client to pull and validate an artifact, then load the selected weight file with ComfyUI's native loaders. They can also select models already installed in ComfyUI.
Installation
-
Place this repository at
ComfyUI/custom_nodes/comfyui-modelpack. -
Install the dependency in the Python environment used by ComfyUI:
python -m pip install -r ComfyUI/custom_nodes/comfyui-modelpack/requirements.txt -
Restart ComfyUI. The nodes appear under ModelPack and ModelPack/loaders.
Python 3.10 or later is required. Pulling an artifact requires access to its OCI registry. Credentials saved by docker login in ~/.docker/config.json are used.
Using the nodes
Enter an OCI artifact reference in reference, for example registry.example.com/models/my-checkpoint:v1. If the artifact contains exactly one supported weight file, leave file blank. If it contains several, set file to the path of the desired file inside the artifact, such as weights/clip_l.safetensors. Files with the extensions ComfyUI accepts for models are used: .safetensors, .sft, .ckpt, .pt, .pt2, .pth, .bin, and .pkl.
To use an existing ComfyUI model, leave reference blank and set file to a model filename from the corresponding ComfyUI model folder. At least one of these fields must be set.
| Node | Result | Additional inputs |
| --- | --- | --- |
| ModelPack Download / Select File | Absolute model path as a STRING | model_type selects the model folder |
| ModelPack Checkpoint | MODEL, CLIP, VAE | — |
| ModelPack Diffusion Model | MODEL | weight_dtype |
| ModelPack CLIP | CLIP | type selects the CLIP architecture; device can load it on the CPU |
| ModelPack VAE | VAE | — |
| ModelPack LoRA | Updated MODEL, CLIP | model, clip, strength_model, strength_clip |
For example, add ModelPack Checkpoint, set reference to the artifact reference, and connect its MODEL, CLIP, and VAE outputs as you would with a native checkpoint loader. For a LoRA, connect existing MODEL and CLIP outputs to ModelPack LoRA, then set its reference and strengths.
Downloaded files are stored under ComfyUI/models/modelpack/<model folder>/<reference hash>/. A digest reference such as registry.example.com/models/my-checkpoint@sha256:… is downloaded once and then reused without contacting the registry. A tag reference is pulled again the first time it is used after ComfyUI starts, so a tag that has moved is picked up; if the registry cannot be reached, the copy downloaded earlier is used. Use a digest reference for a reproducible workflow and to avoid downloading again after a restart. If a requested file is missing or the artifact has multiple weight files without a file selection, the node reports the available weight paths.
Development
The tests do not need ComfyUI:
uv run python -m unittest discover -s tests
License
Apache License 2.0. See LICENSE.