Ray 3.2 API Overview
Ray 3.2 is Luma AI's most advanced video generation model. It introduces HDR and HDR+EXR color modes, multi-resolution output from 360p to 1080p, video editing, and reframe — all through a single API. Compared to Ray 2, Ray 3.2 delivers superior motion coherence, lighting accuracy, and cinematic-grade color grading.
Technical Specifications
Performance Benchmarks
[embed]
Ray 3.2 API Pricing
Generation (SDR):
HDR / HDR+EXR (5s only):
Video Edit (SDR):
Video Reframe (per second):
Code Sample
[embed]
Comparison with Other Models
Cinematic key art and trailers are documented as a use case, including generating hero shots, testing alternate looks on the same blocking, and reframing for theatrical or social formats.
Game cinematics and capsule art are documented as a use case, including animating a hero still for in-game cutscenes or store capsule loops.
Restyling approved footage is documented as a use case, especially when the shot is already approved but needs a different palette or era while preserving the performance.
Aspect ratio variants for cross-platform delivery are documented as a use case, including cutting one master and reframing it for Reels, TikTok, feeds, and premium hero placements.
import requests, time headers = {"Authorization": "Bearer " + AIMLAPI_KEY} job = requests.post( "https://api.aimlapi.com/v2/video/generations", headers=headers, json={ "model": "luma/ray-3.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-3.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-3.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 | |
| Model | Input | Output | Context | Best for |
|---|---|---|---|---|
Ray 3.2 This page | Video generation |
Ray 3.2 takes image, text, video as input and returns video.
Ray 3.2 is priced at $0.06 / 1M px.
Ray 3.2 is billed per generation — a fixed charge per output rather than by prompt length.
Yes, Ray 3.2 accepts image input as well as a text prompt.
Ray 3.2 was built by Luma AI.
Use luma/ray-3.2 as the model id on AI/ML API.
Yes. Ray 3.2 is served through AI/ML API, so the same key and endpoint format used for other models applies.