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.
Product ideation and early concept visualization are documented use cases for Ray2, including rapidly creating video mockups of product ideas to speed decision-making and iteration.
Product promotion and brand storytelling are also listed uses, with Ray2 described as suitable for generating video clip content to showcase products or services.
Previsualization for film and entertainment workflows is another documented use case, including creating initial versions of special effects sequences, realistic green-screen backgrounds, and concept footage.
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 | |
Luma Dream Machine Ray-2 takes image, text as input and returns video.
Luma Dream Machine Ray-2 became available on December 2, 2025.
Luma Dream Machine Ray-2 is priced at $0.103514–$1.656226 / sec (by resolution).
Luma Dream Machine Ray-2 is billed per generation — a fixed charge per output rather than by prompt length.
Yes, Luma Dream Machine Ray-2 accepts image input as well as a text prompt.
Luma Dream Machine Ray-2 was built by Luma AI.
Use luma/ray-2 as the model id on AI/ML API.
Yes. Luma Dream Machine Ray-2 is served through AI/ML API, so the same key and endpoint format used for other models applies.