Combine Paths
Gather a pile of paths into one flat list — Combine Paths
- path1_in
- path2_in
- path3_in
- path4_in
- paths
Combine Paths is the pack's "collect all the paths into one place" node. It takes up to four path inputs - each as either a typed string or a connected list - and flattens them into a single LIST of paths. If you've got an output directory, a couple of filenames, and a list of extra paths from somewhere else, and you want them all in one list before feeding a batch processor, this is the glue.
Read the name carefully, though: "combine" here means collect, not join. This node concatenates paths into a list; it does not do os.path.join style path concatenation. If you want to glue a folder and a filename together with the right separator, that's a different node - the pack has an OvumOsPathJoin in the same family for exactly that. Mixing the two up is the most common way people trip on this one.
How it works
Straightforward flattening. Each of the four slots has a text widget (path1...path4) and a list input jack (path1_in...path4_in). When you connect a list jack, it takes priority over the text widget on that slot. Any value that's a list gets extended into the output; any string gets appended; empty strings are skipped. The result is one flat list, in the order of the slots.
The inputs and outputs that matter
- path1 (required, STRING) - the first path; the only strictly required input.
- path1_in, path2_in, path3_in, path4_in (LIST) - list inputs that override their slot's text widget when connected.
- path2, path3, path4 (STRING, optional) - more single paths to include.
- paths (output, LIST) - the flattened result.
That's the whole surface. If you need more than four sources, chain two of these nodes into each other - the output is a LIST, which connects straight into the next one's list jack.
Installing it
In comfy-ovum (sfinktah). ComfyUI Manager: search "comfy-ovum", install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/sfinktah/comfy-ovum
Restart after cloning. No models, no heavy dependencies - the pack's requirements (pillow, numpy, requests, aiohttp, etc.) are light and Manager resolves them.
Common issues
The "collect vs. join" confusion above is the big one - if your downstream expects a single joined path string and you feed it a list, you'll get a type error that's easy to misread. Also note the priority rule: connect a pathN_in and the matching text widget is ignored, which surprises people who set both expecting a concatenation. And empty strings being silently dropped is usually what you want, but if you need to preserve an empty slot (say, to keep positional indexing), this node will quietly renumber your list.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| path1 | STRING | — | |
| path1_inopt | LIST | — | |
| path2opt | STRING | — | |
| path2_inopt | LIST | — | |
| path3opt | STRING | — | |
| path3_inopt | LIST | — | |
| path4opt | STRING | — | |
| path4_inopt | LIST | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| paths | LIST | — |