ComfyUI Web Viewer
The ComfyUI Web Viewer by a/vrch.ai is a custom node collection offering a real-time AI-generated interactive art framework. This utility integrates realtime streaming into ComfyUI workflows, supporting keyboard control nodes, OSC control nodes, sound input nodes, and more. Accessible from any device with a web browser, it enables real time interaction with AI-generated content, making it ideal for interactive visual projects and enhancing ComfyUI workflows with efficient content management and display.
Nodes (63)
Control ComfyUI from a phone, a mixer, or any OSC sender
Grab an audio channel streaming through the web viewer
Stitch two audio clips together, crossfade optional
Turn music moods into radar charts and word clouds
Slice mic input down to the frequency band you actually want
Ask ComfyUI what genre a track actually is
Turn a song into valence and arousal floats
Record your voice in the browser and hand ComfyUI real audio
Save the audio your workflow made, your way
Draw a live waveform and spectrum from your mic
Low-latency audio over WebSocket
Stream audio to a browser tab with a visualizer attached
A hotkey that flips a boolean mid-workflow
Let the music set the pace of your generation
On/off a channel from an OSC message
Four OSC channels, four switches, one node
The DELAY node that keeps a realtime graph honest
Steer the DELAY node with a physical fader over OSC
Scrub a float with your keyboard, zero hardware required
A phone fader that becomes any float in your workflow
Stretch any control value into any range — pure math, no servers
Plug in a gamepad, drive a live portrait — the pack's showstopper
Grab the image that's on screen and feed it back into the graph
Never let a dead frame blank out your realtime pipeline
A browser slideshow of your latest frames, fades included
Turn your desktop into the canvas — preview images as a background
The channel-aware background preview — the legacy one, and fine
Save your frames with your own filename — the archivist's node
A phone's radio buttons choose which image is live
Read the image a WebSocket viewer is showing, placeholder included
Apply CSS-style filters to a WebSocket display without re-rendering
The config node that controls how the WebSocket viewer behaves
The lean WebSocket viewer — display images, let a settings node do the rest
The all-in-one WebSocket viewer — legacy, and how you'll know it
The IMAGE Web Viewer — the node that gives the pack its name
Press a key, kick off a generation — the performance trigger
Change an integer from the keyboard, mid-generation
A fader on your phone, driving any integer in your graph
The boring node that makes every live control usable
Pulling live JSON into your ComfyUI graph
Receiving JSON from another machine, live
Pushing JSON over a WebSocket channel
Receiving latents from another machine, ready to sample
Streaming your latents to another machine
Feed your microphone into ComfyUI as live numbers
Tame your MIDI controller and map it to your workflow
Pop out a 3D model in a browser window from your workflow
One place to set your OSC server, so the rest stay sane
Point a phone at the screen, get your viewer URL
Eight OSC toggles, one node, zero mouse
Build a prompt by flipping tags on a tablet
Cycle up to eight prompts with a single key
A teleprompter for your prompts
Radio buttons for your prompts
The latch that turns a pulse into a state
Four latched switches in one node
Eight latched switches for the full control deck
Play your generated video in a popped-out browser window
The quiet engine behind ComfyUI Web Viewer's real-time browser streaming
Put your generations in any browser tab, live
Drive ComfyUI with an Xbox pad instead of a mouse
XY OSC Control explained
XYZ OSC Control for when XY isn't enough
ComfyUI Web Viewer
The ComfyUI Web Viewer by vrch.ai is a custom node collection offering a real-time AI-generated interactive art framework. This utility integrates realtime streaming into ComfyUI workflows, supporting keyboard control nodes, OSC control nodes, sound input nodes, and more. Accessible from any device with a web browser, it enables real time interaction with AI-generated content, making it ideal for interactive visual projects and enhancing ComfyUI workflows with efficient content management and display.
✨ Features:
- Real-Time AI Generation & Interaction: Immediate response for interactive creativity.
- Multi-Input Support: Easily integrates keyboard, OSC, and audio input for versatile interactivity.
- Universal Web Accessibility: Compatible with any device equipped with a web browser.
🔗 Related Projects:
- Comfyputer: 3D Printable & Portable DIY AI Computer for running ComfyUI - Coming Soon on Github
- Agentic VJ: Real-time Visual Generation with Multi-modal Agents for Live Performances - Integrated with ComfyUI Web Viewer nodes. Releasing Soon on vrch.ai/vj and CES 2026!
🚀 Support Us:
If you find the ComfyUI Web Viewer useful or inspiring, consider supporting us:
- 💖 Sponsor: Help us maintain and enhance the project through GitHub Sponsors.
- ⭐ Star the Project: A star on GitHub greatly motivates us and helps increase visibility!
- 📩 Business Inquiries: For commercial collaborations, reach us at [email protected].
Changelog
see CHANGELOG
Installation
Install ComfyUI Web Viewer Custom Node
Method 1: Auto Installation (Recommended)
Simply search for ComfyUI Web Viewer in ComfyUI Manager and install it directly.
Method 2: Manual Installation
- Clone this repo into the
custom_nodesdirectory of ComfyUIgit clone [email protected]:VrchStudio/comfyui-web-viewer.git - Install dependencies:
or if you use thepip install -r requirements.txtwindowsportable install, run this inComfyUI_windows_portablefolder:python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\comfyui-web-viewer\requirements.txt - Restart ComfyUI
Install Music2Emotion Plugin (Optional)
To use the AUDIO Music to Emotion Detector @ vrch.ai node, you'll need to install the Music2Emotion third-party module:
-
Navigate to the ComfyUI Web Viewer directory:
cd path/to/ComfyUI/custom_nodes/comfyui-web-viewer -
Initialize and download the Music2Emotion submodule:
git submodule update --init --recursiveAlternatively, you may maunally install it as follows:
cd path/to/ComfyUI/custom_nodes/comfyui-web-viewer/third_party git clone https://github.com/VrchStudio/Music2Emotion.git music2emotion -
Install dependencies using the main project's requirements.txt:
pip install -r requirements.txtor for Windows portable install:
python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\comfyui-web-viewer\requirements.txt⚠️ Important: Always use the main project's
requirements.txtinstead of the third-party module's requirements file to avoid dependency conflicts. The ComfyUI Web Viewer's requirements.txt already includes all necessary Music2Emotion dependencies with compatible versions. -
Restart ComfyUI
Note: If the Music2Emotion module is not installed, the emotion detection node will show a warning message but remain functional for workflow compilation. Other audio nodes will work normally without this optional dependency.
How to Use
Web Viewer Nodes

