All Products
Search
Document Center

Alibaba Cloud Model Studio:Wan image-to-video: first and last frame API reference

Last Updated:Jun 10, 2025

This topic describes the input and output parameters of the Wan Keyframe-to-video model.

Model overview

Wan Keyframe-to-video generates smooth and dynamic videos based on the first and last frame images along with a text prompt. It features strong instruction-following capabilities, supports complex movements and realistic physics, and produces videos with rich artistic styles and cinematic visual quality.

You can experience it on the Wan official website.

Note

The features on the official website may differ from the capabilities supported by the API. For specific capabilities, refer to those listed in this topic. This topic will be updated promptly when new features are added.

Performance showcase

Sample input

Output video

First frame

Last frame

Prompt

first_frame

last_frame

Realistic style, a black kitten curiously looking at the sky, the camera gradually rises from eye level, finally looking down at the kitten's curious eyes.

Model introduction

Name

Unit price

Rate limits (shared between Alibaba Cloud account and RAM users)

Free quota

Requests per second (RPS) for task submission

Number of concurrent tasks

wan2.1-kf2v-plus

$0.10/second

2

2

Free quota: 200 seconds

Valid for 180 days after activation

Learn more about Billing and rate limiting.

Prerequisites

The Keyframe-to-video API supports both HTTP calls and DashScope SDK.

Before you make a call, you must first obtain an API key and set the API key as an environment variable.

If you need to use SDK, you must install the SDK for Python or Java.

HTTP

The video generation model processing takes a relatively long time. To avoid request timeouts, HTTP calls only support asynchronous retrieval of model results. You need to make two requests:

  1. Create task: Send a request to create a task, which will return a task ID.

  2. Query results using the ID: Use the task ID to query the task status and results. If successful, a video URL will be returned, which is valid for 24 hours.

Note

After you create a task, it will be added to a queue. Later, call the query interface to get the task status and results based on the task ID.

Keyframe-to-video generation takes a relatively long time, and the plus model takes 7-10 minutes. The actual time depends on the number of queued tasks and network conditions.

Step 1: Create task

POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis

Request parameters

Keyframe-to-video

curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis' \
    -H 'X-DashScope-Async: enable' \
    -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '{
    "model": "wan2.1-kf2v-plus",
    "input": {
        "first_frame_url": "https://wanx.alicdn.com/material/20250318/first_frame.png",
        "last_frame_url": "https://wanx.alicdn.com/material/20250318/last_frame.png",
        "prompt": "Realistic style, a black kitten curiously looking at the sky, the camera gradually rises from eye level, finally looking down at the kitten's curious eyes."
    },
    "parameters": {
        "resolution": "720P",
        "prompt_extend": true
    }
}'
Headers

Content-Type string (Required)

The type of the request content. This parameter must be set to application/json.

Authorization string (Required)

The identity authentication for the request, which is the Model Studio API key. Example: Bearer d1xxx2a.

X-DashScope-Async string (Required)

The asynchronous processing parameter. HTTP requests only support asynchronous mode, so this parameter must be set to enable.

Request body

model string (Required)

The model name. Example value: wan2.1-kf2v-plus.

input object (Required)

Basic input information, such as prompts.

Properties

prompt string (Optional)

The text prompt. Supports Chinese and English, with a maximum length of 800 characters. Each Chinese character or letter counts as one character. Content exceeding this limit will be truncated.

If the subject and scene change significantly between the first and last frames, you should describe the transition process. For example, camera movement (camera moves to the left) or subject movement (person runs forward).

Example value: A black kitten curiously looking at the sky, the camera gradually rises from eye level, finally looking down at the kitten's curious eyes.

For tips, see Text-to-video/image-to-video prompt guide.

first_frame_url string (Required)

The URL of the first frame image.

The URL must be publicly accessible and support HTTP or HTTPS protocols.

Image restrictions:

  • Image formats: JPEG, JPG, PNG (alpha channel not supported), BMP, WEBP.

  • Resolution: The width and height must be within [360, 2000] pixels.

  • File size: Not exceeding 10MB.

last_frame_url string (Required)

