The Vidu image-to-video model generates a smooth video from an input image and a text prompt .
Usage notes
To ensure successful API calls, you must use a model, endpoint URL, and API key that all belong to the same region. Cross-region calls will fail.
- Select a model: Confirm the region where your model is located.
- Select a URL: Choose the corresponding endpoint URL. Both HTTP and DashScope SDK URLs are supported.
- Configure an API key: Select a region, get an API key, and then configure the API key as an environment variable.
The sample code in this topic applies to the Singapore region.
HTTP calls
Image-to-video generation is a long-running task that typically takes 1 to 5 minutes, so the API uses an asynchronous model. The workflow consists of two core steps: create a task, then poll for the result.
Step 1: Create a task
Singapore region: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
- After the task is created, use the returned
task_idto query the result. Thetask_idis valid for 24 hours. Do not create duplicate tasks. Instead, use polling to retrieve the result. - For guidance for beginners, see Call APIs with Postman or cURL.
Request parametersHeadersContent-Typestring (Required)The content type of the request. Must be application/json.Content-Type string (Required)The content type of the request. Must be application/json.X-DashScope-Async string (Required)Enables asynchronous processing. HTTP requests support only asynchronous calls. Must be enable.Request bodymodelstring (Required)The name of the model. Valid values are:
object (Required)The basic input, including the text prompt and media assets.
Properties prompt string (Optional)The text prompt, which describes the desired elements and visual characteristics of the generated video.The maximum length is 5,000 characters (both Chinese characters and English letters count as one). Text exceeding this limit is truncated.For more information about how to write prompts, see Vidu Video Generation Prompt Guide.media array (Required)A list of media assets specifying the image for generation.Each element in the array is a media object containing a type field and a url field.
Properties type string (Required)The type of the media asset. This must be set to the following fixed value:
string (Required)The URL of the image file, which must be publicly accessible.
object (Optional)Parameters for video processing, such as resolution and duration.
Properties resolution string (Optional)Specifies the resolution tier for the generated video.The model scales the video to a pixel count that approximates the selected tier while preserving the input image's aspect ratio.Valid values are 720P and 1080P. The default is 720P.duration integer (Optional)The duration of the generated video in seconds.An integer in the range [1, 10]. The default is 5.audio boolean (Optional)watermark boolean (Optional)Specifies whether to add a watermark. The watermark is placed in the bottom-right corner of the video and contains the fixed text "Generated by AI".
integer (Optional)The random number seed must be an integer in the range [0, 2147483647].If not specified, a random seed is generated. A fixed seed improves reproducibility.Because model generation is probabilistic, the same seed does not guarantee identical results. |
|
Response parametersoutputobjectTask output information.
Properties task_id stringThe task ID. Valid for queries for 24 hours.task_status stringThe status of the task.
Enumeration values
stringUnique request identifier for tracing and troubleshooting.code stringError code. Returned only for failed requests. See Error codes.message stringDetailed error message. Returned only for failed requests. See Error codes. |
Save the task_id to query the task status and result. |
Step 2: Query the result
Singapore region: GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
- Polling recommendation: Video generation can take several minutes. Poll for the result at a reasonable interval, such as every 15 seconds.
- Task status flow:
PENDING(queued) →RUNNING(processing) →SUCCEEDED(successful) /FAILED(failed). - Task ID validity: The
task_idis valid for 24 hours. After this period, queries will fail and return a status ofUNKNOWN. - RPS limit: The query endpoint has a default limit of 20 RPS. For high-frequency queries or event notifications, configure asynchronous task callbacks.
- More operations: To perform batch queries, cancel tasks, or run other operations, see Manage Asynchronous Tasks.
Request parametersHeadersAuthorizationstring (Required)Authenticates the request with a Model Studio API key. Example: Bearer sk-xxxx.Path parameterstask_idstring (Required)The ID of the task. |
Replace {task_id} with the task_id value returned by the previous API call. The task_id is valid for queries for 24 hours |
Response parametersoutputobjectTask output information.
Properties task_id stringThe task ID. Valid for queries for 24 hours.task_status stringThe status of the task.
Enumeration values
stringThe time when the task was submitted. format is YYYY-MM-DD HH:mm:ss.SSS.scheduled_time stringThe time when the task was executed. format is YYYY-MM-DD HH:mm:ss.SSS.end_time stringThe time when the task was completed. format is YYYY-MM-DD HH:mm:ss.SSS.end_time stringThe time when the task was completed. format is YYYY-MM-DD HH:mm:ss.SSS.orig_prompt stringVideo URL. Returned only when task_status is SUCCEEDED.The video format is MP4 (H.264 encoding). The video link is valid for 24 hours. Please download it promptly.orig_prompt stringThe original input prompt, corresponding to the request parameter prompt.code stringError code. Returned only for failed requests. See Error codes.message stringDetailed error message. Returned only for failed requests. See Error codes.objectOutput usage statistics, counted only for successful tasks.
Properties duration integerThe total billable video duration in seconds.output_video_durationintegerThe duration of the output video in seconds.size stringThe resolution of the output video.fps integerThe frame rate of the output video. This is fixed at 24.SR stringThe resolution tier of the output video.audio booleanIndicates whether the output is a video with audio.video_count integerThe number of output videos. This is fixed at 1.stringUnique request identifier for tracing and troubleshooting. |
|