Universal Slider Builder (NH)
Build your own parameter node from a text config — no Python required
Universal Slider Builder (NH) is the pack's party trick. One node, a text box, and it manufactures a fresh control surface on the fly: type a few lines describing sliders, and it grows the exact output sockets you asked for, named after your parameters. Want a node with strength, steps, and cfg sliders that don't exist in any pack? Here's the one that mints them.
It's the answer to a specific, annoying problem: you're building a repeatable workflow, you know it needs a few tunable numbers, and you don't want to wire six loose primitive nodes or edit Python to get named controls. This node turns a config string into a custom parameter node while you watch.
How it works
The single input is config, a multiline string. The format is one slider per line:
name, type, default, min, max, step
Lines starting with # are comments, which the default config uses to show you the syntax:
# Syntax: name, type, default, min, max, step
strength, FLOAT, 0.0, -1.0, 1.0, 0.01
steps, INT, 0, -100, 100, 1
That config gives you two outputs - strength (a FLOAT) and steps (an INT) - each with a proper slider widget in the min/max/step range you set. The node parses the config, builds the widgets, and wires the values through dynamically. One detail worth knowing: an INT slider with a range wider than ~4096 values switches itself to a plain number field instead of a slider, which is a sensible touch - nobody wants a 0–100000 slider.
The honest trade-off
This is a dynamic node, and dynamic nodes are fiddly. When you edit the config, the node's socket signature changes - it literally redefines its own outputs at runtime - so after a config edit the graph may need a refresh before you can rewire the new sockets. It's also marked as an output node, which means it runs on every queue; that's fine here because it's cheap.
So the calibration: if you just need five fixed float controls, the pack's Multi-Slider (FLOAT/INT) nodes are simpler and I'd reach for them first. Universal Slider Builder earns its keep when the parameter set is a deliverable - a named, reusable control panel you're going to share, or a workflow where the tuneable knobs genuinely map to strength/steps/cfg and you want the sockets named that way. Once the config is stable and you stop touching it, it behaves like a normal node.
Install
It ships in NH-Nodes: ComfyUI Manager → search NH-Nodes → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/jetthuangai/NH-Nodes.git
cd NH-Nodes
pip install -r requirements.txt
Restart ComfyUI and refresh the browser if the node looks stale. No models, no heavy dependencies - it's pure widget generation.
One tip from reading the source: the config parser is strict about the comma-separated fields, and a malformed line prints an error to the console and gets skipped. Keep the format name, type, default, min, max, step with no stray commas in the name, and it'll behave.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| config | STRING | # Syntax: name, type, default, min, max, step # Example: strength, FLOAT, 0.0, -1.0, 1.0, 0.01 steps, INT, 0, -100, 100, 1 | — |
Outputs (0)
No outputs