The URL of the last frame image.

The URL must be publicly accessible and support HTTP or HTTPS protocols.

Image restrictions:

  • Image formats: JPEG, JPG, PNG (alpha channel not supported), BMP, WEBP.

  • Resolution: The width and height must be within [360, 2000] pixels.

  • File size: Not exceeding 10MB.

parameters object (Optional)

The video processing parameters.

Properties

resolution string (Optional)

The resolution level of the generated video. Default value: 720P. Currently, only 720P is supported.

  • 720P: Video resolution of 1280×720 (approximately 920,000 pixels), with an aspect ratio of 16:9.

The model maintains the aspect ratio of the input image in the output video. While keeping the aspect ratio unchanged, the resolution parameter allows you to adjust the output video resolution to approximately match the total pixels of the specified level.

Example: If the aspect ratio of the input images is 4:3 and the video resolution level is 720P, the output video will maintain a 4:3 aspect ratio, and the resolution will be adjusted to approximately 920,000 pixels. The output video resolution might be 1024×960, totaling 983,000 pixels (this is for reference only, the actual output may vary).

duration integer (Optional)

The duration of the generated video. Default value: 5, in seconds. Currently, fixed as 5.

prompt_extend bool (Optional)

Specifies whether to enable intelligent prompt rewriting. When enabled, an LLM will rewrite the input prompt. This significantly improves generation results for shorter prompts but increases processing time.

  • true (default)

  • false

seed integer (Optional)

The random seed, used to control the randomness of model-generated content. The value range is [0, 2147483647].

If not provided, the algorithm automatically generates a random seed. If you want the generated content to remain relatively stable, you can use the same seed.

Response parameters

Successful response

