Luma's flagship Ray video model. Text-to-video and keyframe (start/end image) generation with optional HDR-encoded output and professional EXR export.
Test this model instantly in the Console Playground โ no code required
Copy usage instructions for Claude, ChatGPT, or other AI
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "luma/ray-3.2",
"input": {
"prompt": "A slow aerial pull-back over a misty mountain valley at sunrise, warm golden light breaking through the clouds.",
"resolution": "1080p",
"duration": 5,
"hdr": true,
"exr_export": true
}
}'| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | Yes | - | Text prompt describing the video. Be specific about subject, motion, camera movement, lighting, and pacing. |
aspect_ratio | string | No | 16:9 | Aspect ratio of the generated video. Ignored when start_image or end_image is set โ the model derives the ratio from the anchor frame(s). 9:163:41:14:316:921:9 |
resolution | string | No | 720p | Output resolution. 540p is not available when hdr is true. 540p720p1080p |
duration | integer | No | 5 | Video duration in seconds. 10s is not supported with hdr, start_image, end_image, or loop. 510 |
hdr | boolean | No | false | Generate HDR-encoded MP4. Requires 720p or 1080p, 5s duration, and no loop. |
exr_export | boolean | No | false | Export an EXR file alongside the MP4 for professional colour-grading workflows. Requires hdr=true. |
loop | boolean | No | false | Generate a seamlessly looping video. Not supported with 10s duration, hdr, or end_image. |
start_image | string | No | - | Optional first frame of the video. Only valid with 5s duration. |
end_image | string | No | - | Optional last frame of the video. Only valid with 5s duration; not supported with loop. |
There are 3 ways to provide files for the start_imageend_image parameters:
Attach files directly to POST /v1/predictions/upload. No separate upload step needed.
curl -X POST "https://api.core.today/v1/predictions/upload" \
-H "X-API-Key: cdt_your_api_key" \
-F "model=luma/ray-3.2" \
-F 'input={"prompt":"your prompt here"}' \
-F "file:start_image=@your_file.png"Pass a publicly accessible URL directly. You can also use file_url from the Storage API.
{
"model": "luma/ray-3.2",
"input": {
"prompt": "your prompt here",
"start_image": "https://example.com/image.jpg"
}
}Common parameters used when calling POST /v1/predictions.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
model | string | Yes | - | Model identifier |
input | object | Yes | - | Object containing the model-specific parameters from the table above |
output_folder | string | No | - | Folder path for output files (max 256 chars, '..' not allowed) |
webhook_url | string | No | - | Webhook URL to call on completion |
is_public | boolean | No | false | If true, output files are also available via permanent public URLs |
Generate a 5-second HDR clip for a color-grading pipeline.
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "luma/ray-3.2",
"input": {
"prompt": "A slow aerial pull-back over a misty mountain valley at sunrise, warm golden light breaking through the clouds.",
"resolution": "1080p",
"duration": 5,
"hdr": true,
"exr_export": true
}
}'Anchor a video with a start and end image to control the exact first and last frame.
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "luma/ray-3.2",
"input": {
"prompt": "Smooth camera dolly transitioning from the empty street to the crowded market.",
"start_image": "https://example.com/street-empty.jpg",
"end_image": "https://example.com/street-crowded.jpg",
"duration": 5
}
}'POST /v1/predictions