- Documentation: Usage of Web Viewer nodes
- Example workflows:
- Tutorials:
WebSocket Web Viewer Nodes
- Documentation: Usage of WebSocket Viewer nodes
- Example workflows:
- Tutorials: n/a
OSC Control Nodes
- Documentation: Usage of OSC Control nodes
- TouchOSC Control Panel:
- Example workflows:
- Tutorials:
Key Control Nodes
- Documentation: Usage of Key Control nodes
- Example workflows:
Gamepad Nodes
- Documentation: Usage of Gamepad nodes
- Example workflows:
Midi Device Nodes
- Documentation: Usage of Midi Device nodes
- Example workflows: TBA
MIDI Control Nodes
- Documentation: Usage of MIDI Control nodes
- Example workflows: TBA
Audio Nodes
- Documentation: Usage of Audio nodes
- Example workflows:
Image Nodes
- Documentation: Usage of Image nodes
- Example workflows:
Logic Nodes
- Documentation: Usage of Logic nodes
- Example workflows: n/a
Model Nodes
- TensorRT Auto Loader with lazy PyTorch fallback and residual ControlNet qualification
- Checkpoint CLIP-only Loader for prompt changes without an unused checkpoint UNet
- ControlNet Loader with CPU construction/offload safety for high-VRAM TensorRT workflows
- TAESD Memory Profile for bounded encode/decode scheduling estimates
- Documentation: Usage of Model nodes
Text Nodes
- Documentation: Usage of Text nodes
- Example workflows:
- Tutorials:
Other Example Workflows
- Rapid Text to Image (8K)
- Auto Switch to Instant Queue and Run Workflow
- Apple Vision Pro Ultrawide Wallpaper (5K)
- Audio Picture Book with Your Own Voice (FLUX version)
- Audio Picture Book with Your Own Voice (SDXL version)
Troubleshootings
1. Image Not Displayed in Popped-Up Image Viewer Window
For Chrome, you may need to add the ComfyUI server's IP address manually in chrome://flags/#unsafely-treat-insecure-origin-as-secure to enable access to the content. For other browsers, an http-to-http setup should allow for seamless access without additional configuration.

2. How can I resolve the CORS policy error when trying to display images?
If you’re encountering a CORS policy error with a message like this:
"origin 'https://vrch.ai' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource"
or
"WARNING: request with non matching host and origin 127.0.0.1 !=vrch.ai, returning 403"
you can resolve this by launching the ComfyUI service with the --enable-cors-header flag appended. For example:
python main.py --enable-cors-header
For additional details, refer to this discussion on GitHub.
3. How can I fix FFmpeg errors in audio nodes?
The audio recorder and WebSocket audio nodes need both:
- the FFmpeg command line tool installed and available on
PATH; - the Python package
ffmpeg-python, which provides theffmpeg.input(...)API.
If you see [Errno 2] No such file or directory: 'ffmpeg', install FFmpeg for
your operating system and make sure the ffmpeg command works in the same
terminal or Python environment used to start ComfyUI.
If you see AttributeError: module 'ffmpeg' has no attribute 'input', the
wrong Python package may be installed. Remove the ffmpeg package and install
the project requirements again so that ffmpeg-python is used:
pip uninstall ffmpeg
pip install -r requirements.txt
For Windows portable installs, run the same commands with the embedded Python
from your ComfyUI_windows_portable folder:
python_embeded\python.exe -m pip uninstall ffmpeg
python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\comfyui-web-viewer\requirements.txt
4. Why can’t the ComfyUI service run at HTTPS/TLS/SSL on port 8189?
ComfyUI Web Viewer provides a build-in, self-signed certificate (intended for development only, not production use). To launch the ComfyUI service with HTTPS enabled on port 8189, use the following command:
# Start ComfyUI with HTTPS using the built-in certificate and key
python main.py --tls-keyfile ./custom_nodes/comfyui-web-viewer/https/key.pem --tls-certfile ./custom_nodes/comfyui-web-viewer/https/cert.pem --port 8189 --listen
For more details, refer to the ComfyUI official instructions.
Version Update
This project uses bump2version for version management. To update the version:
- Ensure you have
bump2versioninstalled:pip install bump2version - To update the version, run:
Replacepython update_version.py [major|minor|patch][major|minor|patch]with the part of the version you want to increment. - This will automatically:
- Update the version number in
__init__.py - Update the CHANGELOG.md file
- Create a new git commit and tag (if you're using git)
- Update the version number in
- After running the script, review and update the CHANGELOG.md file with details about the new version's changes.
- Note: make sure you've put changes in
Unreleasedsection manually
- Note: make sure you've put changes in
Contributing
Created and maintained by the vrch.io team.
Contributions are welcome! Please feel free to submit a Pull Request.
Acknowledgements
Thanks to these community contributors:
Contact Us
For any inquiries, you can contact us at [email protected].