{
    "output": {
        "task_status": "PENDING",
        "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
    },
    "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}

Error response

{
    "code":"InvalidApiKey",
    "message":"Invalid API-key provided.",
    "request_id":"fb53c4ec-1c12-4fc4-a580-xxxxxx"
}

output object

The task output information.

Properties

task_id string

The task ID.

task_status string

The task status.

Valid values

  • PENDING

  • RUNNING

  • SUCCEEDED

  • FAILED

  • CANCELED

  • UNKNOWN

request_id string

The request ID. It can be used for tracing and troubleshooting.

code string

The error code for a failed request. This parameter is not returned when the request is successful.

message string

The error message for a failed request. This parameter is not returned when the request is successful.

Step 2: Query results by task ID

GET https://dashscope-intl.aliyuncs.com/api/v1/tasks/{task_id}

Request parameters

Query task results

Replace 86ecf553-d340-4e21-xxxxxxxxx with the actual task_id.

curl -X GET \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
https://dashscope-intl.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx
Headers

Authorization string (Required)

The identity authentication for the request, which is the Model Studio API key. Example: Bearer d1xxx2a.

Path parameters

task_id string (Required)

The task ID.

Response parameters

Task succeeded

Task data (such as task status and video URL) will be automatically deleted after 24 hours. Save the generated videos promptly.

{
    "request_id": "ec016349-6b14-9ad6-8009-xxxxxx",
    "output": {
        "task_id": "3f21a745-9f4b-4588-b643-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2025-04-18 10:36:58.394",
        "scheduled_time": "2025-04-18 10:37:13.802",
        "end_time": "2025-04-18 10:45:23.004",
        "video_url": "https://dashscope-result-wlcb.oss-cn-wulanchabu.aliyuncs.com/xxx.mp4?xxxxx",
        "orig_prompt": "Realistic style, a black kitten curiously looking at the sky, the camera gradually rises from eye level, finally looking down at the kitten's curious eyes.",
        "actual_prompt": "Realistic style, a black kitten curiously looking at the sky, the camera gradually rises from eye level, finally looking down at the kitten's curious eyes. The kitten's yellow eyes are bright and alert, its fur is smooth, and its whiskers are clearly visible. The background is a simple light-colored wall, highlighting the black silhouette of the kitten. Close-up shot, emphasizing the kitten's changing expressions and eye details."
    },
    "usage": {
        "video_duration": 5,
        "video_ratio": "standard",
        "video_count": 1
    }
}

Task failed

If the task fails for some reason, the task status will be set to FAILED, and the code and message fields will show the reason.

{
    "request_id": "e5d70b02-ebd3-98ce-9fe8-759d7d7b107d",
    "output": {
        "task_id": "86ecf553-d340-4e21-af6e-a0c6a421c010",
        "task_status": "FAILED",
        "code": "InvalidParameter",
        "message": "The size is not match xxxxxx"
    }
}

output object

The task output information.

Properties

task_id string

The task ID.

task_status string

The task status.

Valid values

  • PENDING

  • RUNNING

  • SUCCEEDED

  • FAILED

  • CANCELED

  • UNKNOWN

submit_time string

The time when the task was submitted.

scheduled_time string

The execution duration of the task.

end_time string

The time when the task was completed.

video_url string

The video URL. Use it to download the video. The URL is valid for 24 hours.

orig_prompt string

The original input prompt.

actual_prompt string

The actual prompt used after prompt rewriting. This field is returned only if prompt rewriting is enabled.

code string

The error code for a failed request. This parameter is not returned when the request is successful.

message string

The error message for a failed request. This parameter is not returned when the request is successful.

usage object

The output statistics. It only counts successful results.

Properties

video_duration integer

The duration of the generated video, in seconds.

video_count integer

The number of generated videos. Fixed at 1.

video_ratio string

The aspect ratio of the generated video. Fixed as standard.

request_id string

The request ID. It can be used for tracing and troubleshooting.

DashScope SDK

Make sure you have installed the latest version of the DashScope SDK, otherwise you may encounter errors.

DashScope SDK currently supports Python and Java.

The parameter names in the SDK are basically the same as the HTTP interface. The parameter structure depends on the SDK encapsulation of different languages. For parameter descriptions, refer to HTTP.

Because video model processing takes a long time, the underlying service uses an asynchronous approach. The SDK provides encapsulation at the upper layer and supports both synchronous and asynchronous calling methods.

Keyframe-to-video generation takes a relatively long time, and the plus model takes 7-10 minutes. The actual time depends on the number of queued tasks and network conditions.

Python SDK

When processing image files using the Python SDK, you can provide either a public URL or a local file path. Choose one of the following two methods.

  1. Public URL: The URL must be publicly accessible and support HTTP or HTTPS protocol.

  2. Local file path: You can provide either the absolute path or the relative path of the file, see the following table:

Operating system

File path format

Example (absolute)

Example (relative)

Linux or macOS

file://{absolute or relative path of the file}

file:///home/images/test.png

file://./images/test.png

Windows

file://D:/images/test.png

file://./images/test.png

Synchronous calls

Sample request
import os
from http import HTTPStatus
# dashscope sdk >= 1.23.4
from dashscope import VideoSynthesis
import dashscope

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

# Get the DashScope API Key (Alibaba Cloud Model Studio API key) from environment variables
api_key = os.getenv("DASHSCOPE_API_KEY")

# ========== Image input methods (choose one) ==========
# [Method 1] Use public image URLs
first_frame_url = "https://wanx.alicdn.com/material/20250318/first_frame.png"
last_frame_url = "https://wanx.alicdn.com/material/20250318/last_frame.png"

# [Method 2] Use local file paths (file://+file path)
# Using absolute paths
# first_frame_url = "file://" + "/path/to/your/first_frame.png"  # Linux/macOS
# last_frame_url = "file://" + "C:/path/to/your/last_frame.png"  # Windows
# Or using relative paths
# first_frame_url = "file://" + "./first_frame.png"              # Use actual path
# last_frame_url = "file://" + "./last_frame.png"                # Use actual path

def sample_sync_call_kf2v():
    print('please wait...')
    rsp = VideoSynthesis.call(api_key=api_key,
                              model="wan2.1-kf2v-plus",
                              prompt="Realistic style, a black kitten curiously looking at the sky, the camera gradually rises from eye level, finally looking down at the kitten's curious eyes.",
                              first_frame_url=first_frame_url,
                              last_frame_url=last_frame_url,
                              resolution="720P",
                              prompt_extend=True)
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print(rsp.output.video_url)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))


