Nodes/ComfyUI Web Viewer/DELAY OSC Control @ vrch.ai
ComfyUI Node

DELAY OSC Control @ vrch.ai

Steer the DELAY node with a physical fader over OSC

By VrchStudio·Created 2 years ago·Updated 22 days ago· 356
DELAY OSC Control @ vrch.ai
  • any_input
  • ANY_OUTPUT
  • DELAY_PERIOD
  • RAW_VALUE
server_ip172.17.0.2
port8000
path/path
input_min0.00
input_max1.00
output_min0
output_max1000
output_invertfalse
output_default0
debugfalse

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_mininput_max range into the output_minoutput_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.

Categoryvrch.ai/control/osc

Inputs (11)

NameTypeDefaultDescription
any_input*
server_ipSTRING172.17.0.2
portINT80000–65535
pathSTRING/path
input_minFLOAT0.000–9999
input_maxFLOAT1.000–9999
output_minINT00–9999
output_maxINT10000–9999
output_invertBOOLEANfalse
output_defaultINT00–9999
debugBOOLEANfalse

Outputs (3)

NameTypeDescription
ANY_OUTPUT*
DELAY_PERIODINT
RAW_VALUEFLOAT