Number Pick Pixaroma
Stop retyping 20 into the steps box
- value
Steps at 20, then 30, then back to 20 because 30 got crunchy. The usual cure is a value node - right-click the steps widget, Convert widget to input, drop a PrimitiveInt on it - except you're still retyping the number into a text box every time.
Number Pick Pixaroma is that plumbing with the text box replaced by buttons you define yourself. You click 20, it sends 20.
What it is
A plumbing node, sitting alongside core's PrimitiveInt/PrimitiveFloat and the value nodes in rgthree, Efficiency and Easy-Use. One output, one number, wire it wherever. The twist: the value is chosen, not typed.
That twist matters because value nodes exist for repetition. Buttons are per node, so one of these can offer 1 / 2 / 4 / 8 for a batch size while another offers 10 / 20 / 30 for steps on the same canvas. Rename the node and it reads as a labelled control instead of a mystery chip row.
How the type works, because that's the clever bit
Do you need an int version and a float version? No. The Python side declares the output as ANY - the * wildcard - but the browser narrows the socket to INT,FLOAT. LiteGraph reads a comma-joined type as a list of accepted names, so one socket takes a whole-number input or a decimal one, and refuses a MODEL, IMAGE or STRING drag outright.
The frontend then reads what you plugged in and tells the backend which form to emit: all targets INT and it sends an int, all FLOAT and it sends a float. Nothing wired, or a mixed bag, falls back to "auto", which decides from the number itself - 4 goes out as 4, 4.5 as 4.5. Unplug it and it fits anything again, so the node moves around without getting stuck as one type.
Decimals on buttons are fine (there's a "Fine" preset of 0.25 / 0.5 / 0.75 / 1 for denoise and LoRA strengths), and a float headed into a whole-number input rounds rather than truncates, so a 7.6 chip becomes 8.
The parts you actually touch
There are no inputs - required and optional are both empty, so nothing wires into this node. The single output is value, the number you picked, wired to steps, batch size, a width, frame rate, cfg or denoise.
Everything else is behind the gear (right-click opens the same panel). That's where you type the buttons: any numbers, separated by commas, spaces or newlines, sorted and de-duplicated, up to 12 per row. Quick sets (Doubling, Steps, Tens, Fine, Frame rates) just write numbers into that field, and the panel refuses an empty one rather than silently resetting you. Past 12 buttons the row gets cramped, so drag the node wider.
The state is injected into a hidden input at prompt time, so your click lands in the node's cache signature and a run picks it up with no "always rerun" hack. Only the value and the type reach the prompt - the button list is presentation, so editing your buttons invalidates nothing downstream, while clicking a different one does.
Installing
ComfyUI Manager: search Pixaroma, install, restart. On the Windows ComfyUI Easy Install the pack is already bundled - run its updater. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/pixaroma/ComfyUI-Pixaroma
Restart after. The README's manual line shows a GitLab mirror of the same repo, so don't be thrown by that URL. Dependencies are trivial: requirements.txt is imageio-ffmpeg, and that's for the pack's video nodes, not this one.
Common issues
A node looks blank or broken after updating. The pack's most common report, and per the README usually not a bug - your browser is caching old node visuals. Hard refresh with Ctrl+Shift+R (Cmd+Shift+R on Mac). Number Pick is drawn by JavaScript, so a stale cache gives you a chip row that won't draw or a gear that opens nothing.
You found a bug or want a feature. Issues, Discussions and PRs on the repo are closed on purpose - everything goes to the #pixaroma-nodes channel on the Pixaroma Discord, which gets you an answer in minutes instead of a queue. There's also an in-app help window (the orange ? in the toolbar), one page per node.
It won't connect to something. By design when the target isn't numeric - and if it is, check the widget was really converted to an input first.
A third-party extension can't see Pixaroma's text boxes. The pack builds its own DOM widgets instead of using ComfyUI's standard text-widget factory, so tools that hook ComfyWidgets.STRING (Autocomplete-Plus is the common one) can't find them. Doesn't affect Number Pick, but it's the same decision that lets these buttons render identically on the classic canvas and the Nodes 2.0 Vue frontend.
Inputs (0)
No inputs
Outputs (1)
| Name | Type | Description |
|---|---|---|
| value | * | The number you picked. It arrives as a whole number or a decimal to match the input it is wired to, so you can send it straight to steps, a batch size, a width, a frame rate, cfg or denoise without anything in between. |