Skip to content

MAGI-1 (Distilled) · Image to Video

Integrate

Model id magi-distilled/image-to-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/image-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",
    "image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  }'

# 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 Image to Video Fastup to 720p #image-to-video

Animates a still image as the first frame of a 96 to 192 frame video guided by a prompt

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 image_url
Drop a file, or

URL supplying the video's opening image, which is resized and cropped about its center if needed to fit the selected aspect ratio.

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 seed · enable_safety_checker

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

POST /run/magi-distilled/image-to-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/image-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",
    "image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  }'

# 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) · Image to Video

Uses `image_url` as the first frame and a required `prompt` to describe the motion. Images that do not match the chosen aspect ratio are resized and center cropped. `num_frames` ranges from 96 to 192, `resolution` is 480p or 720p, and `num_inference_steps` is 4, 8, 16 or 32.

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.
image_urlrequired image
Typeurl · image
URL supplying the video's opening image, which is resized and cropped about its center if needed to fit the selected aspect ratio.
num_framesoptional
Typeinteger | null
Default96
96 – 192
Output frame count, with a minimum of 96 and a maximum of 192.
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/image-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": 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",
    "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  },
  "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: Image to Video

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