Model API

Luma Ray 3.2

Luma Ray 3.2 re-renders an existing video into new cinematic motion guided by a text prompt, preserving the source's look and movement while controlling resolution, duration, and HDR.

Model id

Use this in every request
luma/agent/ray/v3.2/video-to-video

This model has other modes with their own ids: luma/agent/ray/v3.2/text-to-video, luma/agent/ray/v3.2/image-to-video.

Run it

Quote the input, start the generation with the quote, then poll the job. Set RAYWAKE_API_KEY first; see Authentication.

# 1. Price the exact input (quotes are valid for up to 10 minutes)
curl -s https://api.raywake.com/v1/quotes \
  -H "Authorization: Bearer $RAYWAKE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "luma/agent/ray/v3.2/video-to-video",
  "input": {
    "prompt": "A red ceramic cup on a wooden table, soft morning light",
    "video_url": "https://example.com/input.mp4"
  }
}'

# 2. Start the generation with the quote_id from step 1
curl -s https://api.raywake.com/v1/generate \
  -H "Authorization: Bearer $RAYWAKE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"model": "luma/agent/ray/v3.2/video-to-video", "quote_id": "QUOTE_ID", "input": {"prompt":"A red ceramic cup on a wooden table, soft morning light","video_url":"https://example.com/input.mp4"}}'

# 3. Poll until the status is terminal
curl -s https://api.raywake.com/v1/jobs/JOB_ID \
  -H "Authorization: Bearer $RAYWAKE_API_KEY"

Input

Input fields for luma/agent/ray/v3.2/video-to-video
NameTypeDescription
promptrequiredstring
Text prompt describing how to edit the source video.
video_urlrequiredstring (URL)
URL of the source video to edit.
userstring
Optional opaque identifier for the end user making the request.
start_image_urlstring (image URL)
Optional 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.
resolutionstring (enum)
Resolution of the edited video.

Default: 540p

One of: 540p, 720p, 1080p

durationstring (enum)
Duration of the edited video.

Default: 5s

One of: 5s, 10s

edit_strengthstring (enum)
How 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.

One of: adhere_1, adhere_2, adhere_3, flex_1, flex_2, flex_3, reimagine_1, reimagine_2, reimagine_3

auto_controlsboolean
Let the model derive the edit conditioning schedule from the source video. Cannot be combined with edit_strength.

Default: false

hdrboolean
Generate an HDR-encoded MP4. Requires HDR access on the account and a resolution of 720p or 1080p.

Default: false

exr_exportboolean
Also export an EXR file alongside the MP4. Requires hdr=true and HDR access.

Default: false

Some fields of this model are not available through Raywake: keyframe_indexes.

Output

A succeeded job lists its results under outputs, stored on our side. See Jobs for every field.

Job excerpt
"outputs": [
  { "type": "video", "url": "https://…", "mime_type": "video/mp4", "thumbnail_url": "https://…" }
]

Pricing

  • 540p$0.2282/ second
  • 720p$0.3423/ second
  • 1080p$0.6846/ second

The exact charge for your input comes from a quote. How charges settle