Nodes/Reactor API: Realtime Video/Reactor Vidu S2-Editing Segment
ComfyUI Node

Reactor Vidu S2-Editing Segment

The segment node with no prompt box

By reactor-team·Created about a month ago·Updated about 11 hours ago· 7
Reactor Vidu S2-Editing Segment
  • image
  • video
  • sequence
  • REACTOR_SEQUENCE
◄frames120►
◄editing_typestyle_transfer►

Every other segment node in this pack has a text box. This one doesn't have one at all. Vidu S2-Editing is driven by an image and a mode switch, and that's the first thing to understand about it: the picture is the prompt.

What it's for

This is restyle, re-dress or recast - take a source clip or a live camera, hand the model a reference image of a person, an outfit or a style, and say which of those four things you're doing. The README's examples are the shape of it: your camera restyled from an image, your camera dressed in an outfit from an image, your camera recast as a character from an image. Source on the left, result on the right.

Locally, this is a job that instruction-editing models took over - Qwen-Image-Edit and friends turned "edit by description" into the default way people work. Vidu S2-Editing is the video-native version of that idea, and the way you give it an instruction is by showing it a picture rather than typing at it.

How it works

The source is a video, and it's required on the first segment. Reference images can be attached on any segment - later ones replace the reference for that stretch - and the editing_type setting rides the timeline the same way. Every source keeps its aspect ratio and is fitted by the short side, so a 16:9 clip stays 16:9.

Because this is a source model, it also works live in Reactor Realtime with a Reactor Camera Capture plugged in, which is where the try-on and recast examples live. The Reactor Realtime node makes you pick one source - a video file or the camera, never both.

The inputs that matter

  • video (optional in the schema, required in practice) - the clip to edit. First segment only.
  • image - the reference the edit is driven from. The person, the garment, the look. This is your instruction.
  • editing_type - one of style_transfer, virtual_tryon, subject_replacement, background_replacement, defaulting to style_transfer. It holds its value until a later segment changes it, so you can switch what's happening mid-sequence.
  • frames - how long this stretch of the edit plays, default 120, step 1.
  • 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 by hand:

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

One dependency (reactor-sdk>=1.6), no model files, and a key you have to provide yourself: REACTOR_API_KEY in ComfyUI's environment, or [API] in config.ini. Restart and the nodes are under Reactor. The bundled edit examples need the repo's example_inputs/ copied into ComfyUI's input folder.

Where people get burned

Looking for the prompt box. There isn't one. If the edit you want can't be expressed by a reference image plus those four modes, this is the wrong node - use X2, which is the prompt-driven editor in the same category.

editing_type is sticky. Set virtual_tryon on segment two and it stays there for every segment after it, until something changes it. A sequence that quietly keeps trying to dress someone is usually this.

One reference at a time per segment. The image socket takes a single image, so "this person, in that jacket" is expressed by picking the one reference that matters, not by wiring two in.

The video goes on the first segment. Later segments supply their own reference and mode, but the source clip is read once, at the start.

Frames don't snap to a grid. This model isn't chunked in the plugin, so the visualizer's chunk warnings don't apply. It plays at 24fps in the output file; Reactor's docs don't publish a frame rate for it, so treat the file's timing as the plugin's best guess.

CategoryReactor/Edit video

Inputs (5)

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