Nodes/comfy-ovum/Map End Ovum
ComfyUI Node

Map End Ovum

Where your map loop's results actually land — Map End Ovum

By sfinktah·Created about a year ago·Updated 10 months ago· 7
Map End Ovum
  • flow_control
  • remaining_list
  • result
  • result

Map End is the closing half of the pack's map loop, and it's the half that does the collecting. MapStartOvum iterates over a list, your inner subgraph does something with each item, and this node receives each per-iteration result, merges it into the running accumulator, and keeps the loop rolling until the list is exhausted. When the loop finally terminates, this node's result output is the finished, accumulated value - the whole point of using a map instead of a bare foreach.

The nicest part is what you don't have to build: no list-append node, no manual "pass the accumulator back to the start" wiring. ComfyUI doesn't allow graph cycles, so loop nodes fake iteration by expanding the inner subgraph recursively at execution time - one copy of your nodes per pass, chained internally. This node handles the bookkeeping (it shares DNA with easyUse's Foreach, per the pack author) so you can focus on the per-item work.

How it works

Mechanically, Map End waits for three things: the flow-control signal and remaining-list from the paired Map Start, plus your result. Each call appends/merges result into the accumulator, then checks whether any items are left. If yes, it recursively expands the contained subgraph for the next item. If the list is empty, it returns the accumulated value straight out of result. It even updates the node status with a n/total progress readout as it grinds through the loop, which is a genuinely nice touch when a loop runs long.

The inputs and outputs that matter

All three inputs are required, and all three matter:

  • flow_control - connect directly to the flow_control output of your MapStartOvum.
  • remaining_list - connect directly to the remaining_list output of the same Map Start.
  • result - the per-iteration output of your inner subgraph. This is what gets merged into the accumulator automatically.

That's it for inputs. The single output is result (*), which is the final accumulated value once the loop completes - typically a list of all the per-iteration results, in order.

Installing it

Ships 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 installs them.

Common issues

The classic failure is a half-wired loop: if flow_control or remaining_list doesn't come straight from the Map Start, the node logs a warning that the remaining list "did not come from Foreach/Map" and the loop misbehaves or spins. Keep those two wires direct. Also watch your result type - the accumulator is whatever shape you feed it, so inconsistent per-iteration results produce a mixed list that downstream nodes may reject. And on very large lists, remember the recursive expansion means one subgraph copy per item; keep the inner subgraph small.

Categoryovum/loop

Inputs (3)

NameTypeDefaultDescription
flow_controlFOREACH_LIST_CONTROLDirectly connect the output of MapStartOvum, the starting node of the iteration.
remaining_listITEM_LISTDirectly connect the output of MapStartOvum, the starting node of the iteration.
result*Connect the per-iteration result here; it will be appended/merged into the accumulator automatically.

Outputs (1)

NameTypeDescription
result*This is the final output value.