Reactor LTX Segment
A photo speaks your script, and the length is spoken for you
- image
- sequence
- REACTOR_SEQUENCE
This is the only segment node in the pack without a frames field. You don't say how long the video is - you say what the person says, and how fast they say it, and the node works out the length.
What it's for
LTX here is a talking-head model: give it a photo of a person and a script, and the person performs the script. Each segment is one take. The README's example does two takes of the same photo, which is exactly the workflow - audition a reading, change a line, do another take.
If you've been following LTX locally, you know the story: Lightricks' LTX-2 became the open-weights lipsync model almost by accident, because it's the one family that generates video and audio together, and the community's verdict on its strongest use case was exactly this. The KB's LTX doc has it as the field's biggest open lipsync story of the year. Reactor is serving that family as a hosted endpoint - same appeal, no VRAM, no pipeline.
How it works
You don't set a length; you set seconds, and 0 means "as long as the script needs at the pace". So a 12-word line at a 140 words-per-minute pace resolves to a short take, and the same line at 220 comes back faster and shorter. Set seconds to an actual number in the 4-to-300 range when you want to force it - that's the field for a deliberate beat of silence, or for a line you want the model to stretch out.
Each segment is one take, and the prompt is the script that take speaks. scene, pace and the reference image are read once on the first segment, so a two-take sequence shares one performer and one setting throughout. There's sound, obviously - a talking head without audio isn't worth the API call - and the output runs at 24fps.
One production detail worth flagging: your portrait is fitted into a wide frame with the crop held near the top, so the face survives it. The frame itself is small. This is a take generator, not a beauty render; upscale afterwards if the clip has to hold up full-screen.
The inputs that matter
- prompt - the script this take speaks. Written to be said, not read.
- seconds - 4 to 300, default 0, steps of 0.5. 0 fits the take to the script at the pace.
- pace - 80 to 220, default 140. Words a minute. Read on the first segment.
- image - the person. Read on the first segment; required in practice.
- scene - describes the setting, read once at the start.
- sequence - the earlier takes; 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
No weights, one dependency (reactor-sdk>=1.6), and a key: REACTOR_API_KEY in ComfyUI's environment or [API] in config.ini. Restart after adding it. The avatar examples need example_inputs/ copied into ComfyUI's input folder - they use photos, and they won't load without them.
Where people get burned
Writing prose instead of speech. The prompt is dialogue. Stage directions, camera notes and mood adjectives mostly get ignored or read aloud badly. Short, sayable lines.
Expecting a length you didn't ask for. With seconds at 0 you're handing control to the pace and the script. That's the point, but it does mean the take is whatever the words take.
Settings on later segments. pace, scene, image and seconds' range are anchored to the first segment. Change the pace on take three and nothing happens.
Portrait input, wide output. The fit is deliberately face-preserving rather than aspect-preserving. Don't plan a vertical deliverable around this node.
The same-name trap, twice. "Reactor" in ComfyUI usually means the ReActor face-swap pack, which is unrelated. And "LTX" here is the hosted endpoint, not the local LTX 2.3 checkpoint you may already have in your models folder.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| seconds | FLOAT | 0.00–300 | How long this segment plays, 4 to 300 seconds. 0 plays as long as the script needs at the pace. |
| imageopt | IMAGE | Reference image, read on the first segment. | |
| sceneopt | STRING | Read on the first segment. | |
| paceopt | INT | 14080–220 | Read on the first segment. |
| sequenceopt | REACTOR_SEQUENCE | The segments before this one. Leave it empty on the first segment. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| REACTOR_SEQUENCE | REACTOR_SEQUENCE | — |