A ComfyUI custom node pack for Reactor's real-time video models. Play a model live in a window you steer as it generates, or script a sequence of segments and render it to a video, all from a normal ComfyUI workflow.

LingBot World 2 playing in the Reactor Realtime window, steered with W/A/S/D and the arrow keys.
1. Install. Clone this repo into ComfyUI/custom_nodes/ and install its requirements into
ComfyUI's Python:
cd ComfyUI/custom_nodes
git clone https://github.com/reactor-team/comfyui-reactor-api
pip install -r comfyui-reactor-api/requirements.txt2. Add your API key. Copy config.ini.example to config.ini and set your Reactor API key, or
set REACTOR_API_KEY in ComfyUI's environment (it takes priority).
3. Copy the example inputs. Copy example_inputs/ into ComfyUI's input folder so the examples
find their images and sounds.
Every example is in ComfyUI's template browser under comfyui-reactor-api, or drag a preview onto the canvas to load its workflow. Edit previews show the source on the left and the edit on the right.
Each example runs in one of two ways:
- ⚡ Real time — the Reactor Realtime node opens a window where the model plays as it generates. Edit the prompt, drive the camera with the keyboard, feed it your webcam, or talk to an avatar.
- 🎬 Render — chain segment nodes into a sequence and Reactor Render turns it into a video. Other nodes can write the prompts, make the images, or branch the story.
Walk through a world made from a single image, steering the camera live with the keyboard or scripting every move ahead of time.
![]() Real-time world driven with the keyboard LingBot World 2 · ⚡ Real time |
![]() Scripted camera moves LingBot World 2 · 🎬 Render |
Restyle, re-dress or recast your camera or a video file from a single image, or edit it with a prompt. Source on the left, result on the right.
Short clips with sound from a prompt with FastH3, or from pictures of a person and a place with H3 Reference Turbo Realtime. FastH3-Omni adds audio input and first-to-last frame to reference images. Stories across shots and cuts, one continuous scene steered by prompts, or a single shot that morphs, all from text.
Talk with a character made from a photo: your voice goes in, video comes out. Or have a photo speak your script, one take at a time.
Real-time conversation, your voice in and video out Vidu S2-Avatar · ⚡ Real time |
|
![]() Real-time takes of a photo speaking your script LTX · ⚡ Real time |
![]() A photo speaks a script in two takes LTX · 🎬 Render |
Read the model's prompt guide before writing prompts: it applies to the prompts you write here, and each example's note links it.
| Model | What it does | Takes | Prompt guide |
|---|---|---|---|
| LingBot World 2 | LingBot with more camera control | first image, camera moves | Prompt guide |
| LingBot | A world you walk through | first image, camera moves | Prompt guide |
| Model | What it does | Takes | Prompt guide |
|---|---|---|---|
| Vidu S2-Editing | Restyle, re-dress or recast from an image | video, image | Prompt guide |
| X2 | Edit a video or camera from a prompt | video, optional image | Prompt guide |
| Sana Streaming | Edit a video file from a prompt | video (Render only) | Prompt guide |
| Model | What it does | Takes | Prompt guide |
|---|---|---|---|
| FastH3 | Short clips with sound, one per prompt | prompt, image on any segment | Prompt guide |
| H3 Reference Turbo Realtime | Clips with sound, guided by up to nine pictures, which prompts call Picture 1, Picture 2, … in socket order | prompt, pictures | Prompt guide |
| FastH3-Omni | Clips with sound from up to three reference images and three audio inputs, which prompts call <Picture 1> and <Audio 1>, with an optional first-to-last frame. Render takes up to nine images, more slowly than real time |
prompt, pictures, sounds, first and last frame | Prompt guide |
| Helios | One continuous scene steered by prompts | prompt, image on any segment | Prompt guide |
| Visko Orbis Stable / Dynamic | One unbroken shot that morphs, with sound | prompt, optional first image | Stable, Dynamic |
| LongLive-2.0 | A story across shots and cuts, from text | prompt | Prompt guide |
| Model | What it does | Takes | Prompt guide |
|---|---|---|---|
| Vidu S2-Avatar | Talk with a character made from a photo | first image, persona | Prompt guide |
| LTX | A person from a photo speaks your script | first image, script | Prompt guide |
Not yet supported: HappyOyster.
These are the nodes this plugin adds to ComfyUI, all under Reactor in the node menu.
- Getting the same take every time? In Reactor Realtime, a fixed
seedwith unchanged inputs reuses the last take. Set it to randomize to record a new take each time. - Looking for a take? Reactor Realtime saves them to
reactor/realtimein ComfyUI'soutputfolder. Change it with the node'sfilename_prefix. - Talking to an avatar? Wear headphones, so the Vidu S2-Avatar character doesn't hear itself.
- Want to run more than one workflow at once? ComfyUI runs one Reactor session at a time. Set
MAX_CONCURRENTunder[Sessions]inconfig.iniand restart to run more.
Pull requests are welcome. Run the tests before opening one; they need no ComfyUI install and no Reactor API key:
uv run pytest -q tests
node --test "tests/web/*.test.mjs"Sign off every commit (git commit -s): pull requests are checked for a
DCO sign-off.
This repository is Apache-2.0 licensed - see LICENSE.





















