Nodes/Reactor API: Realtime Video/Reactor LingBot Segment
ComfyUI Node

Reactor LingBot Segment

A world you walk through, with camera moves as little blocks

By reactor-team·Created about a month ago·Updated about 11 hours ago· 7
Reactor LingBot Segment
  • moves
  • image
  • sequence
  • REACTOR_SEQUENCE
◄prompt—►
◄frames120►

LingBot is the pack's world model: give it one image and it becomes a place you can move through. The node looks like the other segment nodes, except for the moves lane - a little timeline widget where camera moves live as draggable blocks instead of prompt text.

What it's for

World models are the branch of this field that isn't about making clips. The KB's take on the local LingBot-World release is blunt and applies exactly here: it's "one you play, not watch" - frames generated live as you steer, reacting to WASD rather than consuming a sentence. The same model driven through Reactor's cloud is what this node scripts, and the value of scripting it is that you get repeatable camera work: an orbit that always takes 96 frames, a dolly that always starts on the same chunk.

So: one reference image, a prompt, and a set of moves. The model holds the world together and your moves decide what the camera does in it.

How it works

The image is required on the first segment - this model doesn't run from text alone - and it's read at the start and then held. LingBot runs at 32fps in the output (Reactor's docs say 16, the plugin measures ~33 and writes the file at 32, so trust the file), chunking at 24 frames with a shorter 17-frame first chunk. frames therefore steps by 24, and both ends of a segment round to the nearest chunk.

The moves widget is where the node earns its keep. Moves live on lanes: forward/back/strafe on the movement lane, look left/right, look up/down, and a rotation speed you can dial up to 30 degrees. Each move has a start frame and a length counted from its own segment's start, and - this is the bit people miss - a move ends with its segment. Want a dolly that keeps running? Declare it again on the next segment; don't assume it carries.

There's also a scene ceiling. A run only holds for so many chunks before the model restarts from its image, so a very long single-scene sequence will eventually snap back to where it began. Cut deliberately before that happens.

The inputs that matter

  • prompt - what the world is.
  • image (optional in the schema, required in practice) - the first segment's picture. Read once.
  • frames - default 120, stepping by 24.
  • moves - the camera lane widget. Empty is fine; you'll get a still-ish world.
  • sequence - the earlier segments; empty on the first.
  • REACTOR_SEQUENCE (output) - onward, then Reactor Render or the visualizer.

Install

Manager search comfyui-reactor-api, or:

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

reactor-sdk>=1.6 is the only dependency and there are no weights to download - you're renting the model. Set REACTOR_API_KEY (environment, or config.ini under [API]) and restart. Given that the open LingBot-World weights are non-commercial and need hardware nobody here has, the hosted route is the practical way to touch this model at all.

Where people get burned

"X needs an image on the first segment." No image, no render. It's in the compiler's validation and it's the most common first failure.

Moves shorter than a chunk. A 10-frame dolly on a 24-frame chunk grid can't exist. The visualizer flags it in red; the render would have rounded it anyway.

Moves don't survive a segment boundary. Re-declare anything you want to continue.

Geometry drifts. The KB's honest summary of this family is that the world is pixels, not a 3D scene: leave an area and come back and it regenerates, and physics is learned rather than simulated, so expect clipping. Script around it rather than fighting it.

CategoryReactor/Explore worlds

Inputs (5)

NameTypeDefaultDescription
promptSTRING—
framesINT1201–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 24-frame chunk.
movesREACTOR_MOVE_EDITOR[object Object]Camera moves during this segment. A move ends with its segment; continue it on the next segment to keep it going.
imageoptIMAGEReference image, read on the first segment.
sequenceoptREACTOR_SEQUENCEThe segments before this one. Leave it empty on the first segment.

Outputs (1)

NameTypeDescription
REACTOR_SEQUENCEREACTOR_SEQUENCE—