SP_CacheDataUnpacker
Split a packed bundle back into eight outputs
- packed_data
- item_1
- item_2
- item_3
- item_4
- item_5
- item_6
- item_7
- item_8
SP_CacheDataUnpacker is the mirror image of SP_CacheDataPacker. The packer squashes up to eight values into one wire so they'll fit through a single cache slot or router branch; this node takes that packed_data bundle and splits it back into eight separate outputs on the other side.
You almost never use it alone. The shape of the whole trick is: pack a bundle → push it through one cache slot (or one router branch) → unpack it on the far side → wire the individual values to wherever they actually belong. The bundle travels as a single atomic object, so it's cached, loaded, or skipped as a unit - no partial states, no eleven cache nodes.
How it works
unpack reads the dict the packer produced and pulls out each key with dict.get, so item_1 through item_8 come out on eight matching outputs. Anything the bundle didn't contain comes back as None - deliberately, per the source: a missing value is normal, not an error. If you hand it data that isn't a packed dict, it logs an error and returns eight Nones rather than crashing.
The inputs and outputs that matter
One input, packed_data - connect the packer's output wire here. Eight outputs, item_1–item_8, any type. Wire the ones you need; the Nones you can ignore.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/bananasss00/ComfyUI-SP-Nodes
restart, or install "SP-Nodes" via ComfyUI Manager. No extra dependencies.
Where people get burned
It's pair-programming, not a general-purpose deserializer: only unpack what SP_CacheDataPacker made, or you'll be staring at eight empty wires wondering what happened. And keep the pack order in mind - since unconnected packer slots simply don't make it into the dict, the unpacker's outputs shift names, not positions. item_3 on the unpacker is always the value that was packed as item_3, which is exactly what you want, but it does mean an unconnected middle slot leaves a gap you should account for downstream.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| packed_data | * | Connect the packed data wire here. |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| item_1 | * | — |
| item_2 | * | — |
| item_3 | * | — |
| item_4 | * | — |
| item_5 | * | — |
| item_6 | * | — |
| item_7 | * | — |
| item_8 | * | — |