cx Sliders
Visual slider, toggle, seed, and slider bank controls for ComfyUI with a lot of customization for controlling things like the min and max values of each node.
ComfyUI cxSliders
Version 1.0.0
Custom slider, toggle, seed, and slider bank nodes for ComfyUI with visual controls. (Dial nodes are temporarily disabled — see below.)
Based on the slider design from ComfyUI-mxToolkit by Max Smirnov.
Features
- V3 Schema Support: Automatically uses V3 schema when available, with V1 fallback for compatibility
- Custom Widget Architecture: All nodes use proper custom widgets with
draw()/mouse()/computeSize()— framework-managed layout, no manual Y calculations - Visual Controls: Interactive sliders, toggles, and seed buttons
- Double-click Editing: Built-in value editing dialog on all numeric nodes
- Properties Panel Integration: Edit all parameters through ComfyUI's Properties Panel
- Customizable Colors: Right-click color pickers for fill, border, and text colors
- Low-quality Rendering: Skips fine detail when zoomed out for performance
- v1.x Migration: Automatically migrates old-format workflows
Installation
-
Navigate to your ComfyUI custom nodes directory:
cd ComfyUI/custom_nodes/ -
Clone or copy this repository:
git clone https://github.com/VirusShell/comfyui-cx_sliders.git comfyui_cxsliderOr install via ComfyUI Manager once listed (search cx Sliders).
-
Restart ComfyUI
Nodes
cxSlider - Int / Float
Slider nodes for controlling integer or floating-point values.
Properties (via Properties Panel):
min- Minimum allowed valuemax- Maximum allowed valuestep- Step increment when snap is enabledsnap- Enable/disable step snapping (default: true)padding- Decimal places format (Float only, default: "0.000")fillColor/borderColor/textColor- Visual customization
Output:
INTorFLOAT
cxDial - Int / Float (temporarily disabled)
Note: The dial nodes are currently disabled and will not appear in ComfyUI. The code is retained; their future (improve interaction or remove) is undecided. Re-enable by uncommenting the dial entries in
__init__.py.
Rotary dial nodes for controlling integer or floating-point values.
Properties (via Properties Panel):
min- Minimum allowed valuemax- Maximum allowed valuestep- Step increment when snap is enabledsnap- Enable/disable step snapping (default: true)padding- Decimal places format (Float only)fillColor/borderColor/textColor- Visual customization
Output:
INTorFLOAT
cxToggle
Binary toggle node (0/1).
Properties (via Properties Panel):
min/max- Value bounds (default: 0/1)fillColor/borderColor/textColor- Visual customization
Output:
INT
cxSeed
Seed generation node with configurable after-generation behavior.
Widgets:
seed- Current seed valuecontrol_after_generate- ComfyUI's built-in control (randomize, increment, decrement, fixed)
Properties (via Properties Panel):
min- Minimum allowed seed value (default: 0)max- Maximum allowed seed value (default: 18446744073709551615)max_digits- Maximum number of digits for seed (0 = no limit, 1-19)
Buttons:
- Recall - Copy the last used seed and set mode to "fixed"
- Random - Generate a new random seed and set mode to "randomize"
Output:
SEED- Integer type
cxSliderBank - Int / Float
Multi-slider bank with configurable number of visible rows (1-8).
Input (backend):
values- JSON string{"s1":…,"s2":…,…,"s8":…}(serialized automatically from the custom UI)
Properties (via Properties Panel):
sliderCount- Number of visible slider rows and outputs (1-8)min/max- Value bounds for all slidersstep- Step incrementsnap- Enable/disable step snappinglabels- Comma-separated row labelsfillColor/borderColor/textColor- Visual customization
Outputs:
OUT_1throughOUT_8- One value per row (unused rows still return 0 from Python)
Old workflows with eight separate slider_N inputs are migrated on load (see the slider-bank entry in the CHANGELOG's pre-public history).
Usage
Basic Interaction
- Click and drag on sliders to adjust values
- Double-click to manually enter a value via dialog
- Values are automatically clamped to the min/max range
Keyboard Modifiers
- Shift + drag - Inverts the snap behavior (if snap is off, temporarily enables it; if on, temporarily disables it)
- Ctrl + drag - Allows setting values outside the defined min/max range
Color Customization
Right-click any node to access color pickers for fill, border, and text colors. Set text color to "auto" for automatic contrast.
cxSeed Usage
- Randomize mode: A new random seed is generated after each queue execution
- Increment mode: The seed increases by 1 after each execution
- Decrement mode: The seed decreases by 1 after each execution
- Fixed mode: The seed remains unchanged between executions
max_digits Property:
max_digits=0- No digit limit (usesmaxproperty)max_digits=8- Seeds limited to 0-99999999max_digits=10- Seeds limited to 0-9999999999
Properties Panel
All properties can be edited through ComfyUI's Properties Panel:
- Right-click the node
- Select "Properties" or use the Properties Panel
- Edit values directly
File Structure
Runtime package files are at the repo root (ComfyUI loads this folder as a custom node). Contributor docs, specs, and CI are also at root but are not executed by ComfyUI. See CODEBASE.MD for the full map.
comfyui_cxslider/
├── __init__.py # Package initialization (reads version from pyproject.toml)
├── pyproject.toml # Canonical version source, ComfyUI registry metadata
├── cxsliders.py # Slider node definitions (V1/V3 dual schema)
├── cxdial.py # Dial node definitions (V1/V3 dual schema)
├── cxtoggle.py # Toggle node definition (V1/V3 dual schema)
├── cxseed.py # Seed node definition (V1/V3 dual schema)
├── cxsliderbank.py # Slider bank node definitions (V1/V3 dual schema)
├── js/
│ ├── cx_utils.js # Shared utilities and constants
│ ├── cx_base_widget.js # Base widget classes (CxBaseWidget, CxNumericWidget)
│ ├── cxslider.js # Slider UI (Int + Float)
│ ├── cxdial.js # Dial UI (Int + Float)
│ ├── cxtoggle.js # Toggle UI
│ ├── cxseed.js # Seed node UI
│ ├── cxsliderbank.js # Slider bank UI (Int + Float)
│ └── docs/ # Per-node help (ComfyUI tooltip)
├── example_workflows/ # Sample graphs for the template browser
├── CHANGELOG.md # Version history (Keep a Changelog format)
├── CODEBASE.MD # Contributor architecture map
├── CONTRIBUTING.md # How to contribute and test
├── LICENSE # MIT License
└── README.md # This file
Example workflows
Load from ComfyUI's workflow/template UI (if enabled) or Load these files:
- example_workflows/cx_sliders_demo.json — slider, toggle, and seed
- example_workflows/cx_slider_bank_demo.json — three-row integer bank
Contributing
See CONTRIBUTING.md for development setup, CI checks, and the manual testing checklist.
Compatibility
- ComfyUI v0.3.75+
- Supports both V1 and V3 schema
Credits
- Slider design and mouse capture implementation inspired by ComfyUI-mxToolkit by Max Smirnov
Changelog
See CHANGELOG.md for full version history.
License
MIT License