API Free WeekHundreds of APIs are free to call this week.Browse free APIs

Luma Ray 3.2 Image to Video

luma/agent/ray/3.2/image-to-video

Agent Ray 3.2 by Luma - animate still images into dynamic videos with AI. Transform photos into cinematic clips with natural motion, camera movement, and optional audio generation.

Base price
$0.15USD / run
Execution
async
Model type
video
Input fields
11

Try the model

Playground

Open playground
Input
Text prompt describing the motion/scene to generate.

PNG, JPEG, WebP, or GIF · 20 MiB maximum

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.

PNG, JPEG, WebP, or GIF · 20 MiB maximum

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.
Resolution of the generated video. Higher resolutions cost more. Allowed values: 540p, 720p, 1080p.
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.
Generate a seamless loop. Only valid for standard-dynamic-range generations without an end frame or keyframes.

PNG, JPEG, WebP, or GIF · 20 MiB maximum

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).
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.
Also export an EXR file alongside the MP4. Requires hdr=true and HDR access.
Generate an HDR-encoded MP4. Requires HDR access on the account and a resolution of 720p or 1080p; not supported with loop.
The aspect ratio of the generated image. Allowed values: 21:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16.
OutputReady

Your output will appear here

Complete the inputs, then click Run.

Specifications

Pricing

Base price
$0.15 / run
Billing formula
(params.resolution ?? "540p") == "1080p" ? ((params.hdr ?? false) ? ((params.exr_export ?? false) ? 3.60 : 2.40) : 1.20) : (params.resolution ?? "540p") == "720p" ? ((params.hdr ?? false) ? ((params.exr_export ?? false) ? 0.90 : 0.60) : 0.30) : 0.15

Context & modalities

Input
Schema-defined
Output
video

Capabilities

Chat
Not supported
Vision
Not supported
Reasoning
Not supported
Structured output
Not supported
Function calling
Not supported
Audio input
Not supported

Access

Provider
Luma
Model ID
luma/agent/ray/3.2/image-to-video
Execution
async
API
Unified Run API
Endpoint
/v1/run

API README

PRICED DRAFT — MANUAL REVIEW REQUIRED exact_model_mode: luma/agent/ray/v3.2/image-to-video original_unit: For 5s video your request will cost $0.15 for 540p, $0.30 for 720p and $1.20 for 1080p. 10s is not available for image-to-video (start-frame requirement). HDR (5s) costs $0.60 at 720p and $2.40 at 1080p; HDR + EXR (5s) costs $0.90 at 720p and $3.60 at 1080p (540p not available in HDR). For $1 you can run this model approximately 6 times (540p/5s). method: complete 5-second resolution/HDR/EXR tiers result_base_price: 0.15 result_price_formula: (params.resolution ?? "540p") == "1080p" ? ((params.hdr ?? false) ? ((params.exr_export ?? false) ? 3.60 : 2.40) : 1.20) : (params.resolution ?? "540p") == "720p" ? ((params.hdr ?? false) ? ((params.exr_export ?? false) ? 0.90 : 0.60) : 0.30) : 0.15 review_status: pending; model remains disabled checked_at: 2026-08-16

Start building

Send your first request

OpenAI-compatible endpoint with unified authentication and usage tracking.

Production API
Unified Run API endpoint
https://api.sandbase.ai/v1/run
Model ID
luma/agent/ray/3.2/image-to-video
# The quoted heredoc keeps Unicode and shell metacharacters unchanged.
result=$(curl --fail-with-body --silent \
  -X POST "https://api.sandbase.ai/v1/run" \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'SANDBASE_JSON'
{
  "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"
}
SANDBASE_JSON
)
run_id=$(printf '%s' "$result" | jq -r .id)
for attempt in $(seq 1 120); do
  status=$(printf '%s' "$result" | jq -r .status)
  case "$status" in completed|failed|timeout) break ;; esac
  sleep 2
  result=$(curl --fail-with-body --silent \
    -H "Authorization: Bearer $SANDBASE_API_KEY" \
    "https://api.sandbase.ai/v1/run/$run_id")
done
status=$(printf '%s' "$result" | jq -r .status)
[ "$status" = completed ] || { echo "Generation ended: $status" >&2; exit 1; }
printf '%s\n' "$result"

Choose your model

Compare models

All language models
ModelContextInput / 1MOutput / 1MReleased
Luma———Jun 9, 2026
Luma———Jun 9, 2026