if __name__ == '__main__':
    sample_sync_call_kf2v()
Sample response
The video_url is valid for 24 hours. Download the video promptly.
{
    "status_code": 200,
    "request_id": "a37fafc3-907c-96f3-95a6-5b2a8268a3fd",
    "code": null,
    "message": "",
    "output": {
        "task_id": "4dba0092-da13-42b2-afb1-0f7b8a0f4643",
        "task_status": "SUCCEEDED",
        "video_url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.mp4?xxxxx",
        "submit_time": "2025-05-23 15:50:12.404",
        "scheduled_time": "2025-05-23 15:50:12.443",
        "end_time": "2025-05-23 15:54:56.502",
        "orig_prompt": "Realistic style, a black kitten curiously looking at the sky, the camera gradually rises from eye level, finally looking down at the kitten's curious eyes.",
        "actual_prompt": "Realistic style, a black kitten curiously looking at the sky, the camera gradually rises from eye level, finally looking down at the kitten's curious eyes. The kitten's yellow eyes are bright and alert, its ears are erect, and its whiskers are clearly visible. The background is a simple light-colored wall, highlighting the black fur and focused expression of the kitten. Close-up shot, emphasizing the changes in the kitten's gaze and posture."
    },
    "usage": {
        "video_count": 1,
        "video_duration": 5,
        "video_ratio": "standard"
    }
}

Asynchronous calls

Sample request
import os
from http import HTTPStatus
# dashscope sdk >= 1.23.4
from dashscope import VideoSynthesis
import dashscope

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

# Get the DashScope API Key (Alibaba Cloud Model Studio API key) from environment variables
api_key = os.getenv("DASHSCOPE_API_KEY")

# ========== Image input methods (choose one) ==========
# [Method 1] Use public image URLs
first_frame_url = "https://wanx.alicdn.com/material/20250318/first_frame.png"
last_frame_url = "https://wanx.alicdn.com/material/20250318/last_frame.png"

# [Method 2] Use local file paths (file://+file path)
# Using absolute paths
# first_frame_url = "file://" + "/path/to/your/first_frame.png"  # Linux/macOS
# last_frame_url = "file://" + "C:/path/to/your/last_frame.png"  # Windows
# Or using relative paths
# first_frame_url = "file://" + "./first_frame.png"              # Use actual path
# last_frame_url = "file://" + "./last_frame.png"                # Use actual path

def sample_async_call_kf2v():
    print('please wait...')
    rsp = VideoSynthesis.async_call(api_key=api_key,
                                    model="wan2.1-kf2v-plus",
                                    prompt="Realistic style, a black kitten curiously looking at the sky, the camera gradually rises from eye level, finally looking down at the kitten's curious eyes.",
                                    first_frame_url=first_frame_url,
                                    last_frame_url=last_frame_url,
                                    resolution="720P",
                                    prompt_extend=True)
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print("task_id: %s" % rsp.output.task_id)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))

    # get the task information include the task status.
    status = VideoSynthesis.fetch(rsp)
    if status.status_code == HTTPStatus.OK:
        print(status.output.task_status)  # check the task status
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (status.status_code, status.code, status.message))

    # wait the task complete, will call fetch interval, and check it's in finished status.
    rsp = VideoSynthesis.wait(rsp)
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print(rsp.output.video_url)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))


if __name__ == '__main__':
    sample_async_call_kf2v()
Sample response

1. Create task

{
    "status_code": 200,
    "request_id": "c86ff7ba-8377-917a-90ed-xxxxxx",
    "code": "",
    "message": "",
    "output": {
        "task_id": "721164c6-8619-4a35-a6d9-xxxxxx",
        "task_status": "PENDING",
        "video_url": ""
    },
    "usage": null
}

2. Query task results

