Skip to content

Luma Ray 3.2 Video to Video

Integrate

Model id luma/agent/ray/v3.2/video-to-video
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.ru/v1/run/luma/agent/ray/v3.2/video-to-video?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

This request: $0.72 720 API credits · ≈ ₽77.37 Run it on this page

Get API key
Luma AI Video to Video Lipsync5–10 sup to 1080p #stylized#transform

Ray 3.2 video editing that restyles a source video with edit-strength presets, controls and keyframes

Luma AI · Video

Your first result goes here

Build a request below and run it with your API key. Outputs are copied to our storage, kept forever or 7 days for free.

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

•required 88 / 6000

Text instructions for editing the source video.

•required video_url
Drop a file, or

URL for the video being edited.

duration 5 s

Length of the video after editing.

resolution default 540p

Output resolution after editing.

Advanced image · user · edit_strength · auto_controls · enable_safety_checker · keyframes · controls · keyframe_indexes
start_image_url
Drop a file, or

First-frame override for the edited video, supplied as an optional image URL; when omitted, the model derives that frame from the source video. For example, supplying a restyled opening image from the source can guide the edit's appearance.

Optional opaque ID identifying the end user who submits the request.

Source-preservation setting for edits, available only when auto_controls is not used; omission selects the model's default. From greatest departure to closest adherence, the options are 'reimagine_*', 'flex_*' for a balanced result, and 'adhere_*'.

Multi-keyframe editing guides supplied as image URLs instead of start_image_url. Supply keyframes together with an equally long keyframe_indexes array to pin each image to its source-video frame position; at most 64 URLs are allowed.

Fine-grained alternative to edit_strength that configures conditioning separately for pose, depth, normals, trajectory, and face. Using these controls rules out auto_controls.

Source-frame mapping paired one-to-one with keyframes: entry [i] specifies the anchor position for keyframes[i]. Both arrays must have equal lengths, and positions must be distinct and non-negative.

POST /run/luma/agent/ray/v3.2/video-to-video?wait=20 quote → $0.72
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.ru/v1/run/luma/agent/ray/v3.2/video-to-video?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About Luma Ray 3.2 Video to Video

Edits a `video_url` according to a `prompt`, with optional `start_image_url` to steer the first frame. `edit_strength` offers adhere, flex and reimagine levels 1 to 3, while `auto_controls` or a `controls` object give alternative conditioning. Up to 64 `keyframes` can be anchored with `keyframe_indexes`. Output is 540p to 1080p, 5s or 10s, with optional `hdr` and `exr_export`.

Parameters

Send either the canonical name or the native name, not both. Canonical names

NameType DefaultAllowed Description
promptrequired
Typestring
≤ 6,000 characters
Text instructions for editing the source video.
video_urlrequired video
Typeurl · video
URL for the video being edited.
useroptional
Typestring | null
Optional opaque ID identifying the end user who submits the request.
start_image_urloptional image
Typeurl · image
First-frame override for the edited video, supplied as an optional image URL; when omitted, the model derives that frame from the source video. For example, supplying a restyled opening image from the source can guide the edit's appearance.
resolutionoptional
Typeenum
Default540p
540p720p1080p
Output resolution after editing.
durationoptional
Typeenum
Default5s
5s10s
Length of the video after editing.
edit_strengthoptional
Typeenum
adhere_1adhere_2adhere_3flex_1flex_2flex_3reimagine_1reimagine_2reimagine_3
Source-preservation setting for edits, available only when auto_controls is not used; omission selects the model's default. From greatest departure to closest adherence, the options are 'reimagine_*', 'flex_*' for a balanced result, and 'adhere_*'.
auto_controlsoptional
Typeboolean
Defaultfalse
Automatic edit conditioning: the model uses the source video to determine the schedule rather than accepting edit_strength alongside this option.
hdroptional
Typeboolean
Defaultfalse
HDR encoding for MP4 output at either 720p or 1080p, available only to accounts with HDR access.
exr_exportoptional
Typeboolean
Defaultfalse
Additional EXR export accompanying the MP4, available only with both HDR access and hdr=true.
controlsoptional
Typeobject
Fine-grained alternative to edit_strength that configures conditioning separately for pose, depth, normals, trajectory, and face. Using these controls rules out auto_controls.
controls.poseoptional
Typeobject
Conditioning based on pose or skeleton.
controls.pose.enabledoptional
Typeboolean
Defaulttrue
Toggle for pose or skeleton conditioning during editing.
controls.pose.strengthoptional
Typeenum
precisecoarse
Pose-conditioning precision selection: retain the default by omitting it, choose 'coarse' for greater freedom, or use 'precise' to track the source pose tightly.
controls.depthoptional
Typeobject
Conditioning based on depth or scene geometry.
controls.depth.enabledoptional
Typeboolean
Defaulttrue
Toggle for depth or scene-geometry conditioning during editing.
controls.depth.bluroptional
Typenumber | null
0 – 1
Depth blur setting, left unspecified to retain the default or increased to give geometry greater freedom.
controls.normalsoptional
Typeobject
Conditioning based on surface normals.
controls.normals.enabledoptional
Typeboolean
Defaulttrue
Toggle for surface-normal conditioning during editing.
controls.normals.augmentationoptional
Typenumber | null
0 – 1
Surface-normal augmentation setting; retain the default by omitting it, or increase it to permit greater reinterpretation of surface geometry.
controls.trajectoryoptional
Typeobject
Conditioning based on motion trajectories.
controls.trajectory.enabledoptional
Typeboolean
Defaulttrue
Toggle for motion-trajectory conditioning during editing.
controls.trajectory.sparsityoptional
Typenumber | null
0 – 1
Motion-trajectory sparsity setting; omit it to retain the default, or increase it to reduce how many motion anchors are used.
controls.faceoptional
Typeobject
Conditioning based on facial identity.
controls.face.enabledoptional
Typeboolean
Defaulttrue
Toggle for face-identity conditioning during editing.
keyframesoptional
Typestring[]
≤ 64 items
Multi-keyframe editing guides supplied as image URLs instead of start_image_url. Supply keyframes together with an equally long keyframe_indexes array to pin each image to its source-video frame position; at most 64 URLs are allowed.
keyframe_indexesoptional
Typeinteger[]
≤ 64 items
Source-frame mapping paired one-to-one with keyframes: entry [i] specifies the anchor position for keyframes[i]. Both arrays must have equal lengths, and positions must be distinct and non-negative.
enable_safety_checkeroptional
Typeboolean
Defaulttrue
Screening can be relaxed by setting false, provided the caller is authorized.
required Canonical name, also accepted

File parameters take a public https:// URL, a data: URI up to 10 MB, or the file_url of an upload. Files

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "luma/agent/ray/v3.2/video-to-video",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 720,
    "usd": "0.72",
    "charged": 720,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
  },
  "output": {
    "video": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_name": "0-output.mp4",
      "file_size": 1843200
    },
    "exr_file": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_name": "0-output.mp4",
      "file_size": 1843200
    }
  },
  "outputs": [
    {
      "type": "video",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_size": 1843200,
      "width": 1280,
      "height": 720,
      "duration": 5,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
video
object {url, content_type, file_name, file_size}Video produced by the model.
exr_file
object {url, content_type, file_name, file_size} | nullEXR sidecar in the form Luma exports: either one EXR file or a ZIP archive. It is generated when exr_export is true.

More models: Video to Video

For AI agents: this page as Markdown is at https://doitong.com/en-US/developers/models/luma/agent/ray/v3.2/video-to-video.md. All models and guides: https://doitong.com/developers/llms.txt