This topic describes the input and output parameters of the Wan general image editing model.
This model is available only in the China (Beijing) region. To use this model, you must use an API key for the China (Beijing) region.
The model can perform various image editing tasks based on simple instructions. It is suitable for scenarios such as outpainting, watermark removal, style transfer, image restoration, and image enhancement. The following features are supported:
Image stylization: Global and local stylization.
Image content editing: Instruction-based editing (add or modify image content based on instructions without specifying a region), inpainting (add, delete, or modify image content in a specified region), and text and watermark removal (Chinese and English).
Image size and resolution optimization: Outpainting (extend an image based on a specified ratio) and image super-resolution (high-definition upscaling).
Image color processing: Image colorization (convert a black-and-white or grayscale image to a color image).
Generation based on a reference image: Line art to image (extracts line art from an input image to generate a new image) and cartoon character reference-based generation.
Related guide: Image editing - Wan
Model overview
Model | Unit price | Rate limit (shared by Alibaba Cloud accounts and RAM users) | |
RPS limit for task submission | Number of concurrent tasks | ||
wanx2.1-imageedit | $0.020070/image | 2 | 2 |
Performance showcase
Feature | Input image | Input prompt | Output image |
Global stylization |
| Convert to French picture book style |
|
Local stylization |
| Change the house to a wooden style. |
|
Instruction-based editing |
| Change the girl's hair to red. |
|
Inpainting | Input image
Input mask image (The white area is the mask area)
| A ceramic rabbit holding a ceramic flower. | Output image
|
Text and watermark removal |
| Remove the text from the image. |
|
Outpainting |
| A green fairy. |
|
Image super-resolution | Blurry image
| Image super-resolution. | Clear image
|
Image colorization |
| Blue background, yellow leaves. |
|
Line art to image | Input image
| A living room in a minimalist Nordic style. | Extract the line art from the original image and generate a new image
|
Generate image from cartoon character reference | Input reference image (cartoon character)
| The cartoon character cautiously peeks out, peering at a brilliant blue gem in the room. | Output image
|
Prerequisites
You can call the Wan general image editing API using HTTP and the DashScope SDK.
Before making a call, obtain an API key and set the API key as an environment variable.
To make calls using the SDK, install the DashScope SDK. The SDK is available for Python and Java.
HTTP
Image models can take a long time to process. To avoid request timeouts, HTTP calls support only asynchronous retrieval of model results. You must make two requests:
Create a task to obtain a task ID: First, send a request to create a task. This request returns a task ID (task_id).
Query the result by task ID: Use the task ID from the previous step to query the task status and result. If the task runs successfully, an image URL is returned. The URL is valid for 24 hours.
After you create a task, the task is added to a queue and waits for scheduling. You must then call the "query result by task ID" API to retrieve the task status and result.
The general image editing model requires approximately 5 to 15 seconds to process a request. The actual processing time depends on the number of tasks in the queue and the network conditions.
Step 1: Create a task and obtain a task ID
POST https://dashscope.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis
Request parameters | Global stylizationPass a local file (base64)The following example shows how to pass parameters in Base64 for global stylization. Because the Base64-encoded string is long, download image_base64 and copy the entire content as the value of the For more information about the data format, see Input methods. Local stylizationInstruction-based editingDescription: Add or modify image content based on instructions without specifying a region. InpaintingDescription: Add, delete, or modify image content in a specified region. Text and watermark removalDescription: This feature supports removing text and watermarks in Chinese and English. OutpaintingDescription: This feature supports outpainting in the up, down, left, and right directions based on a specified ratio. Image super-resolutionDescription: This feature supports high-definition upscaling of blurry images. Image colorizationDescription: Convert a black-and-white or grayscale image to a color image. Line art to imageDescription: Extracts line art from the input image and generates a new image based on the extracted art. Generate image from cartoon character referenceDescription: This feature supports generating an image based on a cartoon character reference. |
Request headers | |
Content-Type The content type of the request. Set this parameter to | |
Authorization The identity authentication credentials for the request. This API uses an Model Studio API key for identity authentication. Example: Bearer sk-xxxx. | |
X-DashScope-Async The asynchronous processing configuration parameter. HTTP requests support only asynchronous processing. You must set this parameter to Important If this request header is missing, the error message "current user api does not support synchronous calls" is returned. | |
Request body | |
model The model name. Example: wanx2.1-imageedit. | |
input The basic input information, such as the prompt. | |
parameters The image editing parameters. |
Response parameters | Successful responseSave the task_id to query the task status and result. Error responseThe task creation failed. For more information, see Error messages to resolve the issue. |
output The output information of the task. | |
request_id The unique request ID. You can use this ID to trace and troubleshoot issues. | |
code The error code for a failed request. This parameter is not returned if the request is successful. For more information, see Error messages. | |
message The detailed information about a failed request. This parameter is not returned if the request is successful. For more information, see Error messages. |
Step 2: Query the result by task ID
GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
Request parameters | Query task resultReplace The API keys for the Singapore and Beijing regions are different. Obtain an API key. The following code provides the base_url for the Singapore region. If you use a model in the Beijing region, replace the base_url with https://dashscope.aliyuncs.com/api/v1/tasks/{task_id} |
Request headers | |
Authorization The identity authentication credentials for the request. This API uses an Model Studio API key for identity authentication. Example: Bearer sk-xxxx. | |
Path parameters | |
task_id The task ID. |
Response parameters | Successful task executionTask data, such as the task status and image URLs, is retained for only 24 hours and is automatically purged after this period. You must save the generated images promptly. Failed task executionIf a task fails, task_status is set to FAILED, and an error code and message are provided. For more information, see Error messages to resolve the issue. Partially failed taskThe model can generate multiple images in a single task. If at least one image is generated successfully, the task status is marked as |
output The output information of the task. | |
usage The usage statistics for the request. Only successfully generated images are counted. | |
request_id The unique request ID. You can use this ID to trace and troubleshoot issues. |
DashScope SDK
Make sure that you have installed the latest version of DashScope SDK. Otherwise, an error may occur.
The DashScope SDK is available in Python and Java.
The parameter names in the SDK are mostly the same as those in the HTTP API. The parameter structure is specific to the SDK encapsulation for each language. For more information about the parameters, see HTTP call.
Because image models require a long processing time, the underlying service is asynchronous. The SDK provides an encapsulation layer that supports both synchronous and asynchronous calls.
The general image editing model requires approximately 5 to 15 seconds to process a request. The actual processing time depends on the number of tasks in the queue and the network conditions.
Python SDK
When you use the Python SDK to process image files, you can use one of the following three methods to input an image. Select the method that best fits your scenario.
Public URL: A publicly accessible image URL that uses the HTTP or HTTPS protocol.
Base64 encoding: The Base64-encoded file string in the format of
data:{MIME_type};base64,{base64_data}.Local file path: Supports both absolute and relative paths. For information about how to provide the correct file path, see the following table.
System | File path to be provided | Example (absolute path) | Example (relative path) |
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 |
Sample code
Before you call the code, ensure that you have installed the DashScope Python SDK. We recommend that you upgrade to the latest version by running pip install -U dashscope. For more information, see Install the SDK.
Synchronous call
This example shows how to make a synchronous call and supports three image input methods: public URL, Base64 encoding, and local file path.
Sample request
import base64
import os
from http import HTTPStatus
from dashscope import ImageSynthesis
import mimetypes
"""
Environment requirements:
dashscope python SDK >= 1.23.8
Install/Upgrade the SDK:
pip install -U dashscope
"""
# If you have not configured environment variables, replace the following line with your Model Studio API key: api_key="sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY")
# --- Helper function: for Base64 encoding ---
# Format: data:{MIME_type};base64,{base64_data}
def encode_file(file_path):
mime_type, _ = mimetypes.guess_type(file_path)
if not mime_type or not mime_type.startswith("image/"):
raise ValueError("Unsupported or unrecognizable image format")
with open(file_path, "rb") as image_file:
encoded_string = base64.b64encode(image_file.read()).decode('utf-8')
return f"data:{mime_type};base64,{encoded_string}"
"""
Description of image input methods:
The following three image input methods are provided. You can choose one of them.
1. Use a public URL - suitable for publicly accessible images.
2. Use a local file - suitable for local development and testing.
3. Use Base64 encoding - suitable for private images or scenarios that require encrypted transmission.
"""
# [Method 1] Use a public image URL
mask_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png"
base_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg"
# [Method 2] Use a local file (absolute and relative paths are supported)
# Format requirement: file:// + file path
# Example (absolute path):
# mask_image_url = "file://" + "/path/to/your/mask_image.png" # Linux/macOS
# base_image_url = "file://" + "C:/path/to/your/base_image.jpeg" # Windows
# Example (relative path):
# mask_image_url = "file://" + "./mask_image.png" # Subject to the actual path
# base_image_url = "file://" + "./base_image.jpeg" # Subject to the actual path
# [Method 3] Use a Base64-encoded image
# mask_image_url = encode_file("./mask_image.png") # Subject to the actual path
# base_image_url = encode_file("./base_image.jpeg") # Subject to the actual path
def sample_sync_call_imageedit():
print('please wait...')
rsp = ImageSynthesis.call(api_key=api_key,
model="wanx2.1-imageedit",
function="description_edit_with_mask",
prompt="A ceramic rabbit holding a ceramic flower",
mask_image_url=mask_image_url,
base_image_url=base_image_url,
n=1)
assert rsp.status_code == HTTPStatus.OK
print('response: %s' % rsp)
if rsp.status_code == HTTPStatus.OK:
for result in rsp.output.results:
print("---------------------------")
print(result.url)
else:
print('sync_call Failed, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
if __name__ == '__main__':
sample_sync_call_imageedit()Sample response
The URL is valid for 24 hours. Download the image promptly.
{
"status_code": 200,
"request_id": "dc41682c-4e4a-9010-bc6f-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "6e319d88-a07a-420c-9493-xxxxxx",
"task_status": "SUCCEEDED",
"results": [
{
"url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.png?xxxxxx"
}
],
"submit_time": "2025-05-26 14:58:27.320",
"scheduled_time": "2025-05-26 14:58:27.339",
"end_time": "2025-05-26 14:58:39.170",
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"image_count": 1
}
}Asynchronous invocation
This example shows only how to make an asynchronous call.
Sample request
import os
from http import HTTPStatus
from dashscope import ImageSynthesis
"""
Environment requirements:
dashscope python SDK >= 1.23.4
Install/Upgrade the SDK:
pip install -U dashscope
"""
# If you have not configured environment variables, replace the following line with your Model Studio API key: api_key="sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY")
# Use a public image URL
mask_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png"
base_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg"
def sample_async_call_imageedit():
# Asynchronous call, returns a task_id
rsp = ImageSynthesis.async_call(api_key=api_key,
model="wanx2.1-imageedit",
function="description_edit_with_mask",
prompt="A ceramic rabbit holding a ceramic flower",
mask_image_url=mask_image_url,
base_image_url=base_image_url,
n=1)
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))
# Obtain asynchronous task information
status = ImageSynthesis.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 for the asynchronous task to finish
rsp = ImageSynthesis.wait(rsp)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print(rsp.output)
for result in rsp.output.results:
print("---------------------------")
print(result.url)
else:
print('Failed, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
if __name__ == '__main__':
sample_async_call_imageedit()
Sample response
1. Example response for creating a task
{
"status_code": 200,
"request_id": "6dc3bf6c-be18-9268-9c27-xxxxxx",
"code": "",
"message": "",
"output": {
"task_id": "686391d9-7ecf-4290-a8e9-xxxxxx",
"task_status": "PENDING",
"video_url": ""
},
"usage": null
}2. Example response for querying a task result
The URL is valid for 24 hours. Download the image promptly.
{
"status_code": 200,
"request_id": "dc41682c-4e4a-9010-bc6f-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "6e319d88-a07a-420c-9493-xxxxxx",
"task_status": "SUCCEEDED",
"results": [
{
"url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.png?Expires=17xxxxxx"
}
],
"submit_time": "2025-05-26 14:58:27.320",
"scheduled_time": "2025-05-26 14:58:27.339",
"end_time": "2025-05-26 14:58:39.170",
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"image_count": 1
}
}Java SDK
When you use the Java SDK to process image files, you can use one of the following three methods to input an image. Select the method that best fits your scenario.
Public URL: A publicly accessible image URL that uses the HTTP or HTTPS protocol.
Base64 encoding: The Base64-encoded file string in the format of
data:{MIME_type};base64,{base64_data}.Local file path: Only absolute paths are supported. For information about how to provide the correct file path, see the following table.
System | File path to be provided | 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 |
Sample code
Before you call the code, ensure that you have installed the DashScope Java SDK. We recommend that you upgrade to the latest version. For more information, see Install the SDK.
Synchronous call
This example shows how to make a synchronous call and supports three image input methods: public URL, Base64 encoding, and local file path.
Sample request
// Copyright (c) Alibaba, Inc. and its affiliates.
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisParam;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
/**
* Environment requirements
* dashscope java SDK >=2.20.9
* Update Maven dependencies:
* https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java
*/
public class ImageEditSync {
// If you have not configured environment variables, replace the following line with your Model Studio API key: apiKey="sk-xxx"
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
/**
* Description of image input methods: Select one of the three methods
*
* 1. Use a public URL - suitable for publicly accessible images.
* 2. Use a local file - suitable for local development and testing.
* 3. Use Base64 encoding - suitable for private images or scenarios that require encrypted transmission.
*/
//[Method 1] Public URL
static String maskImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png";
static String baseImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg";
//[Method 2] Local file path (file://+absolute path or file:///+absolute path)
// static String maskImageUrl = "file://" + "/your/path/to/mask_image.png"; // Linux/macOS
// static String baseImageUrl = "file:///" + "C:/your/path/to/base_image.png"; // Windows
//[Method 3] Base64 encoding
// static String maskImageUrl = encodeFile("/your/path/to/mask_image.png");
// static String baseImageUrl = encodeFile("/your/path/to/base_image.png");
public static void syncCall() {
// Set the parameters parameter
Map<String, Object> parameters = new HashMap<>();
parameters.put("prompt_extend", true);
ImageSynthesisParam param =
ImageSynthesisParam.builder()
.apiKey(apiKey)
.model("wanx2.1-imageedit")
.function(ImageSynthesis.ImageEditFunction.DESCRIPTION_EDIT_WITH_MASK)
.prompt("A ceramic rabbit holding a ceramic flower")
.maskImageUrl(maskImageUrl)
.baseImageUrl(baseImageUrl)
.n(1)
.size("1024*1024")
.parameters(parameters)
.build();
ImageSynthesis imageSynthesis = new ImageSynthesis();
ImageSynthesisResult result = null;
try {
System.out.println("---sync call, please wait a moment----");
result = imageSynthesis.call(param);
} catch (ApiException | NoApiKeyException e){
throw new RuntimeException(e.getMessage());
}
System.out.println(JsonUtils.toJson(result));
}
/**
* Encode a file into a Base64 string
* @param filePath File path
* @return Base64 string in the format of data:{MIME_type};base64,{base64_data}
*/
public static String encodeFile(String filePath) {
Path path = Paths.get(filePath);
if (!Files.exists(path)) {
throw new IllegalArgumentException("File does not exist: " + filePath);
}
// Detect the MIME type
String mimeType = null;
try {
mimeType = Files.probeContentType(path);
} catch (IOException e) {
throw new IllegalArgumentException("Cannot detect the file type: " + filePath);
}
if (mimeType == null || !mimeType.startsWith("image/")) {
throw new IllegalArgumentException("Unsupported or unrecognizable image format");
}
// Read the file content and encode it
byte[] fileBytes = null;
try{
fileBytes = Files.readAllBytes(path);
} catch (IOException e) {
throw new IllegalArgumentException("Cannot read the file content: " + filePath);
}
String encodedString = Base64.getEncoder().encodeToString(fileBytes);
return "data:" + mimeType + ";base64," + encodedString;
}
public static void main(String[] args) {
syncCall();
}
}
Sample response
The URL is valid for 24 hours. Download the image promptly.
{
"request_id": "bf6c6361-f0fc-949c-9d60-xxxxxx",
"output": {
"task_id": "958db858-153b-4c81-b243-xxxxxx",
"task_status": "SUCCEEDED",
"results": [
{
"url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.png?xxxxxx"
}
],
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"image_count": 1
}
}Asynchronous invocation
This example shows only how to make an asynchronous call.
Sample request
// Copyright (c) Alibaba, Inc. and its affiliates.
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisListResult;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisParam;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.task.AsyncTaskListParam;
import com.alibaba.dashscope.utils.JsonUtils;
import java.util.HashMap;
import java.util.Map;
/**
* Environment requirements
* dashscope java SDK >= 2.20.1
* Update Maven dependencies:
* https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java
*/
public class ImageEditAsync {
// If you have not configured environment variables, replace the following line with your Model Studio API key: apiKey="sk-xxx"
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
//[Method 1] Public URL
static String maskImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png";
static String baseImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg";
public static void asyncCall() {
// Set the parameters parameter
Map<String, Object> parameters = new HashMap<>();
parameters.put("prompt_extend", true);
ImageSynthesisParam param =
ImageSynthesisParam.builder()
.apiKey(apiKey)
.model("wanx2.1-imageedit")
.function(ImageSynthesis.ImageEditFunction.DESCRIPTION_EDIT_WITH_MASK)
.prompt("A ceramic rabbit holding a ceramic flower")
.maskImageUrl(maskImageUrl)
.baseImageUrl(baseImageUrl)
.n(1)
.size("1024*1024")
.parameters(parameters)
.build();
ImageSynthesis imageSynthesis = new ImageSynthesis();
ImageSynthesisResult result = null;
try {
System.out.println("---async call, please wait a moment----");
result = imageSynthesis.asyncCall(param);
} catch (ApiException | NoApiKeyException e){
throw new RuntimeException(e.getMessage());
}
System.out.println(JsonUtils.toJson(result));
String taskId = result.getOutput().getTaskId();
System.out.println("taskId=" + taskId);
try {
result = imageSynthesis.wait(taskId, apiKey);
} catch (ApiException | NoApiKeyException e){
throw new RuntimeException(e.getMessage());
}
System.out.println(JsonUtils.toJson(result));
System.out.println(JsonUtils.toJson(result.getOutput()));
}
public static void listTask() throws ApiException, NoApiKeyException {
ImageSynthesis is = new ImageSynthesis();
AsyncTaskListParam param = AsyncTaskListParam.builder().build();
ImageSynthesisListResult result = is.list(param);
System.out.println(result);
}
public void fetchTask(String taskId) throws ApiException, NoApiKeyException {
ImageSynthesis is = new ImageSynthesis();
// If DASHSCOPE_API_KEY is set as an environment variable, apiKey can be empty.
ImageSynthesisResult result = is.fetch(taskId, null);
System.out.println(result.getOutput());
System.out.println(result.getUsage());
}
public static void main(String[] args) {
asyncCall();
}
}Sample response
1. Example response for creating a task
{
"request_id": "5dbf9dc5-4f4c-9605-85ea-xxxxxxxx",
"output": {
"task_id": "7277e20e-aa01-4709-xxxxxxxx",
"task_status": "PENDING"
}
}2. Example response for querying a task result
The video_url expires in 24 hours. Please download the video promptly.
{
"request_id": "3d740fc4-a968-9c36-b0e7-xxxxxxxx",
"output": {
"task_id": "34dcf4b0-ed84-441e-91cb-xxxxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-result-hz.oss-cn-hangzhou.aliyuncs.com/aaaa.mp4"
},
"usage": {
"video_count": 1,
"video_duration": 5,
"video_ratio": "standard"
}
}Error codes
If a call fails, see Error messages for troubleshooting.
This API also returns the following specific error codes.
HTTP status code | code (API error code) | API error message (message) | Description |
400 | InvalidParameter | InvalidParameter | The request parameters are invalid. |
400 | IPInfringementSuspect | Input data is suspected of being involved in IP infringement. | The input data (such as the prompt or image) is suspected of intellectual property infringement. Check the input to make sure that it does not contain content that may cause infringement risks. |
400 | DataInspectionFailed | Input data may contain inappropriate content. | The input data (such as the prompt or image) may contain inappropriate content. Modify the input and try again. |
500 | InternalError | InternalError | A service error occurred. Try again to rule out accidental occurrences. |
Input image description
Pass by value
The input image can be provided in multiple string formats. The following table describes the supported formats for each call method.
Method | HTTP | Python SDK | Java SDK |
Supported input image methods |
|
|
|
Method 1: Use a public URL
Provide a publicly accessible image URL. Both HTTP and HTTPS are supported.
Example:
https://xxxx/img.png.
Method 2: Use Base64 encoding
Convert a local image file to a Base64-encoded string and provide it in the format of data:{MIME_type};base64,{base64_data}.
For the conversion code, see Sample code.
{MIME_type}: The media type of the image. This must correspond to the file format.
{base64_data}: The Base64-encoded image data.
MIME type mapping:
Image format
MIME type
JPEG
image/jpeg
JPG
image/jpeg
PNG
image/png
BMP
image/bmp
TIFF
image/tiff
WEBP
image/webp
Example:
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDg......".Note: The preceding Base64 string is truncated for demonstration purposes. In practice, you must pass the complete encoded string.
Method 3: Use a local file path
HTTP calls do not support local file paths. This method is supported only by the Python and Java SDKs.
For more information about the rules for passing local file paths, see Python SDK and Java SDK.
Image access configuration
Configure a domain name whitelist: Ensure your business system can access image links
Generated images are stored in Alibaba Cloud OSS. Each image is assigned an OSS link, such as https://dashscope-result-xx.oss-cn-xxxx.aliyuncs.com/xxx.png. OSS links allow public access, and you can use them to view or download the image. The link is valid for only 24 hours.
If your business has high security requirements and cannot access Alibaba Cloud OSS links, you must configure a whitelist for public access. Add the following domain names to your whitelist to access the image links.
# OSS domain name 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.comFAQ
For general questions about image models, see the FAQ document. This document covers topics such as model billing, request limits, and solutions to common API errors.




















