DELAY OSC Control @ vrch.ai
Steer the DELAY node with a physical fader over OSC
- any_input
- ANY_OUTPUT
- DELAY_PERIOD
- RAW_VALUE
Take the plain DELAY node, bolt an OSC receiver onto it, and you get this: a delay whose length is driven live by a fader on your phone. That's the whole promise of the ComfyUI Web Viewer pack - ComfyUI stops being a thing you click and becomes a thing you perform - and the DELAY OSC Control node is one of the cleanest examples of it.
What it is
Mechanically it's two things in one box. On the control side it listens for OSC on server_ip:port at path, then remaps whatever raw value arrives from the input_min–input_max range into the output_min–output_max range, which is interpreted in milliseconds. That mapped number is the delay applied to any_input before it comes out as ANY_OUTPUT. So you're not just getting a delayed value - you're getting a value whose delay you can sweep with a finger while the workflow is running.
Three outputs, and they're worth knowing. ANY_OUTPUT is your delayed passthrough, the thing you actually wire downstream. DELAY_PERIOD is the computed delay in ms, handy if you want to display it or feed it somewhere else. RAW_VALUE is the un-mapped OSC number, useful for debugging whether your sender is actually talking. output_invert flips the mapping (fader up = shorter delay), output_default is what the delay sits at when no OSC is arriving, and debug prints what's coming in.
The gotcha that bites everyone: the default server_ip is 172.17.0.2. That's a Docker-internal address left over from the dev environment, not something that exists on your network. Set it to the IP of whatever is sending OSC - the TouchOSC app on your tablet or phone, another machine on your LAN, or 127.0.0.1 if the sender runs on the same box as ComfyUI. The pack even ships a ready-made TouchOSC panel (comfyui_osc_control.tosc in the repo's assets) so you don't have to build your own fader layout from scratch.
How to install
Install is the pack-standard one: search "ComfyUI Web Viewer" in ComfyUI Manager, or
cd ComfyUI/custom_nodes
git clone https://github.com/VrchStudio/comfyui-web-viewer
cd comfyui-web-viewer
pip install -r requirements.txt
restart, done. Windows portable users run the pip line through python_embeded\python.exe. No models, no heavy deps for this node.
Common issues
When it's not working, it's almost always the address: OSC is fire-and-forget UDP, so there's no "connected" state to check. Enable debug, watch the console - if RAW_VALUE never moves, the packet isn't arriving. Verify the port matches your sender (8000 is the default on both sides of the README's setup), make sure the path matches your OSC address (default /path is a placeholder - a real fader will be something like /1/fader1), and remember the input range must actually cover the values your app sends. That's the whole debugging checklist, and it's the same one you'll use for every OSC node in this pack.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| any_input | * | — | |
| server_ip | STRING | 172.17.0.2 | — |
| port | INT | 80000–65535 | — |
| path | STRING | /path | — |
| input_min | FLOAT | 0.000–9999 | — |
| input_max | FLOAT | 1.000–9999 | — |
| output_min | INT | 00–9999 | — |
| output_max | INT | 10000–9999 | — |
| output_invert | BOOLEAN | false | — |
| output_default | INT | 00–9999 | — |
| debug | BOOLEAN | false | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| ANY_OUTPUT | * | — |
| DELAY_PERIOD | INT | — |
| RAW_VALUE | FLOAT | — |