SP_CacheDataPacker
Stuff eight wires into one slot so your cache node doesn't run out
- item_1
- item_2
- item_3
- item_4
- item_5
- item_6
- item_7
- item_8
- packed_data
SP_CacheDataPacker takes up to eight inputs of any type and bundles them into a single object that travels down one wire. It's the workaround for the limit that every multi-value node hits eventually: not enough slots.
Consider the arithmetic. SP_CacheAutoLoaderMulti caches five values, SP_CacheAutoLoaderMulti10 ten. What do you do with eleven things, or when you want to push a bundle through a single cache slot so everything is stored and loaded as one atomic entry? You pack them. Eight items in, one packed_data out - which fits into one value slot, or rides through one SP_CacheRouter branch, without spilling across nodes.
The node's own description calls the intent plainly: "perfect for bypassing slot limits: pack 8 items, send them through ONE cache slot, and unpack on the other side."
How it works
pack collects whatever inputs are actually connected into a Python dict - {"item_1": ..., "item_2": ...} - and returns it on the packed_data wire. Unconnected slots simply don't appear in the dict, which is the key detail: it only packs what you wired. The type is any, so it composes with anything the cache nodes can hold (joblib serializes most things, including tensors).
The inputs that matter
item_1 through item_8, all optional, all any-type. Connect what you need; the rest is ignored. Output is a single packed_data wire.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/bananasss00/ComfyUI-SP-Nodes
restart, or install "SP-Nodes" via ComfyUI Manager. No dependencies beyond the pack.
Where people get burned
The packer and unpacker are a matched pair - feed SP_CacheDataUnpacker anything that isn't a dict produced by this node and it just emits eight Nones plus a logged error. And remember the packing is only as good as the cache you push it through: if you pack eight things into one cache entry, the whole bundle is what gets cached or invalidated. Change one item, and the key (if you're using a manual one) still points at the old bundle - pair the packed slot with SP_CacheSmartHashKey so any change re-keys it.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| item_1opt | * | Any data to pack. | |
| item_2opt | * | — | |
| item_3opt | * | — | |
| item_4opt | * | — | |
| item_5opt | * | — | |
| item_6opt | * | — | |
| item_7opt | * | — | |
| item_8opt | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| packed_data | * | — |