Embeddr Merge IDs
Collect several artifact IDs into one wire — the plumbing that makes lineage work
- artifact_ids
Merge IDs is the little node that makes Embeddr's headline feature - lineage, the "this image came from these images" record - actually usable in a graph. It gathers several artifact IDs and merges them into a single list you can feed into an upload's parent_ids, so a new generation automatically records everything that influenced it, not just one parent.
The schema declares no fixed inputs and one output - the author left the inputs to the frontend. In practice the node gives you a set of artifact_* inputs (artifact_1, artifact_2, …) that you wire ID outputs into, and the output artifact_ids is the merged list. The source is blunt about how it works: it walks every input whose key starts with artifact_ and collects whatever non-empty value it finds, in order.
Why you'd bother
ComfyUI's normal wiring gives you one value per wire. When you want to record "this render used reference A, style ref B, and upscale source C," you need those three IDs bundled into one value that travels down one wire. That's this node. It's pure plumbing in the best sense - no network, no pixels, no generation - and the list it produces is exactly the shape Embeddr's upload nodes expect for parent_ids.
It pairs naturally with the rest of the pack: load references with Load Artifact (each gives you artifact_id_out), collect them here, and feed the merged list into Upload Artifact or Upload Video. You get an auditable family tree for every artifact without typing a UUID manually ever again.
The one output to know
artifact_ids, in the pack's custom EMBEDDR_ARTIFACT_ID type - a list of IDs. That's it. Since the inputs are frontend-managed, don't go looking for a fixed schema in the docs; the node's shape is whatever your connected inputs make it. Leave an input unwired and it's simply skipped, which means you can keep a big merged node with a few slots connected and not worry about the empties.
Install & non-issues
Standard pack install: embeddr serve running, pack via ComfyUI Manager or a release into custom_nodes, restart ComfyUI. This node has no extra dependencies and no network calls, so there's essentially nothing to troubleshoot - if it's not producing what you expect, the fault is upstream (a node that returned an empty ID, or a missing wire). One tiny gotcha: because the output is a list, a downstream node that wants a single ID will happily take the list and grab the first element - which is usually what you want for "primary parent," but if you need per-ID processing, run it through Split IDs first. It's the inverse operation, and the pair is how you do both directions.
Inputs (0)
No inputs
Outputs (1)
| Name | Type | Description |
|---|---|---|
| artifact_ids | EMBEDDR_ARTIFACT_ID | List of merged Artifact IDs |