Faishme Split
One Wire In, Nine Wires Out — a Python Unpack, Exposed as a Node
- value
- output1
- output2
- output3
- output4
- output5
- output6
- output7
- output8
- output9
Faishme Split is a destructuring node: one value goes in, up to nine values come out. If you've ever written a, b, c = my_list in Python, that's exactly what this is, rendered as a graph. It exists because some nodes in this pack (and its data flow generally) hand around collections - a list or tuple of images, strings, masks - and you often need to pull individual items out to route them to separate destinations.
How it works
The mechanism is almost insultingly simple. The node takes any value, and its split function just returns that value as-is, directly against nine declared outputs. ComfyUI then unpacks whatever the value is into those nine output slots, one item per slot:
def split(self, value):
return value
That means the input must be a sequence with exactly nine items - a list or tuple of nine things - or the node fails with an unpacking error the moment it runs. Feed it a list of nine images and you get nine single-image outputs. Feed it a list of eight and the run dies. There's no tolerance, no padding, no cleverness: it's a fixed nine-slot unpack.
Inputs and outputs
- value - any type (
*). Must be a 9-element list/tuple in practice. - output1 through output9 - the nine items, in order, each any type.
It's marked as an output node, so it can sit at the end of a branch - though wiring the outputs onward into other nodes is the actual point.
Where you'd actually use it
This is a niche utility that earns its place in two situations. First, paired with this pack's Stack Images / Unstack Images flow, where lists of images travel around and you occasionally need to peel off individual frames. Second, when a node emits a fixed-size collection and you want each element on its own wire for separate handling - say, taking a nine-item batch of latents and conditioning each one differently. If neither of those sounds like your workflow, you can safely skip it; the built-in Anything Everywhere-style routing or a simple list-index node does similar work with fewer fixed assumptions.
Installing it
The usual pack install - ComfyUI Manager, search "ComfyUI_faishme", or:
cd ComfyUI/custom_nodes
git clone https://github.com/AkashKarnatak/ComfyUI_faishme
Restart ComfyUI. It appears under FaishmeNodes with no extra dependencies.
The trap
The fixed nine-slot contract is the whole gotcha. Because the input is typed Any, ComfyUI won't warn you at wiring time when the value is the wrong length - it only explodes at execution with a terse "not enough values to unpack" error. If you see that, count your items before assuming the node is broken. It's a fine little utility, but it's rigid by design: nine in, nine out, no exceptions.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| value | * | — |
Outputs (9)
| Name | Type | Description |
|---|---|---|
| output1 | * | — |
| output2 | * | — |
| output3 | * | — |
| output4 | * | — |
| output5 | * | — |
| output6 | * | — |
| output7 | * | — |
| output8 | * | — |
| output9 | * | — |