h4 - Context Unpack
The distributor that unpacks an h4 pipe back into real wires
- h4_pipe
- model
- vae
- clip
- positive
- negative
- latent
- image
- mask
- any_A
- any_B
H4_ContextUnpack is the other half of h4_Live's pipe system - the exact mirror image of H4_ContextHub. ContextHub bundles your model, VAE, CLIP, conditionings, latent, image, and mask into a single h4_pipe that travels down one wire. ContextUnpack takes that one wire and fans it back out into the individual outputs so normal nodes can actually consume them. If ContextHub is the Mothership, this is the distributor - cargo in, packages out.
You don't strictly need it, and that's worth saying, because it's the kind of node that confuses beginners. ContextHub already passes every component through as individual outputs alongside the pipe. So you can build a workflow that never uses ContextUnpack at all - just wire from the hub's individual outputs. Where Unpack earns its place is in loop-friendly and multi-consumer graphs: you pack once at the top, ship the pipe around (through buffers, through loops), and then unpack at each point where you actually need the raw model or latent. It keeps the graph tidy without forcing every consumer to dig through a pile of hub outputs.
The input
One input, one job: h4_pipe. That's it. Feed it an H4_PIPE - whether it came fresh from a ContextHub or was extended via a base_pipe chain - and out comes everything that was inside.
The outputs
Ten outputs matching the hub's bundle:
- model, vae, clip - the model stack, ready to wire into a sampler.
- positive, negative - the conditioning pair.
- latent, image, mask - the visual payload.
- any_A, any_B - the wildcard slots, in case you rode something custom through the pipe.
Any value that was never packed (say, no mask went in) comes out as None - and since downstream nodes generally tolerate a missing optional, an empty slot is usually harmless.
The honest caveat
Like every pipe system, h4's is pack-specific. A ContextUnpack will happily take an h4 pipe and only an h4 pipe - rgthree's Context, an Efficiency pipe, or an Easy-Use pipe won't connect. That's the universal tax of the "bundle everything" pattern: every pack invented its own context type and none of them interoperate. If you're married to another pack's context bus, stay married to it; Unpack is for graphs that live in h4_Live.
Installing
Same as the whole pack: ComfyUI Manager → search "h4_Live", or:
cd ComfyUI/custom_nodes
git clone https://github.com/m3rr/h4_Live
restart, done. Pure Python, no dependencies, no models.
Where people get burned
The most common mistake is expecting Unpack to merge pipes or to act as a fallback. It doesn't - it's a pure fan-out. If you feed it a pipe that was assembled badly (say, a base_pipe was never passed into the hub that built it), the outputs are just empty. Debug by checking what actually got packed at the hub end, not by poking at the unpacker. Also remember the ecosystem note: this is a genuinely useful tool inside h4-Live-only graphs, and a paperweight anywhere else.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| h4_pipe | H4_PIPE | — |
Outputs (10)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| vae | VAE | — |
| clip | CLIP | — |
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |
| image | IMAGE | — |
| mask | MASK | — |
| any_A | * | — |
| any_B | * | — |