The video_url is valid for 24 hours. Download the video promptly.
{
    "status_code": 200,
    "request_id": "efa545b3-f95c-9e3a-a3b6-xxxxxx",
    "code": null,
    "message": "",
    "output": {
        "task_id": "721164c6-8619-4a35-a6d9-xxxxxx",
        "task_status": "SUCCEEDED",
        "video_url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.mp4?xxxxx",
        "submit_time": "2025-02-12 11:03:30.701",
        "scheduled_time": "2025-02-12 11:06:05.378",
        "end_time": "2025-02-12 11:12:18.853",
        "orig_prompt": "Realistic style, a black kitten curiously looking at the sky, the camera gradually rises from eye level, finally looking down at the kitten's curious eyes.",
        "actual_prompt": "Realistic style, a black kitten curiously looking at the sky, the camera gradually rises from eye level, finally looking down at the kitten's curious eyes. The kitten's fur is glossy black, its eyes are large and bright with golden yellow pupils. It looks up attentively with erect ears. As the camera moves upward, the kitten turns its head to look directly at the camera, its eyes filled with curiosity and alertness. The background is simple, highlighting the kitten's detailed features. Close-up shot with soft natural lighting."
    },
    "usage": {
        "video_count": 1,
        "video_duration": 5,
        "video_ratio": "standard"
    }
}

Java SDK

When processing image files using the Java SDK, you can provide either a public URL or a local file path. Choose one of the following two methods.

  1. Public file URL: The URL must be publicly accessible and support HTTP or HTTPS protocol.

  2. Local file path: Only absolute paths are supported, see the following table.

Operating system

File path format

Example

Linux or macOS

file://{absolute path of the file}

file:///home/images/test.png

Windows

file:///{absolute path of the file}

file:///D:/images/test.png

Synchronous calls

Sample request
// Copyright (c) Alibaba, Inc. and its affiliates.

// dashscope sdk >= 2.20.1
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesis;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisParam;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;

import java.util.HashMap;
import java.util.Map;


public class Kf2vSyncIntl {

    static {
        Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
    }

    // Get the DashScope API Key (Alibaba Cloud Model Studio API Key) from environment variables
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    /**
     * Image input methods (choose one):
     *
     * [Method 1] Public URL
     */
    static String firstFrameUrl = "https://wanx.alicdn.com/material/20250318/first_frame.png";
    static String lastFrameUrl = "https://wanx.alicdn.com/material/20250318/last_frame.png";

     /**
     * [Method 2] Local file path (file://+absolute path or file:///+absolute path)
     */
    // static String firstFrameUrl = "file://" + "/your/path/to/first_frame.png";  // Linux/macOS
    // static String lastFrameUrl = "file:///" + "C:/path/to/your/img.png";        // Windows

    public static void syncCall() {

        Map parameters = new HashMap<>();
        parameters.put("prompt_extend", true);

        VideoSynthesis videoSynthesis = new VideoSynthesis();
        VideoSynthesisParam param =
                VideoSynthesisParam.builder()
                        .apiKey(apiKey)
                        .model("wan2.1-kf2v-plus")
                        .prompt("Realistic style, a black kitten curiously looking at the sky, the camera gradually rises from eye level, finally looking down at the kitten's curious eyes.")
                        .firstFrameUrl(firstFrameUrl)
                        .lastFrameUrl(lastFrameUrl)
                        .parameters(parameters)
                        .build();
        VideoSynthesisResult result = null;
        try {
            System.out.println("---sync call, please wait a moment----");
            result = videoSynthesis.call(param);
        } catch (ApiException | NoApiKeyException e){
            throw new RuntimeException(e.getMessage());
        } catch (InputRequiredException e) {
            throw new RuntimeException(e);
        }
        System.out.println(JsonUtils.toJson(result));
    }

    public static void main(String[] args) {
        syncCall();
    }
}
Sample response
The video_url is valid for 24 hours. Download the video promptly.
{
    "request_id": "e6bb4517-c073-9c10-b748-dedb8c11bb41",
    "output": {
        "task_id": "984784fe-83c1-4fc4-88c7-52c2c1fa92a2",
        "task_status": "SUCCEEDED",
        "video_url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.mp4?xxxxx"
    },
    "usage": {
        "video_count": 1,
        "video_duration": 5,
        "video_ratio": "standard"
    }
}

Asynchronous calls

Sample request
Sample response

1. Create task

