Min Numbers Node
Grab the Smallest of Up to 10 Values Without Touching a Formula
- minimum
You've got a batch cap over here, a dimension limit over there, a constraint from a VRAM check somewhere else - and the number that actually binds is whichever is smallest. That's the whole job of the Min Numbers Node from easy_maths: it takes up to ten integer inputs and hands you the minimum as a single INT wire. No formula string, no MathExpression syntax to remember, just labeled sockets and one answer.
It's the kind of node that feels pointless until the moment you need it. Core ComfyUI is full of binary math - add, subtract, multiply - but a clean "min of N" aggregator with a visible socket per value is easy_maths's one real trick.
What the pack actually is
Honest framing first: easy_maths is a young pack, essentially one real node sitting on top of ComfyUI's official cookiecutter template. The README is the untouched scaffold - it literally still says "A list of features" - and the repo has a single commit from July 2025. Don't come in expecting a WAS-style toolkit. Come in expecting one small, correctly-behaved utility.
That's not a knock. The genuinely good part is that the pack has zero dependencies and downloads no models. The install risk is as low as it gets in the ComfyUI ecosystem.
How it works
Read the source and it's fifteen lines. The node has a num_inputs widget that says how many of the ten number sockets count, then it grabs number_1 through number_<num_inputs>, calls Python's min() on them, and returns the result as minimum.
Two design details fall out of that. First, the unused sockets aren't removed - number_3 through number_10 are always on the node, they're just ignored. Second, every number defaults to 10000, deliberately large so an inactive socket never accidentally wins. If you set num_inputs to 2, sockets 3–10 don't matter no matter what's typed in them.
The inputs that matter
Of the eleven widgets, you really touch two:
- num_inputs - how many of the number sockets to read. Default 2, range 1–10. This is the one people forget to raise, and it's the classic source of "wrong answer" confusion (see below).
- number_1 … number_10 - the values themselves. All default to 10000.
One quirk worth knowing: the sockets are typed INT, but the widget step is 0.1, so ComfyUI will happily let you type 2.5 into an integer field. The node doesn't care - min() works on floats too - but the output socket is INT and the inputs are declared INT, so treat a decimal as a template oddity rather than a feature you should lean on.
Output: a single INT named minimum. Wire it anywhere an integer is expected - batch size, width/height via a converted widget, a steps cap, whatever constraint should inherit the tightest value. With num_inputs set to 1 it's just an identity pass-through, which is fine but rarely why you installed it.
Installing it
Standard stuff, and the README says so:
cd ComfyUI/custom_nodes
git clone https://github.com/Ikarus-Pratham/easy_maths
Restart ComfyUI, then find "Min Numbers Node" under the math category in the node menu. Easier still: open ComfyUI-Manager, search for easy_maths, and hit install. No models to download, no pip packages beyond the built-in stdlib.
Gotchas and troubleshooting
- You changed three numbers but the answer only reflects two.
num_inputsis still at its default of 2. Raise it to match how many sockets you actually filled. - It returns 10000 when your values are smaller. If that happens, one of the numbers you typed is genuinely above 10000 - or
num_inputsis including a socket you left at its default. The 10000 default is "inactive" in spirit, but oncenum_inputscounts a socket, it's live. - Can't find it in Manager. The Manager database can lag a brand-new pack. Clone manually and it works immediately.
- You hit a real bug. The pack is one commit in, so there's no big community thread to lean on. The node is small enough to read yourself; otherwise the GitHub issues tab is the honest path.
Bottom line: if you're computing a one-off min, core's Math Expression node can do it. This is for when you want the constraint visible as labeled sockets instead of a formula string - and for the zero-risk install while you're at it.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| num_inputs | INT | 21–10 | — |
| number_1 | INT | 10000 | — |
| number_2 | INT | 10000 | — |
| number_3 | INT | 10000 | — |
| number_4 | INT | 10000 | — |
| number_5 | INT | 10000 | — |
| number_6 | INT | 10000 | — |
| number_7 | INT | 10000 | — |
| number_8 | INT | 10000 | — |
| number_9 | INT | 10000 | — |
| number_10 | INT | 10000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| minimum | INT | — |