What Helios is, its key features, and a quick start.
Helios is an interactive, real-time video generation model built on a 14B-parameter Diffusion
Transformer. It produces a continuous, infinite video stream that you steer in real time: change
prompts, swap reference images, and control playback while the video keeps playing.The Helios reference is split across four pages: this overview, the complete
command and event schema, the
prompt guide for writing prompts that produce smooth
output, and an end-to-end tutorial against the open-source
reference frontend.The base wire protocol is the same as every other Reactor model: open a session with the
Reactor class (model name helios), send named commands, receive
events. Helios’s surface adds a small set of model-specific commands for prompts, reference images,
the seed, and playback control.
The fastest path to a working Helios app is the create-reactor-app CLI, which scaffolds a runnable
project for you. You can also clone the
open-source reference frontend
directly, or follow the tutorial for a guided walkthrough.
Working in Python instead? The CLI is JavaScript-only, so install the SDK with
pip install reactor-sdk and follow the Python tab below (see the
quickstart for the full walkthrough).A minimal connect-and-generate flow looks like:
import { Reactor } from "@reactor-team/js-sdk";const video = document.querySelector("video")!;const reactor = new Reactor({ modelName: "helios" });// Render frames as soon as they arrive.reactor.on("trackReceived", (name, track, stream) => { if (name !== "main_video") return; video.srcObject = stream; void video.play();});// Once the session is ready, set a prompt and start generating.reactor.on("statusChanged", async (status) => { if (status !== "ready") return; await reactor.sendCommand("set_prompt", { prompt: "A serene mountain landscape at sunrise" }); await reactor.sendCommand("start", {});});const jwt = await getToken(); // token minted on your serverawait reactor.connect(jwt);
import asyncioimport osfrom reactor_sdk import Reactor, ReactorStatusasync def main(): reactor = Reactor(model_name="helios", api_key=os.environ["REACTOR_API_KEY"]) # Frames arrive as (H, W, 3) uint8 RGB NumPy arrays. @reactor.on_frame def on_frame(frame): print(f"Frame: {frame.shape}") # Once the session is ready, set a prompt and start generating. @reactor.on_status(ReactorStatus.READY) async def on_ready(status): await reactor.send_command("set_prompt", {"prompt": "A serene mountain landscape at sunrise"}) await reactor.send_command("start", {}) await reactor.connect() await asyncio.Event().wait() # run until interruptedasyncio.run(main())
That uses the base SDK. Helios also has a typed SDK, @reactor-models/helios, with named methods
(setPrompt, start, …) and React hooks; the tutorial uses it. See
Typed Model SDKs.
Optionally upload and set a reference image for image-to-video mode.
Start generation.
Control playback with pause / resume.
Schedule additional prompts at future chunks, or reset to start over.
Change the reference image mid-generation. The reference image is cleared on reset.
Helios generates video in short segments called chunks, each 33 frames long. You can send
commands at any time, but they take effect at the start of the next chunk. There can be a short
delay between sending a command and seeing the change in the video.