ControlFreak
MIDI and Gamepad Control
First, the confusing part: the "ControlFreak" node you found is a lie. It has no inputs, no outputs, and does nothing. That's intentional - it's a hidden marker node that only exists so ComfyUI-Manager can detect the pack when someone shares a workflow with mappings baked in. The actual product is the browser extension that ships alongside it. So if you added the node to your graph and stared at an empty box, congratulations, you found the whole thing.
Here's what the pack actually does: it maps MIDI controllers, gamepads, and joysticks to any widget of any node in your workflow. Spin a physical knob and your CFG slider moves. Toggle a pad and your upscaler switches on. Press a button and it queues the prompt. No API keys, no model downloads, no Python dependencies. The author is RyanOnTheInside, the same person behind the realtime and audio-reactive ComfyUI packs, and this is his "give me a physical control surface" project.
How it works
Everything runs in the browser, not the server. There's no WebSocket round-trip per knob turn; the JavaScript reads device input directly and mutates widget values client-side. Two browser APIs do the heavy lifting:
- Web MIDI API (
navigator.requestMIDIAccess) for MIDI controllers - knobs, sliders, pads, pitch wheel, the lot. - Gamepad API for pads and joysticks - buttons, analog sticks, triggers, D-pads.
The value conversion is the clever bit. A MIDI knob spits out 0–127 and a gamepad stick lives in −1…1, but your widget wants an INT, FLOAT, BOOLEAN, or COMBO with its own min/max/step. ControlFreak normalizes the raw input to the target range (gamepad axes get shifted from [−1, 1] to [0, 1] first) and respects the widget's constraints. Mapping types cover the cases: Direct for absolute knob position, Toggle for a rising-edge button press, Incremental, and command triggers.
Actually using it
- Quick Map: right-click directly on a widget → "Quick Map '[Widget Name]'" → move the controller input. First detected input wins, mapped with sane defaults.
- Standard Map: right-click the node → "Map Control..." → widget → "Standard Map..." → a learning dialog appears, you wiggle the knob, pick the detected input, optionally set custom min/max, and pick a mapping type.
- Controller Panel:
Edit → Controller Mappinglists devices, connects/disconnects them, and shows every mapping; mapped widgets get a subtle orange glow so you can see what's live. - UI commands: from the panel's Mappings tab you can bind a control to core commands like Queue Prompt, Interrupt, or canvas zoom.
Real-world use cases from the community: someone drives CFG and steps from a physical mixer, and someone else uses an 8x8 Launchpad to toggle an upscaler and a face enhancer on and off. "I play ComfyUI on the piano" is a real sentence now, and it's the best summary of the vibe.
Installation
ComfyUI Manager, or the manual way:
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_ControlFreak.git
Then restart ComfyUI. That's it - the pyproject.toml declares zero dependencies, and there's no requirements.txt, because there's no Python to install.
Gotchas
- MIDI needs Chrome or Edge. Web MIDI isn't supported in Firefox or Safari. Gamepads work everywhere modern, MIDI needs Chromium. If your knobs are invisible to ControlFreak, check the browser before you blame the node.
- The README drifts from the UI. A user following the README found no "Controller Mapping" entry under the Edit menu but did get a button on the menu bar. The pack also documents mapping profiles that the README's own config section calls "Coming Soon." If the menu you were promised isn't there, poke around the menu bar.
- Latency is a browser problem, not a server one. One user reported a knob sweep feeling slow (~4s to go 1→50). The author's answer is that there's no server hop at all - all in-browser. So if a mapping feels laggy, it's your browser choking on heavy UI redraws, not the network.
- Watch ComfyUI updates. This is a pure frontend extension, and ComfyUI's Nodes 2.0 frontend rewrite broke several JS-heavy packs in late 2025. If a ComfyUI update ever kills your mappings, that's the likely suspect - the legacy canvas is the safe harbor.
Honestly? It's niche. If you own a MIDI controller and you live in ComfyUI doing iterative parameter sculpting or anything live/VJ-ish, this is one of the most fun packs in the ecosystem. If you don't have hardware and don't want any, there's nothing here for you. But it installs in thirty seconds with zero dependencies, so there's no reason not to try it.
Inputs (0)
No inputs
Outputs (0)
No outputs