Image Camera Move

Convert a static image into a short video with push, pull, pan, and move camera effects.

Before / After

Before

Original static image input

Before
After

Generated camera-move video output

Create Task

Basic Information

ItemValue
Request MethodPOST
Request Path/task/image_move
Content-Typeapplication/json
AuthenticationRaw API key in the Authorization header

Request Body

ParameterTypeRequiredDefaultDescription
file_idstringYes-Uploaded image file ID
widthnumberNo1920Output video width in pixels, up to 10000
heightnumberNo1080Output video height in pixels, up to 10000
durationnumberNo8Video duration in seconds, up to 12
fpsnumberNo60Frame rate, up to 60 fps
motionstringNo-Camera move style, see the table below. When omitted, the server picks one automatically (composition analysis + subject detection + randomness); when specified, reruns with the same image and parameters produce the same move

Camera Move Styles (motion values)

Pan (8 values, each describes the direction of movement)

ValueEffect
up_to_down / down_to_upPan downward / upward
left_to_right / right_to_leftPan rightward / leftward
left_up_to_right_down / right_down_to_left_upDiagonal: top-left → bottom-right / bottom-right → top-left
right_up_to_left_down / left_down_to_right_upDiagonal: top-right → bottom-left / bottom-left → top-right

Zoom in (9 values, each describes the anchor position on the canvas)

ValueEffect
zoom_in_centerZoom in anchored at the center
zoom_in_up / zoom_in_down / zoom_in_left / zoom_in_rightZoom in anchored at an edge midpoint
zoom_in_left_up / zoom_in_right_up / zoom_in_left_down / zoom_in_right_downZoom in anchored at a corner

Zoom out (9 values, same anchor positions)

ValueEffect
zoom_out_centerZoom out anchored at the center
zoom_out_up / zoom_out_down / zoom_out_left / zoom_out_rightZoom out anchored at an edge midpoint
zoom_out_left_up / zoom_out_right_up / zoom_out_left_down / zoom_out_right_downZoom out anchored at a corner

Request Example

curl -X POST https://api.ai-mcn.tv:10000/task/image_move \
  -H "Authorization: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "file_id": "537489015178246",
    "width": 1920,
    "height": 1080,
    "duration": 8,
    "fps": 60,
    "motion": "zoom_in_center"
  }'

Success Example

{
  "code": 200,
  "msg": "success",
  "data": {
    "task_id": "537489015178247",
    "task_type": "image_move_local",
    "status": "queued"
  }
}

Query Task Result

Basic Information

ItemValue
Request MethodGET
Request Path/task/image_move/{task_id}
AuthenticationRaw API key in the Authorization header

Output Result (output_result)

ParameterTypeDescription
file_idstringGenerated video file ID
download_urlstringDownload path for the generated video

Success Example

{
  "code": 200,
  "msg": "success",
  "data": {
    "task_id": "537489015178247",
    "status": "completed",
    "progress": 100,
    "output_result": {
      "file_id": "537489015178248",
      "download_url": "/download/a1/output.mp4"
    },
    "create_time": "2026-04-05T08:00:00Z",
    "update_time": "2026-04-05T08:00:20Z"
  }
}

Error Codes

Error CodeHTTP StatusDescriptionResolution
6013400Missing file_idPass the file_id field
6014400File type does not match the taskUpload an image file
6016400Unsupported motion valueUse a value from the Camera Move Styles table above
6004404File not foundVerify the file_id
6502401Authentication failedCheck the Authorization header
6202402Insufficient balanceRecharge in the Dashboard