Make/Create Tuple
Pack any two values into a Python tuple
- a
- b
- tuple
Make/Create Tuple takes two values - anything at all - and wraps them into a Python tuple. (a, b). That's the whole job, and it's one of those nodes you won't need daily but will be very glad exists on the day you need it.
Why tuples? In ComfyUI's graph world most things travel as single values or as lists, but some nodes genuinely hand you a pair that belongs together and wants to stay that way - a width/height pair, an (x, y) coordinate, a (filename, exists) bundle, or the sort of two-value record that several downstream tool nodes return. A tuple is the immutable "these two things travel as one" container, and the pack author's own easyUse loop guide is full of tuples being used exactly that way - carrying paired values around inside loop iterations.
Both inputs, a and b, are typed *, so they accept strings, numbers, lists, dicts, images - whatever you wire in. The output is a single TUPLE socket. What you do with it next is the fun part: feed it into something that knows how to read a tuple, or unpack it back with From List Type / From Batch Type (both in this pack) by converting it to a list, since most of Ovum's list tooling accepts tuples interchangeably.
The practical uses
- Loop plumbing. Pair a value with a flag or an index, carry it through a
ForeachListBegin/Endpair, and unpack it inside the loop body. - Geometry. Width/height and x/y pairs are the canonical tuple; build them once and route the single socket instead of two parallel wires.
- Records. Two values that should never be separated - e.g. a filename and its metadata - get one tidy wire instead of two loose ones.
Installing it
It's in sfinktah/comfy-ovum:
cd ComfyUI/custom_nodes
git clone https://github.com/sfinktah/comfy-ovum
or install comfy-ovum via ComfyUI Manager, then restart. No models or heavy dependencies. Search "tuple" or "ovum" to find it - the class name createTuple is all lowercase, so don't fight the node menu.
Gotchas
A couple of small ones. First, a tuple is immutable - if you need to change one element after the fact, you rebuild it rather than editing it in place; that's by design, not a bug. Second, remember this creates a single tuple object, not a list. If the downstream node expects a list, convert with the pack's From List Type nodes rather than assuming the types line up. And that's about it - it's a two-value wrapper, it does exactly what it says, and it composes quietly with the rest of Ovum's list and loop family.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| a | * | — | |
| b | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| tuple | TUPLE | — |