Skip to content

MAGI-1 (Distilled) · Extend Video

Integrate

Model id magi-distilled/extend-video
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/magi-distilled/extend-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.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Files like the example: $0.32 320 API credits your files are measured before the run Run it on this page

Get API key
Sand AI Video to Video Fastup to 720p #video-to-video#video-extend

Continues an existing video from a chosen start frame, producing 96 to 192 new frames

Sand 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

Text instructions that guide video generation.

•required video_url
Drop a file, or

URL of the video used at the start of the output. A mismatch with the selected aspect ratio causes the input to be resized and center-cropped.

resolution default 720p

Output video resolution, either 480p or 720p.

num_inference_steps default 16

Sampling step count, trading longer processing time for better quality as the count increases.

aspect_ratio default auto

Generated-video proportions, selected automatically from the input image when set to 'auto'.

default 96

Output frame count, with a minimum of 96 and a maximum of 192.

Advanced start_frame · seed · enable_safety_checker

Boundary between the unchanged prefix video and newly generated frames. The default places this boundary 32 frames before the video's end for optimal results; frames up to the specified number remain intact in the final video, with generated frames appended afterward.

Seed that makes generation reproducible. Setting it to None selects a seed randomly.

POST /run/magi-distilled/extend-video?wait=20 quote → $0.32
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/magi-distilled/extend-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.com/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 MAGI-1 (Distilled) · Extend Video

Takes a source clip in `video_url` plus a `prompt` and generates a continuation. `start_frame` sets where generation begins; frames before it are kept unchanged. `num_frames` is 96 to 192, with 480p or 720p output and step counts of 4, 8, 16 or 32. Input that does not match the chosen aspect ratio is resized and center cropped.

Parameters

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

NameType DefaultAllowed Description
promptrequired
Typestring
Text instructions that guide video generation.
video_urlrequired video
Typeurl · video
URL of the video used at the start of the output. A mismatch with the selected aspect ratio causes the input to be resized and center-cropped.
num_framesoptional
Typeinteger | null
Default96
96 – 192
Output frame count, with a minimum of 96 and a maximum of 192.
start_frameoptional
Typeinteger | null
≥ 0
Boundary between the unchanged prefix video and newly generated frames. The default places this boundary 32 frames before the video's end for optimal results; frames up to the specified number remain intact in the final video, with generated frames appended afterward.
seedoptional
Typeinteger | null
Seed that makes generation reproducible. Setting it to None selects a seed randomly.
resolutionoptional
Typeenum
Default720p
480p720p
Output video resolution, either 480p or 720p.
num_inference_stepsoptional
Typeenum
Default16
481632
Sampling step count, trading longer processing time for better quality as the count increases.
enable_safety_checkeroptional
Typeboolean
Defaulttrue
Safety-checking switch whose off setting requires account authorization. Without that authorization, every request is checked regardless of the setting; true enables the checker.
aspect_ratiooptional
Typeenum
Defaultauto
auto16:99:161:1
Generated-video proportions, selected automatically from the input image when set to 'auto'.
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": "magi-distilled/extend-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": 320,
    "usd": "0.32",
    "charged": 320,
    "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
    },
    "seed": 42
  },
  "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.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/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 file produced by generation.
seed
integerSeed value applied during generation.

More models: Video to Video

For AI agents: this page as Markdown is at https://doitong.com/developers/models/magi-distilled/extend-video.md. All models and guides: https://doitong.com/developers/llms.txt