Nodes/Reactor API: Realtime Video/Reactor Sana Streaming Segment
ComfyUI Node

Reactor Sana Streaming Segment

Prompt-editing a video file, and only a video file

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

Sana Streaming is the quiet one in this pack, and it has one restriction that decides whether you care about it: it only runs in a render. There's no browser window, no live steering, no camera. You hand it a video file and a prompt, and it edits the file.

What it's for

Think of it as the batch version of the pack's other editors. Vidu S2-Editing works from an image, X2 works from a sentence and can run live off your webcam. Sana Streaming works from a sentence on a file you already have, in a normal queueable ComfyUI graph - which, for anything you intend to run twice with different settings, is the more useful shape.

Because it's Render-only, it also plays nicely with the rest of your graph: prompts can come from a text node, a wildcard, an LLM node, anything that outputs a string. If you're building a batch of edits and want them reproducible, this is the node in the "Edit video" category you'd actually script.

How it works

Sana is a source model: the clip is required on the first segment, read there and nowhere else, and the model transforms it rather than generating fresh footage. Add segments to change the prompt partway through the edit - the rest of the sequence supplies new prompts and lengths, all applied to the same source clip.

Frames are counted one at a time; there's no chunk grid to snap to on this model, so a segment is as long as you asked for. There's no kind either, so no hard cuts, and no aspect - the source's shape governs. One honest caveat the plugin's own source admits: Reactor's docs don't publish a frame rate for Sana Streaming, so the plugin writes the output at 24fps as its best guess. If the timing of the finished file matters, check it before you build a soundtrack around it.

The inputs that matter

  • video (optional in the schema, required in practice) - the clip to edit. First segment only.
  • prompt - the edit instruction for this stretch.
  • frames - how long this segment plays, default 120, step 1.
  • sequence - the earlier segments; empty on the first.
  • REACTOR_SEQUENCE (output) - onward, then Reactor Render. Everything downstream of that is normal ComfyUI: SaveVideo, previews, whatever you like.

Install

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

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's nothing to download - Sana Streaming runs on Reactor's servers, which is the trade for the API key you must supply: REACTOR_API_KEY in ComfyUI's environment, or [API] in config.ini. Restart, and the nodes are under Reactor.

Where people get burned

Looking for it in the Realtime picker. It isn't there. This is the one model in the pack with no live path, so don't go hunting for the window.

Forgetting the video. The compiler is direct about it: "Sana Streaming needs a video on the first segment." The socket is technically optional in ComfyUI's eyes, which is why people queue first and read the error second.

Straight-up rendering an unedited clip. Editing can be subtle. If your prompt is a vague mood rather than a visible change, the model will happily hand back something that looks almost like the source and you'll think it failed.

Chaining it with a live-only workflow. Since it can't run live, any graph you build around the Realtime window has to be a separate graph. That's not a limitation, just a thing to know before you plan a workflow around it.

CategoryReactor/Edit video

Inputs (4)

NameTypeDefaultDescription
promptSTRING—
framesINT1201–100000How many frames of video this segment plays. It starts where the segment before it in the sequence ends.
videooptVIDEOSource clip to edit, read on the first segment.
sequenceoptREACTOR_SEQUENCEThe segments before this one. Leave it empty on the first segment.

Outputs (1)

NameTypeDescription
REACTOR_SEQUENCEREACTOR_SEQUENCE—