Unique List
The dedupe node that got renamed, then deprecated
- py_list
- *
The most useful thing to know about Unique List is that its own source marks it deprecated. Look at the class in the pack and you'll see DEPRECATED = True and the display name rewritten to UniqueListDEPRECATED(batch). It still works - it's an order-preserving dedupe that removes duplicate values from a batch and keeps the first occurrence - but the author has already moved the same logic into two cleaner siblings, UniqueListOvum and UniqueBatchOvum. If you're building a new workflow, use those instead.
Why should you care about a deprecated node at all? Two reasons. One: old shared workflows still contain it, so knowing what it does (and that it's a "batch"-style node, category ovum/lists/any) saves you a round of confusion when it shows up missing in ComfyUI Manager. Two: the rename history is a genuinely useful warning about this pack - sfinktah iterates fast, and node names here shift between releases. Load a year-old workflow and you may need to swap in the current name.
How it works
Same engine as its siblings: walk the batch, remember each item the first time it's seen, drop duplicates, preserve order. When an item isn't hashable - a dict or list element - it falls back to an equality scan against the result list. INPUT_IS_LIST/OUTPUT_IS_LIST are set, so it speaks Comfy's batch convention: one connection carries a list of values.
Input and output
py_list- required, type*. The batch to dedupe. That's the entire interface.- Output:
*, marked as a list.
Install
Manager: search comfy-ovum, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/sfinktah/comfy-ovum
Restart. No model downloads; nothing exotic in the pack's requirements for this node.
The move
If you see Unique List (a.k.a. UniqueListDEPRECATED(batch)) in an old graph, don't panic - but do migrate. Wire the same batch into UniqueBatchOvum or UniqueListOvum, delete the old node, and re-save the workflow. The dedupe behavior is identical, order preserved, and you've traded a deprecated node for one that'll survive future pack updates. That's the whole story: it's a fine utility that simply got a better address.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| py_list | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| * | * | — |