What is Luma Dream Machine Ray-2 API?
Luma Ray-2 generates high-quality videos from text prompts or images with advanced AI techniques.
Technical Specifications
- Supported inputs: Image, Text
- Output: Video
Performance Benchmarks
[embed]
Luma Dream Machine Ray-2 API Pricing
- Pricing on request
Where to Use Luma Dream Machine Ray-2
Short-form video generation
Create clips for social, ads, and product demos from text or image prompts.
Previsualization and storyboards
Rapidly prototype motion concepts before committing to production.
import requests, time headers = {"Authorization": "Bearer " + AIMLAPI_KEY} job = requests.post( "https://api.aimlapi.com/v2/video/generations", headers=headers, json={ "model": "luma/ray-2", "prompt": "A serene timelapse of clouds over a mountain range" }, ).json() gid = job["id"] while True: res = requests.get(f"https://api.aimlapi.com/v2/video/generations?generation_id={gid}", headers=headers).json() if res.get("status") in ("completed", "error"): break time.sleep(5) print(res["video"]["url"])
const headers = { Authorization: `Bearer ${process.env.AIMLAPI_KEY}`, "Content-Type": "application/json", }; const job = await (await fetch("https://api.aimlapi.com/v2/video/generations", { method: "POST", headers, body: JSON.stringify({ "model": "luma/ray-2", "prompt": "A serene timelapse of clouds over a mountain range" }), })).json(); let res; do { await new Promise((r) => setTimeout(r, 5000)); res = await (await fetch(`https://api.aimlapi.com/v2/video/generations?generation_id=${job.id}`, { headers })).json(); } while (!["completed", "error"].includes(res.status)); console.log(res.video.url);
# submit the generation — the response contains the job "id" curl -X POST https://api.aimlapi.com/v2/video/generations \ -H "Authorization: Bearer $AIMLAPI_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"luma/ray-2","prompt":"A serene timelapse of clouds over a mountain range"}' # then poll until status is "completed" — video.url holds the result curl "https://api.aimlapi.com/v2/video/generations?generation_id={id}" -H "Authorization: Bearer $AIMLAPI_KEY"
OpenAI-compatible — swap the base URL and it works with your existing SDK.
| Type | Price |
|---|---|
| Output | |
| Benchmark | Score | What it measures | Source | Retrieved |
|---|---|---|---|---|
| Text-to-Video Arena | 942 | Human preference Elo from blind pairwise comparisons of generated videos, measured independently by Artificial Analysis | Source | September 23, 2026 |
| Model | Input | Output | Context | Best for |
|---|---|---|---|---|
Ray 2 This page | Video generation |
Ray 2 takes image, text as input and returns video.
Ray 2 became available on December 2, 2025.
Ray 2 is priced at $0.008 / 1M px.
Ray 2 is billed per generation — a fixed charge per output rather than by prompt length.
Yes, Ray 2 accepts image input as well as a text prompt.
Ray 2 was built by Luma AI.
Send a request to v2/video/generations with luma/ray-2 as the model id.
Yes. Ray 2 is served through AI/ML API, so the same key and endpoint format used for other models applies.