ποΈ Parametric Slider
A slider that remembers its units, its bounds, and its last value
- float_val
- int_val
- text_val
- label
- min
- max
- step
- log
The Parametric Slider is what happens when a slider carries its own paperwork. Where a normal ComfyUI float widget is just a bare number, this one knows its minimum, maximum, step, default, label, precision, and even a unit - because all of that is defined in a JSON preset file on disk. Pick a preset, and the slider conforms to it: a resolution slider that steps in 64px increments and labels itself "Resolution (px)", a percent slider that caps at 100, whatever you declare.
It's the A1111 refugee's comfort food, honestly. The control_after_generate menu - fixed, increment, decrement, randomize - is the classic "what should this value do after the queue finishes" behavior that ComfyUI's native widgets never shipped. Set a value to increment and each generation nudges it along automatically; you get a parameter sweep without touching the node between runs.
How it works
Presets live as JSON files in the pack's json_slider/ folder. Each file declares the shape of a slider. The README's example:
{ "min": 1, "max": 8192, "step": 64, "default": 512, "label": "Resolution", "precision": 0, "unit": "px" }
The pack ships six presets - Percent_0_to_100, Percent_-99_to_1000, Value_0_to_100, ValueFloat_0_to_100, Value_0_to_100-fix0, and px_64_to_8192 - and it auto-creates a few defaults in the folder on first run. On execution, the node clamps your value to the preset's bounds, rounds it to the preset's precision, and computes the outputs. It also watches the folder: if a JSON file changes, the preset cache reloads, so you can edit presets without restarting ComfyUI.
Inputs and outputs
- Inputs:
preset(enum) - which JSON definition to obey.value(FLOAT) - the slider position, clamped to the preset's range.control_after_generate(enum) -fixed,increment,decrement, orrandomize.
- Outputs:
float_val(FLOAT) andint_val(INT) - the value in both types, for whatever consumer you have.text_val(STRING) - the value as a string with its unit (e.g."512px").label(STRING),min(FLOAT),max(FLOAT),step(FLOAT) - the preset's metadata, so downstream nodes know what they're being given.log(STRING) - a debug line describing what ran.
Where it earns its keep
Batch sweeps and parameter ramping. Wire float_val into a sampler's CFG, a denoise amount, or an upscale factor; set control_after_generate to increment; and run a queue that walks the parameter up the range automatically. The text_val with unit is handy when you're logging or building filenames from parameters. And because the range metadata comes out as ports, a downstream script can react to what the slider actually permits, not what you assume.
Troubleshooting
- Value snaps to an unexpected bound? It's clamped to the preset's min/max. If you want a wider range, edit the preset JSON.
- Want a new slider type? Drop a JSON file into
json_slider/following the example above; the preset list picks it up (the folder is re-scanned when files change). int_vallooks one off? It truncates toward zero from the rounded float, not a separate rounding path.
Installing it
It's part of Orion4D_MetaNode:
cd ComfyUI/custom_nodes
git clone https://github.com/orion4d/Orion4D_MetaNode
Or install via ComfyUI Manager (search "Orion4D_MetaNode") and restart. It lives under Orion4D_MetaNode β UI Widgets. No extra dependencies, no model files. Honest context: young, single-developer pack with a modest footprint - this is a personal-utility node, but the JSON-preset + control-after-generate combo is the kind of thing you'll miss once you've used it.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | 6 options: Percent_-99_to_1000, Percent_0_to_100, ValueFloat_0_to_100, Value_0_to_100, Value_0_to_100-fix0, px_64_to_8192 | |
| value | FLOAT | 50.0-999999β999999 | β |
| control_after_generate | COMBO | 4 options: fixed, increment, decrement, randomize |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| float_val | FLOAT | β |
| int_val | INT | β |
| text_val | STRING | β |
| label | STRING | β |
| min | FLOAT | β |
| max | FLOAT | β |
| step | FLOAT | β |
| log | STRING | β |