API reference · Luma

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

Integrate this model through SandBase's unified API, with production-ready schemas and examples.

VIDEOAsyncOpen model
Production endpoint

Send your first request

OpenAI-compatible endpoint with unified authentication and usage tracking.

POSThttps://api.sandbase.ai/v1/run
Model IDluma/agent/ray/3.2/video-to-video
01

Input Schema

12 parameters · 2 required · 10 optional

ParameterTypeRequiredDescription
imagestringRequiredOptional URL of an image to use as the edited video's first frame — e.g. a restyled version of the source's opening frame to steer the look of the edit. Leave unset to let the model derive the first frame from the source video.
promptstringRequiredText prompt describing how to edit the source video. · Min length: 1 · Max length: 6000
hdrbooleanOptionalGenerate an HDR-encoded MP4. Requires HDR access on the account and a resolution of 720p or 1080p. · Default: false
videostringOptionalURL of the source video to edit. · Min length: 1
controlsstringOptionalPer-signal conditioning controls (pose, depth, normals, trajectory, face) for finer control than edit_strength. Cannot be combined with auto_controls.
durationintegerOptionalDuration of the edited video. · Options: · Default: "5s"
keyframesstring[]OptionalMulti-keyframe edit guide frames: up to 64 image URLs pinned at the source-frame positions given by keyframe_indexes. Mutually exclusive with start_image_url. Provide keyframes and keyframe_indexes together (same length).
exr_exportbooleanOptionalAlso export an EXR file alongside the MP4. Requires hdr=true and HDR access. · Default: false
resolutionstringOptionalResolution of the edited video. Higher resolutions cost more. · Options: 540p, 720p, 1080p · Default: "540p"
540p720p1080p
auto_controlsbooleanOptionalLet the model derive the edit conditioning schedule from the source video. Cannot be combined with edit_strength. · Default: false
edit_strengthstringOptionalHow closely the edit preserves the source video. 'adhere_*' stays closest to the source, 'flex_*' is balanced, and 'reimagine_*' diverges most. Leave unset to use Luma's default. Cannot be combined with auto_controls. · Options: adhere_1, adhere_2, adhere_3, flex_1, flex_2, flex_3, reimagine_1, reimagine_2, reimagine_3
adhere_1adhere_2adhere_3flex_1flex_2flex_3reimagine_1reimagine_2reimagine_3
keyframe_indexesinteger[]OptionalSource-video frame positions where each keyframes[i] is anchored. Non-negative, unique, and the same length as keyframes.
02

Output Schema

FieldTypeDescription
idstringUnique identifier for the generation task
statusstringTask status: pending, running, completed, failed, timeout
modelstringModel used for the generation
outputsarrayArray of output items
outputs[].urlstringURL of the generated artifact
outputs[].content_typestringMIME type (e.g. image/png, video/mp4)
errorobject | nullError details if failed, null on success
error.typestringMachine-readable error type code
error.messagestringHuman-readable error description

Async Workflow

This model uses asynchronous execution. Submit a request and poll for the result.

  1. Submit — POST to /v1/run, receive an id
  2. Poll — GET /v1/run/{id} until status is completed, failed, or timeout
  3. Retrieve — Read outputs from 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/video-to-video",
  "hdr": false,
  "image": "https://storage.googleapis.com/falserverless/gallery/example_inputs_liuyifei.png",
  "video": "https://storage.googleapis.com/falserverless/example_inputs/birefnet-video-input.mp4",
  "prompt": "Restyle the footage as a hand-painted watercolor animation with soft pastel colors.",
  "duration": "5s",
  "exr_export": false,
  "resolution": "540p",
  "auto_controls": false
}'

# Step 2: Poll result (replace <id>)
curl https://api.sandbase.ai/v1/run/<id> \
  -H "Authorization: Bearer YOUR_API_KEY"