Le modèle wan2.5 d'édition d'image générale de Wanxiang permet de modifier et de fusionner des images à partir d'instructions textuelles uniquement, tout en préservant la cohérence du sujet entre les modifications.
Démarrage rapide : Guide utilisateur
ImportantAlibaba Cloud Model Studio a publié des domaines spécifiques aux espaces de travail pour les régions Chine (Pékin) et Singapour. Ces nouveaux domaines dédiés offrent des performances supérieures et une stabilité accrue pour les requêtes d'inférence. Nous vous recommandons de migrer vers ces nouveaux domaines :
- Chine (Pékin) : de
https://dashscope.aliyuncs.comvershttps://{WorkspaceId}.cn-beijing.maas.aliyuncs.com - Singapour : de
https://dashscope-intl.aliyuncs.comvershttps://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
{WorkspaceId} correspond à votre ID d'espace de travail, disponible sur la page Workspace Details dans la console Alibaba Cloud Model Studio. Le domaine existant reste pleinement fonctionnel.
Présentation du modèle
Capacités du modèle | Exemple d'entrée | Image générée |
|---|---|---|
Édition d'une seule image |
|
Remplacez la robe fleurie par une robe en dentelle de style vintage avec des broderies délicates au col et aux poignets. |
Fusion multi-images |
|
Placez le réveil de l'image 1 à côté du vase sur la table à manger de l'image 2. |
| Nom du modèle | Description du modèle | Spécifications de l'image générée |
|---|---|---|
wan2.5-i2i-preview | Aperçu Wanxiang 2.5 Prend en charge l'édition d'une seule image et la fusion multi-images | Format d'image : PNG. Résolution d'image :
|
RemarqueAvant d'appeler l'API, consultez les modèles pris en charge et tarifs applicables à votre région.
Prérequis
Avant d'effectuer un appel, obtenez une clé API et exportez-la comme variable d'environnement. Pour utiliser le SDK, installez le SDK DashScope.
ImportantLes régions Chine (Pékin) et Singapour disposent de clés API et d'endpoints de requête distincts. Elles ne sont pas interchangeables. Les appels interrégions entraînent des échecs d'authentification ou des erreurs de service.
Appel via l'API HTTP
L'édition d'image prend 1 à 2 minutes ; l'API utilise donc une invocation asynchrone : Création de tâche → Interrogation du résultat.
La durée réelle d'exécution varie selon la longueur de la file d'attente et la charge du service.
Étape 1 : Créer une tâche et obtenir l'ID de tâche
Région Singapour : POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis
Région Pékin : POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis
Remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Remarque
- Une fois la tâche créée, utilisez le
task_idretourné pour interroger le résultat. Cetask_idreste valide pendant 24 heures. Ne créez pas de tâches en double. Utilisez plutôt l'interrogation pour récupérer le résultat. - Pour un guide destiné aux débutants, reportez-vous à Appeler des API avec Postman ou cURL.
Paramètres de requête | |
En-têtes de requête | |
Content-Type The content type of the request. Must be | |
Authorization Authenticates the request with a Model Studio API key. Example: Bearer sk-xxxx. | |
X-DashScope-Async Enables asynchronous processing. HTTP requests support only asynchronous calls. Must be ImportantIf this request header is missing, the error "current user api does not support synchronous calls" is returned. | |
Corps de la requête | |
model Nom du modèle. Modèles pris en charge et tarifs. Valeur d'exemple : wan2.5-i2i-preview. | |
input Champs d'entrée tels que le prompt et les images. | |
parameters Contrôle la résolution, la réécriture du prompt et le filigrane. |
Paramètres de réponse | Réponse réussieConservez le Réponse d'erreurÉchec de la création de la tâche. Consultez Codes d'erreur. |
output Informations de sortie de la tâche. | |
request_id Identifiant unique de requête pour le suivi et le dépannage. | |
code Code d'erreur. Retourné uniquement pour les requêtes ayant échoué. Consultez Codes d'erreur. | |
message Message d'erreur détaillé. Retourné uniquement pour les requêtes ayant échoué. Consultez Codes d'erreur. |
Étape 2 : Interroger les résultats à l'aide de l'ID de tâche
China (Beijing)
GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Singapore
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Singapore
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
China (Beijing)
GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}
Lors de l'appel, remplacez {WorkspaceId} par votre véritable ID d'espace de travail.
Remarque
- Recommandation d'interrogation : la génération d'image prend du temps. Mettez en place un mécanisme d'interrogation avec un intervalle raisonnable, par exemple 10 secondes.
- Transition d'état de la tâche : PENDING → RUNNING → SUCCEEDED ou FAILED.
- Lien de résultat : après la réussite d'une tâche, une URL d'image valide pendant 24 heures est retournée. Téléchargez et enregistrez l'image dans un stockage permanent, tel que OSS.
Paramètres de requête | Interroger le résultat de la tâcheRemplacez
|
En-têtes de requête | |
Authorization Authenticates the request with a Model Studio API key. Example: Bearer sk-xxxx. | |
Paramètre de chemin URL | |
task_id ID de la tâche. |
Paramètres de réponse | Tâche réussieLes URL d'images ne sont valides que pendant 24 heures, puis elles sont automatiquement supprimées. Enregistrez rapidement les images générées. Échec de la tâcheLorsqu'une tâche échoue, Échec partielLe modèle peut générer plusieurs images par tâche. Si au moins une image réussit, l'état de la tâche passe à Expiration de l'interrogation de tâcheLe |
output Informations de sortie de la tâche. | |
usage Statistiques d'utilisation. Ne comptabilise que les résultats réussis. | |
request_id Identifiant unique de requête pour le suivi et le dépannage. |
Appel via le SDK DashScope
Les paramètres du SDK correspondent à ceux de l'appel via l'API HTTP, adaptés à chaque langage.
L'édition d'image prend 30 à 60 secondes. Le SDK encapsule le flux HTTP asynchrone et prend en charge les appels synchrones et asynchrones.
La durée réelle d'exécution varie selon la longueur de la file d'attente et la charge du service.
Appel via le SDK Python
Important
Assurez-vous que votre version du SDK Python DashScope est au moins1.25.2.Les versions antérieures peuvent déclencher des erreurs telles que « url error, please check url! ». Effectuez une mise à jour en suivant la procédure Installer ou mettre à niveau le SDK.
Appel synchrone
Exemple de requête
Cet exemple prend en charge trois méthodes d'entrée d'image : URL publique, encodage Base64 et chemin de fichier local.
import base64
import mimetypes
from http import HTTPStatus
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import dashscope
import requests
from dashscope import ImageSynthesis
import os
# The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs differ by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# If you have not configured an environment variable, replace the next line with: api_key="sk-xxx"
# API keys differ between Singapore and Beijing. Get an API key: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
# --- Input image: Base64 encoding ---
# Base64 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 unrecognized 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}"
"""
Image input methods:
Choose one of the following:
1. Public URL — best for publicly accessible images
2. Local file — best for local development and testing
3. Base64 encoding — best for private images or secure transmission
"""
# [Method 1] Public image URL
image_url_1 = "https://img.alicdn.com/imgextra/i3/O1CN0157XGE51l6iL9441yX_!!6000000004770-49-tps-1104-1472.webp"
image_url_2 = "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp"
# [Method 2] Local file (supports absolute and relative paths)
# Format: file:// + file path
# Example (absolute path):
# image_url_1 = "file://" + "/path/to/your/image_1.png" # Linux/macOS
# image_url_2 = "file://" + "C:/path/to/your/image_2.png" # Windows
# Example (relative path):
# image_url_1 = "file://" + "./image_1.png" # Adjust to your path
# image_url_2 = "file://" + "./image_2.png" # Adjust to your path
# [Method 3] Base64-encoded image
# image_url_1 = encode_file("./image_1.png") # Adjust to your path
# image_url_2 = encode_file("./image_2.png") # Adjust to your path
print('----sync call, please wait a moment----')
rsp = ImageSynthesis.call(api_key=api_key,
model="wan2.5-i2i-preview",
prompt="Place the alarm clock from image 1 beside the vase on the dining table in image 2.",
images=[image_url_1, image_url_2],
negative_prompt="",
n=1,
# size="1280*1280",
prompt_extend=True,
watermark=False,
seed=12345)
print('response: %s' % rsp)
if rsp.status_code == HTTPStatus.OK:
# Save images to current directory
for result in rsp.output.results:
file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1]
with open('./%s' % file_name, 'wb+') as f:
f.write(requests.get(result.url).content)
else:
print('sync_call Failed, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
Exemple de réponse
Les URL d'images expirent après 24 heures. Téléchargez les images sans tarder.
{
"status_code": 200,
"request_id": "8ad45834-4321-44ed-adf5-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "3aff9ebd-35fc-4339-98a3-xxxxxx",
"task_status": "SUCCEEDED",
"results": [
{
"url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx",
"orig_prompt": "Place the alarm clock from image 1 beside the vase on the dining table in image 2.",
"actual_prompt": "Place the blue alarm clock from image 1 to the right of the vase on the dining table in image 2, near the edge of the tablecloth. Keep the clock facing the camera and parallel to the tabletop, with natural shadow projection."
}
],
"submit_time": "2025-10-23 16:18:16.009",
"scheduled_time": "2025-10-23 16:18:16.040",
"end_time": "2025-10-23 16:19:09.591",
"task_metrics": {
"TOTAL": 1,
"FAILED": 0,
"SUCCEEDED": 1
}
},
"usage": {
"image_count": 1
}
}
Appel asynchrone
Cet exemple utilise des URL publiques pour l'entrée d'images.
Exemple de requête
import os
from http import HTTPStatus
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import dashscope
import requests
from dashscope import ImageSynthesis
# The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs differ by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# If you have not configured an environment variable, replace the next line with: api_key="sk-xxx"
# API keys differ between Singapore and Beijing. Get an API key: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
# Public image URLs
image_url_1 = "https://img.alicdn.com/imgextra/i3/O1CN0157XGE51l6iL9441yX_!!6000000004770-49-tps-1104-1472.webp"
image_url_2 = "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp"
def async_call():
print('----create task----')
task_info = create_async_task()
print('----wait task----')
wait_async_task(task_info)
# Create an asynchronous task
def create_async_task():
rsp = ImageSynthesis.async_call(api_key=api_key,
model="wan2.5-i2i-preview",
prompt="Place the alarm clock from image 1 beside the vase on the dining table in image 2.",
images=[image_url_1, image_url_2],
negative_prompt="",
n=1,
# size="1280*1280",
prompt_extend=True,
watermark=False,
seed=12345)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print(rsp.output)
else:
print('Failed, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
return rsp
# Wait for the asynchronous task to finish
def wait_async_task(task):
rsp = ImageSynthesis.wait(task=task, api_key=api_key)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print(rsp.output)
# Save file to current directory
for result in rsp.output.results:
file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1]
with open('./%s' % file_name, 'wb+') as f:
f.write(requests.get(result.url).content)
else:
print('Failed, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
# Fetch asynchronous task status
def fetch_task_status(task):
status = ImageSynthesis.fetch(task=task, api_key=api_key)
print(status)
if status.status_code == HTTPStatus.OK:
print(status.output.task_status)
else:
print('Failed, status_code: %s, code: %s, message: %s' %
(status.status_code, status.code, status.message))
# Cancel an asynchronous task. Only PENDING tasks can be canceled.
def cancel_task(task):
rsp = ImageSynthesis.cancel(task=task, api_key=api_key)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print(rsp.output.task_status)
else:
print('Failed, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
if __name__ == '__main__':
async_call()
Exemple de réponse
- Réponse lors de la création d'une tâche
{
"status_code": 200,
"request_id": "31b04171-011c-96bd-ac00-f0383b669cc7",
"code": "",
"message": "",
"output": {
"task_id": "4f90cf14-a34e-4eae-xxxxxxxx",
"task_status": "PENDING",
"results": []
},
"usage": null
}
- Réponse lors de l'interrogation des résultats de la tâche
Les URL d'images expirent après 24 heures. Téléchargez les images sans tarder.
{
"status_code": 200,
"request_id": "8ad45834-4321-44ed-adf5-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "3aff9ebd-35fc-4339-98a3-xxxxxx",
"task_status": "SUCCEEDED",
"results": [
{
"url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx",
"orig_prompt": "Place the alarm clock from image 1 beside the vase on the dining table in image 2.",
"actual_prompt": "Place the blue alarm clock from image 1 to the right of the vase on the dining table in image 2, near the edge of the tablecloth. Keep the clock facing the camera and parallel to the tabletop, with natural shadow projection."
}
],
"submit_time": "2025-10-23 16:18:16.009",
"scheduled_time": "2025-10-23 16:18:16.040",
"end_time": "2025-10-23 16:19:09.591",
"task_metrics": {
"TOTAL": 1,
"FAILED": 0,
"SUCCEEDED": 1
}
},
"usage": {
"image_count": 1
}
}
Appel via le SDK Java
Important
Assurez-vous que votre version du SDK Java DashScope est au moins2.22.2.Les versions antérieures peuvent déclencher des erreurs telles que « url error, please check url! ». Effectuez une mise à jour en suivant la procédure Installer ou mettre à niveau le SDK.
Appel synchrone
Exemple de requête
Cet exemple prend en charge trois méthodes d'entrée d'image : URL publique, encodage Base64 et chemin de fichier local.
// 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.Constants;
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.*;
public class Image2Image {
static {
// The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs differ by region.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// If you have not configured an environment variable, replace the next line with: apiKey="sk-xxx"
// API keys differ between Singapore and Beijing. Get an API key: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
/**
* Image input methods: choose one
*
* 1. Public URL — best for publicly accessible images
* 2. Local file — best for local development and testing
* 3. Base64 encoding — best for private images or secure transmission
*/
// [Method 1] Public URL
static String imageUrl_1 = "https://img.alicdn.com/imgextra/i3/O1CN0157XGE51l6iL9441yX_!!6000000004770-49-tps-1104-1472.webp";
static String imageUrl_2 = "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp";
// [Method 2] Local file path (file://+absolute path or file:///+absolute path)
// static String imageUrl_1 = "file://" + "/your/path/to/image_1.png"; // Linux/macOS
// static String imageUrl_2 = "file:///" + "C:/your/path/to/image_2.png"; // Windows
// [Method 3] Base64 encoding
// static String imageUrl_1 = encodeFile("/your/path/to/image_1.png");
// static String imageUrl_2 = encodeFile("/your/path/to/image_2.png");
// List of images to edit
static List<String> imageUrls = new ArrayList<>();
static {
imageUrls.add(imageUrl_1);
imageUrls.add(imageUrl_2);
}
public static void syncCall() {
// Set parameters
Map<String, Object> parameters = new HashMap<>();
parameters.put("prompt_extend", true);
parameters.put("watermark", false);
parameters.put("seed", 12345);
ImageSynthesisParam param =
ImageSynthesisParam.builder()
.apiKey(apiKey)
.model("wan2.5-i2i-preview")
.prompt("Place the alarm clock from image 1 beside the vase on the dining table in image 2.")
.images(imageUrls)
.n(1)
//.size("1280*1280")
.negativePrompt("")
.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 as a Base64 string
* @param filePath File path
* @return Base64 string in format 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 not found: " + filePath);
}
// Detect MIME type
String mimeType = null;
try {
mimeType = Files.probeContentType(path);
} catch (IOException e) {
throw new IllegalArgumentException("Cannot detect file type: " + filePath);
}
if (mimeType == null || !mimeType.startsWith("image/")) {
throw new IllegalArgumentException("Unsupported or unrecognized image format");
}
// Read file and encode
byte[] fileBytes = null;
try{
fileBytes = Files.readAllBytes(path);
} catch (IOException e) {
throw new IllegalArgumentException("Cannot read file: " + filePath);
}
String encodedString = Base64.getEncoder().encodeToString(fileBytes);
return "data:" + mimeType + ";base64," + encodedString;
}
public static void main(String[] args) {
syncCall();
}
}
Exemple de réponse
Les URL d'images expirent après 24 heures. Téléchargez les images sans tarder.
{
"request_id": "d362685b-757f-4eac-bab5-xxxxxx",
"output": {
"task_id": "bfa7fc39-3d87-4fa7-b1e6-xxxxxx",
"task_status": "SUCCEEDED",
"results": [
{
"orig_prompt": "Place the alarm clock from image 1 beside the vase on the dining table in image 2.",
"actual_prompt": "Place the blue alarm clock from image 1 to the right of the vase on the dining table in image 2, near the edge of the tablecloth. Keep the clock facing the camera and parallel to the vase.",
"url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"
}
],
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"image_count": 1
}
}
Appel asynchrone
Cet exemple utilise des URL publiques pour l'entrée d'images.
Exemple de requête
// 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.Constants;
import com.alibaba.dashscope.utils.JsonUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Image2Image {
static {
// The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs differ by region.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// If you have not configured an environment variable, replace the next line with: apiKey="sk-xxx"
// API keys differ between Singapore and Beijing. Get an API key: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
// Public URLs
static String imageUrl_1 = "https://img.alicdn.com/imgextra/i3/O1CN0157XGE51l6iL9441yX_!!6000000004770-49-tps-1104-1472.webp";
static String imageUrl_2 = "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp";
// List of images to edit
static List<String> imageUrls = new ArrayList<>();
static {
imageUrls.add(imageUrl_1);
imageUrls.add(imageUrl_2);
}
public static void asyncCall() {
// Set parameters
Map<String, Object> parameters = new HashMap<>();
parameters.put("prompt_extend", true);
parameters.put("watermark", false);
parameters.put("seed", 12345);
ImageSynthesisParam param =
ImageSynthesisParam.builder()
.apiKey(apiKey)
.model("wan2.5-i2i-preview")
.prompt("Place the alarm clock from image 1 beside the vase on the dining table in image 2.")
.images(imageUrls)
.n(1)
//.size("1280*1280")
.negativePrompt("")
.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();
param.setApiKey(apiKey);
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, apiKey);
System.out.println(result.getOutput());
System.out.println(result.getUsage());
}
public static void main(String[] args) {
asyncCall();
}
}
Exemple de réponse
- Réponse lors de la création d'une tâche
{
"request_id": "5dbf9dc5-4f4c-9605-85ea-542f97709ba8",
"output": {
"task_id": "7277e20e-aa01-4709-xxxxxxxx",
"task_status": "PENDING"
}
}
- Réponse lors de l'interrogation des résultats de la tâche
Les URL d'images expirent après 24 heures. Téléchargez les images sans tarder.
{
"request_id": "d362685b-757f-4eac-bab5-xxxxxx",
"output": {
"task_id": "bfa7fc39-3d87-4fa7-b1e6-xxxxxx",
"task_status": "SUCCEEDED",
"results": [
{
"orig_prompt": "Place the alarm clock from image 1 beside the vase on the dining table in image 2.",
"actual_prompt": "Place the blue alarm clock from image 1 to the right of the vase on the dining table in image 2, near the edge of the tablecloth. Keep the clock facing the camera and parallel to the vase.",
"url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"
}
],
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"image_count": 1
}
}
Limites
- Rétention des données : les ID de tâche et les URL d'images expirent tous deux après 24 heures. Vous ne pouvez plus les interroger ni les télécharger après expiration.
- Modération de contenu : tous les prompts, images d'entrée et images générées font l'objet d'une modération de contenu. Les requêtes contenant du contenu interdit retournent des erreurs telles que « IPInfringementSuspect » ou « DataInspectionFailed ». Consultez Informations sur les erreurs pour plus de détails.
Codes d'erreur
Si l'appel du modèle échoue et retourne un message d'erreur, consultez Codes d'erreur pour résoudre le problème.
FAQ
Q : J'utilisais auparavant l'édition d'image générale 2.1. Dois-je modifier mes appels SDK pour utiliser wan2.5 ?
R : Oui, la conception des paramètres diffère entre les versions :
- Édition d'image générale 2.1 : nécessite à la fois les paramètres
promptetfunction. - Édition d'image générale 2.5 : nécessite uniquement le paramètre
prompt. Décrivez toutes les modifications sous forme de texte. Le paramètrefunctionn'est plus pris en charge ni nécessaire.
Q : Comment consulter les métriques d'utilisation du modèle ?
R : Une heure après la fin d'un appel de modèle, accédez à la page Model telemetry (Singapore)Model telemetry (Beijing) pour consulter des métriques telles que le nombre d'appels et le taux de réussite. Pour un guide étape par étape, consultez Comment consulter l'historique des appels de modèle ?.



