Real outputs from the public examples of this model on Replicate, with the prompt and settings that produced them. They were not generated live on this page.
Prompt
A dense, verdant jungle world made up of small lego-like pieces. We see a rainbow chameleon running through the 3D world, the camera in and out of focus.
Runway was founded in 2018 in New York City by Cristobal Valenzuela, Anastasis Germanidis and Alejandro Matamala-Ortiz, three NYU ITP graduates who set out to build AI-native creative tools. Runway co-authored the Stable Diffusion paper (Rombach et al., 2022) with CompVis and LMU Munich and has shipped Gen-1 (2023), Gen-2 (2023), Gen-3 Alpha (June 2024), Gen-3 Alpha Turbo (July 2024), Gen-4 (March 2025) and Gen 4.5 (mid-2025). Gen 4.5 is the incremental update to Gen-4 with higher fidelity, longer durations and improved character consistency. The company has raised over $300M from Google, NVIDIA, Salesforce Ventures and General Catalyst at a $3B+ valuation, and runs the annual AI Film Festival as well as Hollywood-studio partnerships.
Latent video diffusion model (Diffusion Transformer) with reference and motion adapters
Runway Gen 4.5 is a closed Diffusion Transformer operating on a learned spatio-temporal latent space, building on the Gen-4 foundation released in early 2025. The model is conditioned on a multilingual text encoder plus optional image, reference-frame and motion-reference inputs. Gen-4 introduced character-, object- and environment-reference modes that let users lock identity, props or backgrounds across multiple shots; Gen 4.5 expands the reference vocabulary and improves consistency for longer sequences. Native generation is up to 10 seconds per clip at 720p (with 1080p upscale), and Runway's editor chains generations into multi-shot scenes. Gen 4.5 also tightens the integration with Runway's Act-One performance capture, Motion Brush, Lip Sync and Camera Control features. Training uses internal video, licensed footage and partner data on Runway's multimodal training infrastructure.
curl https://railwail.com/api/v1/videos/generations \
-H "Authorization: Bearer $RAILWAIL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "runway-gen45",
"prompt": "A slow drone shot over a misty pine forest at sunrise"
}'
# Response: {"job_id": "...", "status": "queued", ...}
# Poll until status is completed, failed or cancelled:
curl https://railwail.com/api/v1/jobs/JOB_ID \
-H "Authorization: Bearer $RAILWAIL_API_KEY"
import os
import time
import requests
API = "https://railwail.com/api/v1"
headers = {"Authorization": f"Bearer {os.environ['RAILWAIL_API_KEY']}"}
job = requests.post(
f"{API}/videos/generations",
headers=headers,
json={
"model": "runway-gen45",
"prompt": "A slow drone shot over a misty pine forest at sunrise",
},
).json()
while True:
status = requests.get(f"{API}/jobs/{job['job_id']}", headers=headers).json()
if status["status"] in ("completed", "failed", "cancelled"):
break
time.sleep(5)
print(status["status"], status.get("output_url"))
const API = "https://railwail.com/api/v1";
const headers = {
Authorization: `Bearer ${process.env.RAILWAIL_API_KEY}`,
"Content-Type": "application/json",
};
const job = await fetch(`${API}/videos/generations`, {
method: "POST",
headers,
body: JSON.stringify({
model: "runway-gen45",
prompt: "A slow drone shot over a misty pine forest at sunrise"
}),
}).then((r) => r.json());
let status;
do {
await new Promise((r) => setTimeout(r, 5000));
status = await fetch(`${API}/jobs/${job.job_id}`, { headers }).then((r) => r.json());
} while (!["completed", "failed", "cancelled"].includes(status.status));
console.log(status.status, status.output_url);