Nodes/ComfyUI-PixlStash/PixlStash Picture Loader
ComfyUI Node

PixlStash Picture Loader

Pull vault images into ComfyUI as tensors — browse them, or just let the filters decide

By Pikselkroken·Created 4 months ago·Updated 6 days ago· 7
PixlStash Picture Loader
  • pixlstash_project
  • pixlstash_set
  • pixlstash_character
  • image
  • mask
  • pixlstash_project
  • pixlstash_set
  • pixlstash_character
  • batch_size
picture_ids

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_ids empty 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.

CategoryPixlStash

Inputs (4)

NameTypeDefaultDescription
picture_idsSTRINGComma-separated picture IDs. Use the Browse button to pick interactively. Leave empty to auto-select using sort + filters.
pixlstash_projectoptPIXLSTASH_PROJECTWire from a Project Loader.
pixlstash_setoptPIXLSTASH_SETWire from a Set Loader.
pixlstash_characteroptPIXLSTASH_CHARACTERWire from a Character Loader.

Outputs (6)

NameTypeDescription
imageIMAGE
maskMASK
pixlstash_projectPIXLSTASH_PROJECT
pixlstash_setPIXLSTASH_SET
pixlstash_characterPIXLSTASH_CHARACTER
batch_sizeINT