CHANNEL x4 OSC Control @ vrch.ai
Four OSC channels, four switches, one node
- any_channel_1_on
- any_channel_1_off
- any_channel_2_on
- any_channel_2_off
- any_channel_3_on
- any_channel_3_off
- any_channel_4_on
- any_channel_4_off
- ANY_OUTPUT_1
- ANY_OUTPUT_2
- ANY_OUTPUT_3
- ANY_OUTPUT_4
The CHANNEL x4 OSC Control @ vrch.ai is the four-pack version of the CHANNEL OSC Control node: four independent on/off channels, each with its own OSC path and its own output, all in one node. If your live setup has multiple things you need to toggle - "camera A/B", "prompt mode 1/2/3", "upscaler on", "pause generation" - this is the node that keeps them in one tidy place instead of four near-identical boxes cluttering the graph.
It's squarely aimed at performance-style workflows where a phone or tablet is your control surface. The pack's TouchOSC panel (comfyui_osc_control.tosc) has a layout built for this exact node, so you can slap four buttons on a phone and have four switches in your workflow with basically no wiring ceremony beyond connecting the outputs.
How it works
Each channel follows the same pattern as the single-channel node: an any_channel_N_on input and an any_channel_N_off input (both *-typed, so any signal flips them), a dedicated OSC path per channel (/channel1 … /channel4 by default), and a matching ANY_OUTPUT_1 … ANY_OUTPUT_4. All four channels share the same server_ip and port (default 8000) - they differ only in path - so a single OSC listener serves the whole node. debug logs which channel is being flipped when.
The useful detail: four independent paths mean you can bind each to a different button or OSC sender, but they all arrive at one node. It's the same *-input flexibility as the single-channel version - anything that lands on the right input flips the right switch.
Installing it
Standard 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" from ComfyUI Manager and restart. OSC support ships in the pack; no extra dependencies.
The gotchas
- The default
server_ip(172.17.0.2) is a Docker address. Point it at127.0.0.1or your LAN IP unless you actually run ComfyUI in Docker - the whole pack's OSC nodes carry this footgun. - Keep the paths straight.
/channel1through/channel4are the defaults; if your OSC app sends to a different address, edit thepath1–path4fields to match. A button wired to the wrong path flips the wrong channel, which is a confusing failure when you're mid-performance. - Four switches, one listener. Since all channels share the IP/port, a reachability problem with the listener kills all four at once - verify the base connection first with
debugon before chasing individual channels.
When you're building a live rig, start here rather than the single-channel node: four switches in one box is usually the shape you actually need.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| any_channel_1_on | * | — | |
| any_channel_1_off | * | — | |
| any_channel_2_on | * | — | |
| any_channel_2_off | * | — | |
| any_channel_3_on | * | — | |
| any_channel_3_off | * | — | |
| any_channel_4_on | * | — | |
| any_channel_4_off | * | — | |
| server_ip | STRING | 172.17.0.2 | — |
| port | INT | 80000–65535 | — |
| path1 | STRING | /channel1 | — |
| path2 | STRING | /channel2 | — |
| path3 | STRING | /channel3 | — |
| path4 | STRING | /channel4 | — |
| debug | BOOLEAN | false | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| ANY_OUTPUT_1 | * | — |
| ANY_OUTPUT_2 | * | — |
| ANY_OUTPUT_3 | * | — |
| ANY_OUTPUT_4 | * | — |