API reference · Luma
luma/agent/ray/3.2/image-to-video
Integrate this model through SandBase's unified API, with production-ready schemas and examples.
Production endpoint
Send your first request
OpenAI-compatible endpoint with unified authentication and usage tracking.
POST
https://api.sandbase.ai/v1/runModel ID
luma/agent/ray/3.2/image-to-video01
Input Schema
11 parameters · 2 required · 9 optional
| Parameter | Type | Required | Description |
|---|---|---|---|
image | string | Required | URL of the image used as the first frame of the video. Provide either image_url (optionally with end_image_url) or keyframes — the two anchoring modes are mutually exclusive. · Min length: 1 |
prompt | string | Required | Text prompt describing the motion/scene to generate. · Min length: 1 · Max length: 6000 |
hdr | boolean | Optional | Generate an HDR-encoded MP4. Requires HDR access on the account and a resolution of 720p or 1080p; not supported with loop. · Default: false |
loop | boolean | Optional | Generate a seamless loop. Only valid for standard-dynamic-range generations without an end frame or keyframes. · Default: false |
duration | integer | Optional | Duration of the generated video. 10s requires multi-keyframe input (keyframes / keyframe_indexes); it is not supported with a single image_url / end_image_url anchor. · Options: · Default: "5s" |
end_image | string | Optional | Optional URL of an image used as the last frame. When set, the model interpolates between image_url and end_image_url. Cannot be combined with keyframes. |
keyframes | string[] | Optional | Multi-keyframe image-to-video guide frames: 1-64 image URLs pinned at the positions given by keyframe_indexes. Mutually exclusive with image_url, end_image_url, and loop; unlocks 10s and HDR. Provide keyframes and keyframe_indexes together (same length). |
exr_export | boolean | Optional | Also export an EXR file alongside the MP4. Requires hdr=true and HDR access. · Default: false |
resolution | string | Optional | Resolution of the generated video. Higher resolutions cost more. · Options: 540p, 720p, 1080p · Default: "540p" 540p720p1080p |
aspect_ratio | string | Optional | The aspect ratio of the generated image. · Options: 21:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16 21:916:93:24:35:41:14:53:42:39:16 |
keyframe_indexes | integer[] | Optional | Output-frame positions (duration x 24fps: 5s -> 0-120, 10s -> 0-240) where each keyframes[i] is anchored. Non-negative, unique, and the same length as keyframes. |
02
Output Schema
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for the generation task |
status | string | Task status: pending, running, completed, failed, timeout |
model | string | Model used for the generation |
outputs | array | Array of output items |
outputs[].url | string | URL of the generated artifact |
outputs[].content_type | string | MIME type (e.g. image/png, video/mp4) |
error | object | null | Error details if failed, null on success |
error.type | string | Machine-readable error type code |
error.message | string | Human-readable error description |
Async Workflow
This model uses asynchronous execution. Submit a request and poll for the result.
- Submit — POST to /v1/run, receive an
id - Poll — GET /v1/run/{id} until status is
completed,failed, ortimeout - Retrieve — Read
outputsfrom the completed response
03
Code Examples
Ready-to-run snippets
# Step 1: Submit
curl -X POST https://api.sandbase.ai/v1/run \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "luma/agent/ray/3.2/image-to-video",
"hdr": false,
"loop": false,
"image": "https://storage.googleapis.com/falserverless/gallery/example_inputs_liuyifei.png",
"prompt": "Low-angle shot of a majestic tiger prowling through a snowy landscape, leaving paw prints on the white blanket.",
"duration": "5s",
"exr_export": false,
"resolution": "540p"
}'
# Step 2: Poll result (replace <id>)
curl https://api.sandbase.ai/v1/run/<id> \
-H "Authorization: Bearer YOUR_API_KEY"
