Nodes/Reactor API: Realtime Video/Reactor Visko Orbis Segment
ComfyUI Node

Reactor Visko Orbis Segment

One unbroken morphing shot, with a second prompt for the sound

By reactor-team·Created about a month ago·Updated about 11 hours ago· 7
Reactor Visko Orbis Segment
  • image
  • sequence
  • REACTOR_SEQUENCE
◄model▾►
◄prompt—►
◄frames132►
◄audiotrue►
◄audio_prompt►

This node has two prompt boxes. One describes what you see, one describes what you hear. That's the thing to understand about Visko Orbis - it generates a single unbroken shot that morphs, and it scores it at the same time.

What it's for

Visko Orbis is the pack's "one shot that never cuts, and it makes its own soundtrack" model. The bundled example is a storm morphing around a single continuous camera angle, which is exactly the right mental picture: you're not editing, you're watching something turn into something else while the audio follows.

Use it when the transition is the piece. A face becoming a landscape, a city becoming a forest. Because there are no cuts on this node and no camera controls, the whole expression happens in the prompt and in the audio prompt, and in how long you let each segment run.

How it works

Two models sit behind the one node, and a model dropdown picks between them: Visko Orbis Dynamic and Visko Orbis Stable. They're the same family and the same node, differing in how Reactor serves them - Stable delivers its 1080p tier, Dynamic can run at the small native tier instead. Practically: Dynamic is the one you test on, Stable is the one you deliver with. Both run at 18fps and chunk at 33 frames, so frames steps by 33 and both ends of a segment round to the nearest chunk.

Audio is a start-time switch - audio is read on the first segment, default on - and audio_prompt is a per-segment setting that holds until a later segment changes it. So you can score the first half of a morph one way and the second half another, which is the trick this node is actually built for.

The inputs that matter

  • model - Visko Orbis Dynamic or Visko Orbis Stable, read on the first segment.
  • prompt - what the shot does.
  • audio_prompt - what it sounds like. Separate lane, same beat. Holds until changed.
  • frames - default 132, stepping by 33.
  • image (optional) - a reference image, read on the first segment only.
  • audio - on or off, set once at the start.
  • sequence - the earlier segments; empty on the first.
  • REACTOR_SEQUENCE (output) - onward, then Reactor Render.

Install

ComfyUI Manager, search comfyui-reactor-api ("Reactor API: Realtime Video"), or:

cd ComfyUI/custom_nodes
git clone https://github.com/reactor-team/comfyui-reactor-api
pip install -r comfyui-reactor-api/requirements.txt

One dependency, no model downloads - Visko runs on Reactor's side. Add a key: REACTOR_API_KEY in ComfyUI's environment, or under [API] in config.ini. Restart and you'll find the nodes under Reactor. The examples live in ComfyUI's template browser under comfyui-reactor-api, and they need the repo's example_inputs/ copied into ComfyUI's input folder.

Where people get burned

Auditioning on the wrong model. Dynamic and Stable are separate endpoints. If you tune a morph on one and deliver on the other, expect a different look and a different bill. Pick before you iterate, not after.

Turning audio off late. audio is read once at the start of the sequence. Setting it false on segment five does nothing.

Forgetting audio_prompt is sticky. Like Helios's image strength, it persists. A lonely ambience you wrote for segment two will still be playing over segment six unless you overwrite it.

Every segment is one shot. There's no kind here for good reason - this model doesn't cut, and asking it to will get your sequence rejected at render time.

No camera control. If you want to dolly or orbit, that's the LingBot nodes. Visko's job is to sit still and change.

CategoryReactor/Generate video

Inputs (7)

NameTypeDefaultDescription
modelCOMBOThe model the sequence runs on. Read on the first segment.
promptSTRING—
framesINT1321–100000How many frames of video this segment plays. It starts where the segment before it in the sequence ends; both ends round to the nearest chunk. Steps by one 33-frame chunk.
imageoptIMAGEReference image, read on the first segment.
audiooptBOOLEANtrueRead on the first segment.
audio_promptoptSTRINGHolds until a later segment changes it.
sequenceoptREACTOR_SEQUENCEThe segments before this one. Leave it empty on the first segment.

Outputs (1)

NameTypeDescription
REACTOR_SEQUENCEREACTOR_SEQUENCE—