PixlStash Checkpoint Loader
The PixlStash checkpoint loader that refuses to download anything
- model
- clip
- vae
Here's the thing nobody tells you until you queue it: of all the model-shelf loaders in ComfyUI-PixlStash, this is the one that cannot fetch its file. PixlStash serves adapter bytes and text-encoder bytes, but not checkpoint bytes. The checkpoint has to already be readable on the machine ComfyUI runs on. That's the normal case when ComfyUI and PixlStash live on the same box or share a drive mount - and never the case when they don't. If your ComfyUI reaches PixlStash over the network on separate hosts, this node is a dead end, no matter how good the connection is.
What it is
It's a drop-in for ComfyUI's built-in Load Checkpoint, producing the same three outputs in the same order: model, clip, vae. Instead of a dropdown of filenames there's a Browse checkpoints… button that opens a grid from the PixlStash model shelf, showing the names, base models and icons the shelf recorded. Pick one and the node loads it exactly like the built-in does.
How it works
The one input, checkpoint_id, is written by the Browse button - a shelf id, not a SHA-256. That's deliberate: a 24 GB checkpoint is listable long before the server has finished hashing it, so the shelf addresses checkpoints by id and this node follows. On load it resolves the record to a local path (with the same strict size-and-extension check the other loaders use), and if no usable copy exists it errors with a message that tells you exactly why: mount that drive here, or copy the file into a ComfyUI models folder and rescan it into PixlStash.
The interesting edge case: a bare diffusion model - a Flux UNET sitting in models/diffusion_models, for instance - is filed as a checkpoint by PixlStash's parameter-count rule, so it shows up in the grid too. ComfyUI can't build a CLIP or a VAE out of a bare UNET, so the node loads it as a MODEL and returns empty clip and vae outputs. That's not a bug: wire the CLIP from a PixlStash CLIP Loader and the VAE from a PixlStash VAE Loader and you've rebuilt the pipeline the way the README's Flux.2 example does.
Install and setup
cd ComfyUI/custom_nodes
git clone https://github.com/Pikselkroken/ComfyUI-PixlStash.git
Or search ComfyUI-PixlStash in ComfyUI Manager. It only needs requests and Pillow - both already in any ComfyUI - so there are no heavy dependencies to fight. Restart, then put your PixlStash URL and API token in Settings > PixlStash. The shelf routes are OWNER_ONLY, so use an owner token, not a resource-scoped share token - the kind that works fine with the Picture Loader will 403 here. Multi-user ComfyUI (--multi-user) isn't supported either; run one single-user instance per PixlStash user.
Where people get burned
- Split-host setups simply don't work. If PixlStash isn't on the same filesystem as ComfyUI, this node can't load anything. The error message is honest about it; don't fight it, restructure.
- Empty
clip/vaeoutputs on bare diffusion models. Checkpoint loaders normally give you all three. If a grid entry is a UNET-only model, its CLIP and VAE are null - wire them from their own shelf loaders. - It's addressed by shelf id. If a checkpoint leaves the shelf, old workflows fail with "not on the shelf any more." Pick again with Browse.
If you're only interested in this pack because it looks like a convenient way to load a checkpoint from somewhere else, the built-in Load Checkpoint already does that. The PixlStash Checkpoint Loader only pays off when your whole model library lives on the shelf.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| checkpoint_id | STRING | Written by the Browse button — the shelf id of the checkpoint. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | The diffusion model, for a KSampler. |
| clip | CLIP | The CLIP for encoding prompts. Empty for a checkpoint that carries no text encoder — wire a PixlStash CLIP Loader instead. |
| vae | VAE | The VAE for encoding and decoding images. Empty for a checkpoint that carries none — wire a PixlStash VAE Loader instead. |