πΎ Mega Slider X1
One float, wired anywhere β the universal slider you'll actually use
- master
- value
Some ComfyUI utility nodes are over-engineered Rube Goldberg machines. πΎ Mega Slider X1 is not one of them. It's a single float slider that outputs a single FLOAT, with a genuinely useful twist: it can take its min/max/step from a Mega Slider Master Value node instead of hard-coding them, and it can hand you an integer instead of a float when you ask. That's the whole pitch, and for driving one parameter - CFG, denoise, LoRA strength, a strength you feed into a blend node - it's exactly enough.
The inputs that matter
- slider_1 - the value itself (FLOAT, β10000 to 10000, default 0). Drag it, wire the output, done.
- output_int (BOOLEAN, default off) - flip it on and the node rounds the value to a whole number on the way out. That's your "integer where an integer belongs" button for step counts, batch sizes, or any downstream node that's picky about ints.
- master (optional,
MEGA_SLIDER_MASTER) - plug in a Mega Slider Master Value and the slider clamps to its range and snaps to its step. Leave it unconnected and you get the raw default range.
Output: one value FLOAT. Wire it into any node that takes a float - that's the point, it's universal.
How the mechanism works
Straightforward, and the source backs it up. When a master is connected, the node reads the min/max/step from the master dict, clamps your slider value into [min, max], and rounds to the nearest step multiple: round(value / step) * step. output_int then casts to int before it's returned. There's no magic, which is exactly why it's reliable - a slider that clamps and snaps is a slider that can't feed a nonsense number into your sampler.
The frontend layer also exposes per-slider overrides: right-click the node β Properties β slider_1_min, slider_1_max, slider_1_step. Set those and they override the master for this slider specifically. Useful when one value in a bank needs its own range.
Why not just use a plain widget?
Fair question. Core ComfyUI nodes already expose float fields. Where Mega Slider X1 earns its keep is the master connection: change the master once and every slider in a bank rescales live, which matters when you're driving several values from the same conceptual range (all strengths 0β1, all denoise 0.3β0.7). And output_int saves you a separate int-conversion node on every integer-typed input. For single-use, it's a nice-to-have; for parameter banks, it's the backbone.
Installing it
It ships in the MachinePainting Nodes pack. ComfyUI Manager β search "MachinePaintingNodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/machinepainting/ComfyUI-MachinePaintingNodes.git
Then restart. The pack depends on opencv-python-headless, numpy<3, and rembg, but this node only passes floats around - no heavy lifting.
Gotchas
- Step snapping is silent. With a master connected at step 0.1, typing 0.33 snaps to 0.3. If a value looks "wrong," check the master's step.
- No master = enormous default range (β10000 to 10000 with 0.01 step). Fine for free-form tuning; annoying if you want a constrained dial - connect a master or use the property overrides.
- The X3/X6/X12 siblings are the same node with more sliders; if you later need three values, swap the node, not the approach.
For one clean float out, this is the one I'd reach for - no ceremony, just a number you can trust.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| output_int | BOOLEAN | false | β |
| slider_1 | FLOAT | 0.00-10000β10000 | β |
| masteropt | MEGA_SLIDER_MASTER | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| value | FLOAT | β |