PixlStash Picture Loader
Pull vault images into ComfyUI as tensors — browse them, or just let the filters decide
- pixlstash_project
- pixlstash_set
- pixlstash_character
- image
- mask
- pixlstash_project
- pixlstash_set
- pixlstash_character
- batch_size
This is the node that gets your PixlStash images into a workflow as actual tensors. PixlStash Picture Loader fetches pictures from your vault and outputs them as IMAGE and MASK batches - same types the built-in Load Image produces - so anything downstream (img2img, upscaling, inpaint, character gates, editing) just works. If the pack had one workhorse, this is it: load a reference, run it through a pipeline, save the result back with the Saver, and the vault never has to leave your loop.
Picker mode vs. browse mode
The node has two personalities, and the difference is picture_ids:
- Picker mode - click the Browse button and a thumbnail browser opens over your vault. Multi-select whatever you want and the node loads exactly those (up to 200). Great when you're choosing references by eye.
- Browse mode - leave
picture_idsempty and the node auto-fetches pictures based on whatever Project / Set / Character filters are wired in, sorted newest-first. This is the one to use headless or in automated loops: wire a Set Loader and it grabs that set's contents on every run, no clicking.
Under the hood it downloads each picture's metadata plus the file itself from PixlStash, decodes it, and builds a single batched tensor. A subtlety worth knowing: pictures of different sizes get resized to match the first image in the batch, so torch.cat doesn't complain - keep your input sizes consistent if you care about exact pixels.
The mask output
The MASK output follows ComfyUI's convention: 1.0 = inpaint, 0.0 = keep, derived from the picture's alpha channel (transparent areas become mask=1). Vault images without an alpha channel get an all-zero mask, so masks only appear where the source actually had transparency. If you're feeding a mask to an inpaint node, that's what you're wiring.
Inputs and outputs
The inputs that matter:
picture_ids(required) - comma-separated IDs, or leave empty for browse mode.pixlstash_project/pixlstash_set/pixlstash_character(optional) - filters from the matching loaders.
Outputs: image, mask, pass-through pixlstash_project / pixlstash_set / pixlstash_character (so you can forward context to a Saver without re-wiring), and batch_size (an INT you can use to size downstream work).
Install and gotchas
Installed with the pack: ComfyUI Manager → ComfyUI-PixlStash, or git clone https://github.com/Pikselkroken/ComfyUI-PixlStash.git into custom_nodes, restart, and set your URL + token in Settings > PixlStash. Only requests and Pillow as dependencies - no model files.
Things that bite: if picture_ids has a non-integer, the node errors rather than guessing. If every selected picture 404s, you get "none of the N selected picture(s) could be found" - re-open Browse and re-pick. And like all nodes here, it needs a running PixlStash server (the self-hosted image manager, formerly PixlVault) with the API reachable - plus a single-user ComfyUI, because multi-user mode makes these nodes refuse to run.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| picture_ids | STRING | Comma-separated picture IDs. Use the Browse button to pick interactively. Leave empty to auto-select using sort + filters. | |
| pixlstash_projectopt | PIXLSTASH_PROJECT | Wire from a Project Loader. | |
| pixlstash_setopt | PIXLSTASH_SET | Wire from a Set Loader. | |
| pixlstash_characteropt | PIXLSTASH_CHARACTER | Wire from a Character Loader. |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |
| pixlstash_project | PIXLSTASH_PROJECT | — |
| pixlstash_set | PIXLSTASH_SET | — |
| pixlstash_character | PIXLSTASH_CHARACTER | — |
| batch_size | INT | — |