ANY Value OSC Control @ vrch.ai
Control ComfyUI from a phone, a mixer, or any OSC sender
- INT
- FLOAT
- TEXT
- BOOL
The ANY Value OSC Control @ vrch.ai is how you hand a ComfyUI workflow a control surface that lives outside the computer entirely. OSC - Open Sound Control - is the protocol MIDI grew up into: the same idea of sending a numeric message to a device, but over a network, with human-readable addresses like /fader/1. This node listens for one OSC message and turns whatever value arrives into typed outputs your graph can use.
If you've ever wished you could run a ComfyUI show from a tablet instead of standing at the keyboard, this is the node that makes it happen. The pack even ships a TouchOSC control panel (comfyui_osc_control.tosc) in its assets folder, so you can load that into the TouchOSC app on a phone or iPad and get a ready-made fader-and-button surface that talks to these nodes out of the box.
How it works
Point it at a listening address with server_ip and port (default 8000), give it a path (default /path), and the node subscribes to messages sent to that address. When an OSC message arrives, it emits the value on whichever output matches its type:
- INT - an integer value.
- FLOAT - the usual case for a fader or slider.
- TEXT - a string message, for things like label updates.
- BOOL - a toggle or button state.
Only the output matching the incoming value type carries data on any given message; the rest sit idle. debug logs what arrives, which is the fastest way to confirm your phone is actually reaching the node.
Installing it
Same single-pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/VrchStudio/comfyui-web-viewer
pip install -r comfyui-web-viewer/requirements.txt
Or install "ComfyUI Web Viewer" via ComfyUI Manager and restart. The OSC support ships inside the pack - no separate library to hunt down.
The gotcha nobody warns you about
The default server_ip is 172.17.0.2, which is a Docker bridge address. That's the IP the pack author's own containerized setup used, and it's wrong for almost everyone else. If you're running ComfyUI on a normal local machine, set server_ip to 127.0.0.1 (or your LAN IP) - or OSC messages will silently go nowhere and you'll spend an hour blaming the phone. On the sending side, your OSC app needs to point at the same IP/port, and it must be reachable on your network.
Where it fits
The natural use is a live setup: an OSC fader controlling a denoise or guidance-strength parameter, a button triggering a new generation, a slider adjusting a color value. Chain it with instant queue and a Web Viewer node for display, and you've turned ComfyUI into a controllable instrument rather than a batch tool. For multi-fader work, the pack's CHANNEL OSC Control and CHANNEL x4 OSC Control nodes handle switch-style and multi-channel layouts - this one is the general-purpose value receiver.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| server_ip | STRING | 172.17.0.2 | — |
| port | INT | 80000–65535 | — |
| path | STRING | /path | — |
| debug | BOOLEAN | false | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| INT | INT | — |
| FLOAT | FLOAT | — |
| TEXT | STRING | — |
| BOOL | BOOLEAN | — |