Extensions/ComfyUI ModelPack
ComfyUI Extension

ComfyUI ModelPack

ComfyUI custom nodes for loading weights from CNCF ModelPack OCI artifacts.

By SiLeader·Created 4 days ago·Updated about 19 hours ago· 0
SiLeader/ComfyUI-ModelPack
Nodes
On cloudLocal install
Stars0
Updatedabout 19 hours ago
Readme

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

  1. Place this repository at ComfyUI/custom_nodes/comfyui-modelpack.

  2. Install the dependency in the Python environment used by ComfyUI:

    python -m pip install -r ComfyUI/custom_nodes/comfyui-modelpack/requirements.txt
    
  3. 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.