ComfyUI Node

Reactor X2 Segment

Edit a clip or your webcam by just describing the change

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

X2 is the pack's prompt-driven video editor. Source clip in, plain-language instruction in, edited clip out - and it's the node that made me stop reaching for a local edit model for quick passes.

What it's for

You've got footage and you want one thing changed. Not a re-gen, not a mask dance - "make it night", "put rain on the window", "she's wearing red now". X2 does that to a video, and it does it live: pair it with Reactor Camera Capture in Reactor Realtime and it edits your webcam as you sit there, which is a demo that never stops being a bit uncanny.

Between X2 and Vidu S2-Editing, this pack has two editors and they're not redundant. Vidu S2-Editing is image-driven with four declared modes and no text box. X2 is text-driven with an optional reference image. If your instruction is a sentence, you want X2; if it's a picture, you want the other one.

How it works

X2 is a source model: the clip is required on the first segment and only read there, and the model transforms it rather than generating alongside it. The prompt can be changed per segment, which is how you get an edit that evolves across a sequence - keyframe-free, just "from here on, it's raining".

The source keeps its aspect ratio, fitted by the short side, so you don't get letterboxing surprises. There's no kind on this node: the edits flow continuously rather than cutting. And in the browser window the timeline is manual - the clip loops until you press Save, so the take is however long you let it run.

The inputs that matter

  • video (optional in the schema, required in practice) - the source clip, read on the first segment.
  • image - an optional reference image, also read on the first segment. Useful when the edit needs a specific look rather than just words.
  • prompt - the edit instruction. Short and bossy beats a paragraph; edit models reward naming the change, not describing the scene.
  • 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.

Install

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 Python dependency (reactor-sdk>=1.6), no model downloads - X2 runs on Reactor's hardware, which is also why there's no VRAM question here. Set REACTOR_API_KEY (environment, or config.ini under [API]) and restart. Copy example_inputs/ into ComfyUI's input folder so the bundled example workflows find their clips.

Where people get burned

Wiring both a video and a camera. In Realtime these models take exactly one source and the node says so: "connect a video or a Reactor Camera Capture". Pick one.

Expecting a cut. There's no kind here and the model doesn't do hard cuts. If you need a scene break, that's a different model in this pack.

The reference image is read once. Attaching it to segment three doesn't swap the look mid-sequence the way Vidu's editing_type does.

Live takes need a real browser tab. Queue from a script or the API and you'll get "Open this workflow in a ComfyUI browser tab to record a live take." Save writes into reactor/realtime under ComfyUI's output folder, and filename_prefix moves it.

It's a source model, so the edit can only go as far as the source allows. Whatever your clip shows is what there is to work with; X2 isn't going to invent a second person into frame.

CategoryReactor/Edit video

Inputs (5)

NameTypeDefaultDescription
promptSTRING—
framesINT1201–100000How many frames of video this segment plays. It starts where the segment before it in the sequence ends.
imageoptIMAGEReference image, read on the first segment.
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—