Nodes/SP-Nodes/SP_CacheDataPacker
ComfyUI Node

SP_CacheDataPacker

Stuff eight wires into one slot so your cache node doesn't run out

By bananasss00·Created 2 years ago·Updated 13 days ago· 24
SP_CacheDataPacker
  • 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.

CategorySP-Nodes/cache/utils

Inputs (8)

NameTypeDefaultDescription
item_1opt*Any data to pack.
item_2opt*
item_3opt*
item_4opt*
item_5opt*
item_6opt*
item_7opt*
item_8opt*

Outputs (1)

NameTypeDescription
packed_data*