// Copyright (c) Alibaba, Inc. and its affiliates.

// dashscope sdk >= 2.20.1
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesis;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisParam;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;

import java.util.HashMap;
import java.util.Map;

public class Kf2vAsyncIntl {

    static {
        Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
    }

    // Get the DashScope API Key (Alibaba Cloud Model Studio API key) from environment variables
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    /**
     * Image input methods (choose one)
     *
     * [Method 1] Public URL
     */
    static String firstFrameUrl = "https://wanx.alicdn.com/material/20250318/first_frame.png";
    static String lastFrameUrl = "https://wanx.alicdn.com/material/20250318/last_frame.png";

    /**
     * [Method 2] Local file path (file://+absolute path or file:///+absolute path)
     */
    // static String firstFrameUrl = "file://" + "/your/path/to/first_frame.png";   // Linux/macOS
    // static String lastFrameUrl = "file:///" + "C:/path/to/your/img.png";        // Windows


    public static void asyncCall(){

        // Set parameters
        Map parameters = new HashMap<>();

2. Query task results

The video_url is valid for 24 hours. Download the video promptly.
{
    "request_id": "c86ff7ba-8377-917a-90ed-xxxxxx",
    "output": {
        "task_id": "721164c6-8619-4a35-a6d9-xxxxxx",
        "task_status": "PENDING",
        "video_url": ""
    },
    "usage": null
}

Error codes

If the call failed and returned an error message, see Error messages.

Specific status codes for this API:

HTTP status code

code

message

Description

400

InvalidParameter

InvalidParameter

The request parameter is invalid.

400

IPInfringementSuspect

Input data is suspected of being involved in IP infringement.

The input data (such as prompts or images) may involve intellectual property infringement. Check your input to ensure it does not contain such content.

400

DataInspectionFailed

Input data may contain inappropriate content.

The input data (such as prompts or images) may contain sensitive content. Change your input and try again.

500

InternalError

InternalError

A service error occurs. Try again first to rule out occasional issues.

Billing and rate limiting

Free quota

  • Overview: Free quota refers to the duration of successfully generated output videos. Abnormal input content and model processing failures do not consume the free quota.

  • How to claim: You automatically get it after activating Model Studio, valid for 180 days.

  • Account usage: Alibaba Cloud account and its RAM users share the free quota.

  • Learn more about New user free quota.

Billing description

  • When a model has a clear unit price, such as $0.2/second, it has been commercialized. After the free quota is exhausted or expired, you need to pay for usage.

  • Billing item: Only successfully generated output videos are charged. Other situations are not charged.

  • Payment method: All payments are made by the Alibaba Cloud account. RAM users cannot pay independently. To check your bills, go to Billing Overview.

  • Recharge: You can recharge on the Expenses and Cost page.

  • Usage statistics: You can check model usage and call counts on the Model Observation page.

  • Learn more about Billable items.

Rate limiting

  • Overview: Alibaba Cloud account and its RAM users share the limits.

Video access

Domain whitelist: Ensure your system can access video links

Generated videos are stored in OSS, and each video is assigned an OSS link, such as https://dashscope-result-xx.oss-cn-xxxx.aliyuncs.com/xxx.mp4. OSS links allow public access. You can use this link to download the video. The link is valid for only 24 hours.

If your business has high security requirements and cannot access OSS links, you need to configure a separate whitelist for external network access Add the following domains to your whitelist to access video links.

# OSS domain list
dashscope-result-bj.oss-cn-beijing.aliyuncs.com
dashscope-result-hz.oss-cn-hangzhou.aliyuncs.com
dashscope-result-sh.oss-cn-shanghai.aliyuncs.com
dashscope-result-wlcb.oss-cn-wulanchabu.aliyuncs.com
dashscope-result-zjk.oss-cn-zhangjiakou.aliyuncs.com
dashscope-result-sz.oss-cn-shenzhen.aliyuncs.com
dashscope-result-hy.oss-cn-heyuan.aliyuncs.com
dashscope-result-cd.oss-cn-chengdu.aliyuncs.com
dashscope-result-gz.oss-cn-guangzhou.aliyuncs.com
dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com