Skip to content
English

Seedance 2.5 Image to Video API

POST Base URL: https://api.hiapi.ai /v1/tasks

Image, video, and audio models are called through theUnified Async API POST /v1/tasks endpoint; only the input fields differ (see input parameters below).

Model summary

Model seedance-2.5/image-to-video
Capability First-frame / first-last-frame image-to-video
Resolution 720p / 1080p
Duration 4-30 seconds

Generate up to 30 seconds from a first frame or a first/last-frame pair, with the output ratio following the first frame and optional synchronized audio.

Production guidance

Calling the API
  • When providing last_frame_url, also provide first_frame_url.
  • Use callback.url for task success or failure notifications; read the task object from data in query responses and directly from the callback body.
  • Artifact URLs expire; copy files you need to keep into persistent storage.

Best suited for

Animate a still

Add natural motion and camera movement to a poster, product image, illustration, or scene.

first_frame_url
Controlled transitions

Specify both endpoints to create a coherent transition between two images.

first_frame_urllast_frame_url
Sound-on video

Generate synchronized dialogue, effects, and background music for an image-driven shot.

generate_audio

Request parameters

model string required

Model ID.

example seedance-2.5/image-to-video
input object required

First-frame and first/last-frame image-to-video parameters.

prompt string required

Motion, camera, scene, and audio instructions. Eleven prompt languages are supported.

first_frame_url string optional

First-frame HTTP(S) URL, data URL, or asset://<id> asset ID. First-frame or first/last-frame input cannot be combined with reference images or audio.

last_frame_url string optional

Last-frame image URL used with first_frame_url. If its ratio differs from the first frame, it is center-cropped. First/last-frame input cannot be combined with reference images or audio.

reference_image_urls string[] optional

Array of up to 30 reference image URLs for subject, style, or composition guidance. Reference images cannot be combined with first_frame_url or last_frame_url.

reference_audio_urls string[] optional

Array of up to 10 reference audio clips for voice or sound guidance. Reference audio cannot be combined with first_frame_url or last_frame_url.

resolution enum optional

Output video resolution.

default 720p enum: 720p1080p
duration integer optional

Output duration in seconds. Accepts integers from 4 to 30.

default 5
aspect_ratio enum optional

Output aspect ratio, derived from the first frame.

default adaptive enum: adaptive
generate_audio boolean optional

Generate synchronized dialogue, effects, and background audio.

default true
output_format enum optional

Output format. mp4 has broad compatibility; mov is intended for professional post-production.

default mp4 enum: mp4mov
watermark boolean optional

Add an AI-generated watermark to the bottom-right corner.

default false
web_search boolean optional

Allow the model to search for current information mentioned in the prompt.

default false
callback object optional

Sends a notification when the task succeeds or fails; read the task object from data in query responses and directly from the callback body.

url string required

HTTPS URL that receives task success or failure notifications.

example https://your-domain.com/hiapi/callback
when enum optional

Triggers when the task succeeds or fails.

default final enum: final

Example requests

First-frame generation

Pass only the first frame and let the model create motion.

Request body
{
  "model": "seedance-2.5/image-to-video",
  "input": {
    "prompt": "Move from a static view into a slow orbit",
    "first_frame_url": "https://example.com/first-frame.jpg",
    "resolution": "720p",
    "duration": 6,
    "aspect_ratio": "adaptive"
  }
}
First/last-frame transition

Generate a coherent transition between two images.

Request body
{
  "model": "seedance-2.5/image-to-video",
  "input": {
    "prompt": "A natural time-lapse transition from day to night",
    "first_frame_url": "https://example.com/day.jpg",
    "last_frame_url": "https://example.com/night.jpg",
    "resolution": "720p",
    "duration": 8,
    "aspect_ratio": "adaptive",
    "generate_audio": false
  }
}

Getting the result

  1. Read data.taskId from the create-task response.
  2. Wait for the callback or query GET /v1/tasks/:id; polling puts the task under data.
  3. When status=success, read the video URL from output type=video; a callback reads output directly.

FAQ

Where do I read the task from callback and polling responses?

Read the task object from data in query responses and directly from the callback body.

Can I pass only first_frame_url?

Yes. last_frame_url is optional; without it, the model creates the rest of the shot from the first frame.

What is the difference between image aspect ratio and aspect_ratio?

Input images must have an aspect ratio from 0.4 to 2.5; aspect_ratio=adaptive means the output video ratio follows the first frame.

Can I send first/last frames together with reference images or audio?

No. First-frame/first-last-frame input cannot be combined with reference images or reference audio. First-frame and first/last-frame mode can still set generate_audio=true to generate sound synchronized with the picture.

Next steps