Le modèle de montage vidéo Wan 2.7 accepte des entrées multimodales (texte, images et vidéos) pour le montage par instruction et le transfert de style .
Documentation connexe : Guide
Applicabilité
Le modèle, l'URL de l'endpoint et la clé API doivent tous appartenir à la même région. Les appels interrégions échouent.
- Sélectionnez un modèle : Confirmez la région du modèle.
- Sélectionnez une URL d'endpoint : Choisissez l'URL de l'endpoint correspondant à la région. Les URL HTTP et SDK DashScope sont prises en charge.
- Configurez une clé API : Obtenez une clé API pour la région, puis configurez-la en tant que variable d'environnement.
RemarqueLes exemples de code de cette rubrique utilisent la région Singapour.
ImportantAlibaba Cloud Model Studio a publié des domaines spécifiques aux espaces de travail pour les régions Chine (Pékin) et Singapour. Les 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 les nouveaux domaines :
- Chine (Pékin) : passez de
https://dashscope.aliyuncs.comàhttps://{WorkspaceId}.cn-beijing.maas.aliyuncs.com - Singapour : passez de
https://dashscope-intl.aliyuncs.comàhttps://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
{WorkspaceId} correspond à votre ID d'espace de travail, que vous pouvez trouver sur la page Détails de l'espace de travail dans la console Alibaba Cloud Model Studio. Le domaine existant reste entièrement fonctionnel.
HTTP
Les tâches de montage vidéo prennent généralement entre 1 et 5 minutes. L'API utilise des appels asynchrones avec deux étapes principales : Créer une tâche -> Interroger le résultat.
Étape 1 : Créer une tâche
Singapour
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Pékin
POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Remplacez {WorkspaceId} par votre ID d'espace de travail réel.
Remarque
- Une fois la tâche créée, utilisez le
task_idrenvoyé pour interroger le résultat. Letask_idest 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 obtenir des conseils destinés aux débutants, consultez la rubrique Appeler des API avec Postman ou cURL.
Paramètres de la requête | |
Content-Type Type de contenu de la requête. Doit être | |
Authorization Authentifie la requête avec une clé API Model Studio. Exemple : Bearer sk-xxxx. | |
X-DashScope-Async Active le traitement asynchrone. Les requêtes HTTP ne prennent en charge que les appels asynchrones. Doit être défini sur ImportantSi cet en-tête de requête est manquant, l'erreur « current user api does not support synchronous calls » est renvoyée. | |
Corps de la requête | |
model Nom du modèle. Exemple de valeur : wan2,7-videoedit. | |
input Paramètres d'entrée, y compris l'instruction (prompt). | |
parameters Paramètres de traitement vidéo, tels que la résolution, la durée, la réécriture intelligente de l'instruction et le filigrane. |
Paramètres de réponse | Réponse en cas de succèsEnregistrez le Réponse d'erreurLa création de la tâche a échoué. Consultez les Codes d'erreur. |
output Contient la sortie de la tâche. | |
request_id Identifiant unique de la requête, utilisé pour le suivi et le dépannage. | |
code Code d'erreur. Renvoyé uniquement en cas d'échec de la requête. Consultez les Codes d'erreur. | |
message Message d'erreur détaillé. Renvoyé uniquement en cas d'échec de la requête. Consultez les Codes d'erreur. |
Étape 2 : Interroger le résultat
Singapore
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
Beijing
GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}
Remplacez {WorkspaceId} par votre ID d'espace de travail réel.
Remarque
- Recommandation d'interrogation : la génération de vidéo prend plusieurs minutes. Mettez en place un mécanisme d'interrogation avec un intervalle raisonnable, par exemple 15 secondes.
- Transition d'état de la tâche : PENDING → RUNNING → SUCCEEDED ou FAILED.
- Lien vers le résultat : une fois la tâche réussie, une URL de vidéo valide pendant 24 heures est renvoyée. Téléchargez et enregistrez la vidéo dans un stockage permanent, tel que OSS.
- Validité du task_id : 24 heures. Au-delà de cette période, les requêtes renvoient l'état de la tâche comme étant
UNKNOWN.
Paramètres de requête | Interroger le résultatRemplacez |
En-têtes | |
Authorization Authentifie la requête à l'aide d'une clé API Model Studio. Exemple : Bearer sk-xxxx. | |
Paramètres de chemin | |
task_id Identifiant de la tâche. |
Paramètres de réponse | Tâche réussieLes URL de vidéo ne sont valides que pendant 24 heures, puis sont automatiquement supprimées. Enregistrez rapidement les vidéos générées. Échec de la tâcheEn cas d'échec d'une tâche, le champ Requête expiréeLe |
output Contient la sortie de la tâche. | |
usage Statistiques d'utilisation pour la facturation. Facturées uniquement pour les tâches réussies. | |
request_id Identifiant unique de la requête, utilisé pour le suivi et le dépannage. |
SDK DashScope
Les noms de paramètres du SDK sont généralement cohérents avec ceux de l'API HTTP, mais la structure des paramètres respecte les conventions propres à chaque langage.
Le montage vidéo prend généralement entre 1 et 5 minutes. Le SDK gère en interne le processus d'appel HTTP asynchrone et prend en charge les appels synchrones et asynchrones.
La durée de traitement réelle dépend du nombre de tâches en file d'attente et de l'état du service. Patientez jusqu'à l'obtention du résultat.
SDK Python
ImportantAssurez-vous d'utiliser la version 1.25.16 ou ultérieure du SDK Python DashScope.
L'utilisation d'une version antérieure peut provoquer des erreurs telles que « url error, please check url! ». Reportez-vous à la rubrique Installer le SDK pour mettre à jour votre version.
Définissez le paramètre base_http_api_url en fonction de la région du service :
Singapore
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
China (Beijing)
dashscope.base_http_api_url = 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1'
Remplacez {WorkspaceId} par votre ID d'espace de travail réel.
Synchronous call
Request example
import base64
import mimetypes
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope
import os
# The following URL is for the Singapore region. When calling, replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# If the DASHSCOPE_API_KEY environment variable is not set, provide your Model Studio API key here: api_key="sk-xxx"
# API keys are region-specific. To get an API key, see https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
# The format is 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}"
# The reference_image_url parameter supports the following three input methods.
# Method 1: Use a public URL of an image.
reference_image_url = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260402/fwjpqf/wan2.7-videoedit-change-clothes.png"
# Method 2: Use a local file (absolute and relative paths are supported).
# Format: file:// + file path
# Example (absolute path):
# reference_image_url = "file://" + "/path/to/image.png" # Linux/macOS
# reference_image_url = "file://" + "C:/path/to/image.png" # Windows
# Example (relative path):
# reference_image_url = "file://" + "./image.png" # Relative to the path of the current script.
# Method 3: A Base64-encoded string.
# reference_image_url = encode_file("/path/to/image.png")
def sample_sync_call_videoedit():
# Call the synchronous API, which will return the result directly.
print('Please wait...')
rsp = VideoSynthesis.call(
api_key=api_key,
model='wan2.7-videoedit',
prompt='Replace the clothes of the girl in the video with the clothes from the image.',
media=[
{
"type": "video",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260403/nlspwm/T2VA_22.mp4"
},
{
"type": "reference_image",
"url": reference_image_url
}
],
resolution='720P',
prompt_extend=True,
watermark=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_videoedit()
Response example
L'URL
video_urlest valide pendant 24 heures. Téléchargez la vidéo dès que possible.
{
"status_code": 200,
"request_id": "d6c3c865-34e9-98a9-a53d-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "1de7c853-755a-454a-91bc-xxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxxx",
"submit_time": "2026-04-10 17:16:30.821",
"scheduled_time": "2026-04-10 17:16:46.379",
"end_time": "2026-04-10 17:24:59.352",
"orig_prompt": "Replace the clothes of the girl in the video with the clothes from the image."
},
"usage": {
"video_count": 1,
"video_duration": 0,
"video_ratio": "",
"duration": 10.08,
"input_video_duration": 5.04,
"output_video_duration": 5.04,
"SR": 720
}
}
Asynchronous call
Request example
import base64
import mimetypes
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope
import os
# The following URL is for the Singapore region. When calling, replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# If the DASHSCOPE_API_KEY environment variable is not set, provide your Model Studio API key here: api_key="sk-xxx"
# API keys are region-specific. To get an API key, see https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
# The format is 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}"
# The reference_image_url parameter supports the following three input methods.
# Method 1: Use a public URL of an image.
reference_image_url = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260402/fwjpqf/wan2.7-videoedit-change-clothes.png"
# Method 2: Use a local file (absolute and relative paths are supported).
# Format: file:// + file path
# Example (absolute path):
# reference_image_url = "file://" + "/path/to/image.png" # Linux/macOS
# reference_image_url = "file://" + "C:/path/to/image.png" # Windows
# Example (relative path):
# reference_image_url = "file://" + "./image.png" # Relative to the path of the current script.
# Method 3: A Base64-encoded string.
# reference_image_url = encode_file("/path/to/image.png")
def sample_async_call_videoedit():
# Call the asynchronous API, which returns task information.
# You can then check the task status using the returned task ID.
rsp = VideoSynthesis.async_call(
api_key=api_key,
model='wan2.7-videoedit',
prompt='Replace the clothes of the girl in the video with the clothes from the image.',
media=[
{
"type": "video",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260403/nlspwm/T2VA_22.mp4"
},
{
"type": "reference_image",
"url": reference_image_url
}
],
resolution='720P',
prompt_extend=True,
watermark=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, which includes the task status.
status = VideoSynthesis.fetch(task=rsp, api_key=api_key)
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 task to complete. This method polls at intervals until the task is finished.
rsp = VideoSynthesis.wait(task=rsp, api_key=api_key)
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_videoedit()
Response examples
-
Réponse à la création de la tâche
{ "status_code": 200, "request_id": "f16ae7e9-d518-92f8-a02c-xxxxxx", "code": "", "message": "", "output": { "task_id": "05e68c7e-850c-49e4-b866-xxxxxx", "task_status": "PENDING", "video_url": "" }, "usage": null } -
Réponse à la requête d'interrogation de la tâche
L'URL
video_urlest valide pendant 24 heures. Téléchargez la vidéo dès que possible.{ "status_code": 200, "request_id": "d6c3c865-34e9-98a9-a53d-xxxxxx", "code": null, "message": "", "output": { "task_id": "1de7c853-755a-454a-91bc-xxxxxx", "task_status": "SUCCEEDED", "video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxxx", "submit_time": "2026-04-10 17:16:30.821", "scheduled_time": "2026-04-10 17:16:46.379", "end_time": "2026-04-10 17:24:59.352", "orig_prompt": "Replace the clothes of the girl in the video with the clothes from the image." }, "usage": { "video_count": 1, "video_duration": 0, "video_ratio": "", "duration": 10.08, "input_video_duration": 5.04, "output_video_duration": 5.04, "SR": 720 } }
SDK Java
ImportantAssurez-vous d'utiliser la version 2.22.14 ou ultérieure du SDK Java DashScope.
L'utilisation d'une version antérieure peut provoquer des erreurs telles que « url error, please check url! ». Reportez-vous à la rubrique Installer le SDK pour mettre à jour votre version.
Définissez la constante Constants.baseHttpApiUrl en fonction de la région du service :
Singapore
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
China (Beijing)
Constants.baseHttpApiUrl = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1";
Remplacez {WorkspaceId} par votre ID d'espace de travail réel.
Synchronous call
Request example
// Copyright (c) Alibaba, Inc. and its affiliates.
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.JsonUtils;
import com.alibaba.dashscope.utils.Constants;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Base64;
public class VideoEdit {
static {
// The following URL is for the Singapore region. When calling, replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// If the DASHSCOPE_API_KEY environment variable is not set, provide your Model Studio API key here: apiKey="sk-xxx"
// API keys are region-specific. To get an API key, see https://www.alibabacloud.com/help/en/model-studio/get-api-key
public static String apiKey = System.getenv("DASHSCOPE_API_KEY");
// The referenceImageUrl parameter supports the following three input methods.
// Method 1: Use a public URL of an image.
static String referenceImageUrl = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260402/fwjpqf/wan2.7-videoedit-change-clothes.png";
// Method 2: Use a local file (absolute and relative paths are supported).
// Format: file:// + file path
// Example (absolute path):
// static String referenceImageUrl = "file://" + "/path/to/image.png"; // Linux/macOS
// static String referenceImageUrl = "file://" + "C:/path/to/image.png"; // Windows
// Example (relative path):
// static String referenceImageUrl = "file://" + "./image.png"; // Relative to the path of the current executable.
// Method 3: Use Base64 encoding.
// static String referenceImageUrl = encodeFile("/path/to/image.png");
// The format is 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);
}
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.");
}
byte[] fileBytes = null;
try {
fileBytes = Files.readAllBytes(path);
} catch (IOException e) {
throw new IllegalArgumentException("Cannot read file content: " + filePath);
}
String encodedString = Base64.getEncoder().encodeToString(fileBytes);
return "data:" + mimeType + ";base64," + encodedString;
}
public static void videoEdit() throws ApiException, NoApiKeyException, InputRequiredException {
VideoSynthesis vs = new VideoSynthesis();
List<VideoSynthesisParam.Media> media = new ArrayList<VideoSynthesisParam.Media>(){{
add(VideoSynthesisParam.Media.builder()
.url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260403/nlspwm/T2VA_22.mp4")
.type("video")
.build());
add(VideoSynthesisParam.Media.builder()
.url(referenceImageUrl)
.type("reference_image")
.build());
}};
Map<String, Object> parameters = new HashMap<>();
parameters.put("resolution", "720P");
parameters.put("prompt_extend", true);
parameters.put("watermark", true);
VideoSynthesisParam param =
VideoSynthesisParam.builder()
.apiKey(apiKey)
.model("wan2.7-videoedit")
.prompt("Replace the clothes of the girl in the video with the clothes from the image.")
.media(media)
.parameters(parameters)
.build();
System.out.println("Please wait...");
VideoSynthesisResult result = vs.call(param);
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
videoEdit();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
Response example
L'URL
video_urlest valide pendant 24 heures. Téléchargez la vidéo dès que possible.
{
"request_id": "0a15ad3c-cde7-9f7e-b8d2-xxxxxx",
"output": {
"task_id": "0025d1e1-009a-4f53-9c27-xxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx",
"orig_prompt": "Replace the clothes of the girl in the video with the clothes from the image.",
"submit_time": "2026-04-10 17:21:01.719",
"scheduled_time": "2026-04-10 17:21:13.182",
"end_time": "2026-04-10 17:31:41.286"
},
"usage": {
"video_count": 1,
"duration": 10.08,
"input_video_duration": 5.04,
"output_video_duration": 5.04,
"SR": "720"
},
"status_code": 200,
"code": "",
"message": ""
}
Asynchronous call
Exemple de requête
// Copyright (c) Alibaba, Inc. and its affiliates.
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.aigc.videosynthesis.VideoSynthesisListResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.task.AsyncTaskListParam;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.utils.Constants;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Base64;
public class VideoEdit {
static {
// The following URL is for the Singapore region. When calling, replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// If the DASHSCOPE_API_KEY environment variable is not set, provide your Model Studio API key here: apiKey="sk-xxx"
// API keys are region-specific. To get an API key, see https://www.alibabacloud.com/help/en/model-studio/get-api-key
public static String apiKey = System.getenv("DASHSCOPE_API_KEY");
// The referenceImageUrl parameter supports the following three input methods.
// Method 1: Use a public URL of an image.
static String referenceImageUrl = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260402/fwjpqf/wan2.7-videoedit-change-clothes.png";
// Method 2: Use a local file (absolute and relative paths are supported).
// Format: file:// + file path
// Example (absolute path):
// static String referenceImageUrl = "file://" + "/path/to/image.png"; // Linux/macOS
// static String referenceImageUrl = "file://" + "C:/path/to/image.png"; // Windows
// Example (relative path):
// static String referenceImageUrl = "file://" + "./image.png"; // Relative to the path of the current executable.
// Method 3: Use Base64 encoding.
// static String referenceImageUrl = encodeFile("/path/to/image.png");
// The format is 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);
}
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.");
}
byte[] fileBytes = null;
try {
fileBytes = Files.readAllBytes(path);
} catch (IOException e) {
throw new IllegalArgumentException("Cannot read file content: " + filePath);
}
String encodedString = Base64.getEncoder().encodeToString(fileBytes);
return "data:" + mimeType + ";base64," + encodedString;
}
public static void videoEdit() throws ApiException, NoApiKeyException, InputRequiredException {
VideoSynthesis vs = new VideoSynthesis();
List<VideoSynthesisParam.Media> media = new ArrayList<VideoSynthesisParam.Media>(){{
add(VideoSynthesisParam.Media.builder()
.url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260403/nlspwm/T2VA_22.mp4")
.type("video")
.build());
add(VideoSynthesisParam.Media.builder()
.url(referenceImageUrl)
.type("reference_image")
.build());
}};
Map<String, Object> parameters = new HashMap<>();
parameters.put("resolution", "720P");
parameters.put("prompt_extend", true);
parameters.put("watermark", true);
VideoSynthesisParam param =
VideoSynthesisParam.builder()
.apiKey(apiKey)
.model("wan2.7-videoedit")
.prompt("Replace the clothes of the girl in the video with the clothes from the image.")
.media(media)
.parameters(parameters)
.build();
// Make an asynchronous call.
VideoSynthesisResult task = vs.asyncCall(param);
System.out.println(JsonUtils.toJson(task));
System.out.println("Please wait...");
// Wait for the task to complete and retrieve the final result.
VideoSynthesisResult result = vs.wait(task, apiKey);
System.out.println(JsonUtils.toJson(result));
}
// Retrieve the task list.
public static void listTask() throws ApiException, NoApiKeyException {
VideoSynthesis is = new VideoSynthesis();
AsyncTaskListParam param = AsyncTaskListParam.builder().build();
param.setApiKey(apiKey);
VideoSynthesisListResult result = is.list(param);
System.out.println(result);
}
// Retrieve the result of a single task.
public static void fetchTask(String taskId) throws ApiException, NoApiKeyException {
VideoSynthesis is = new VideoSynthesis();
// The apiKey can be null if the DASHSCOPE_API_KEY environment variable is set.
VideoSynthesisResult result = is.fetch(taskId, apiKey);
System.out.println(result.getOutput());
System.out.println(result.getUsage());
}
public static void main(String[] args) {
try {
videoEdit();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
Exemples de réponse
-
Réponse à la création d'une tâche
{ "request_id": "f16ae7e9-d518-92f8-a02c-xxxxxx", "output": { "task_id": "05e68c7e-850c-49e4-b866-xxxxxx", "task_status": "PENDING", "video_url": "" }, "usage": null, "status_code": 200, "code": "", "message": "" } -
Réponse à l'interrogation d'une tâche
Le paramètre
video_urlest valide pendant 24 heures. Veuillez télécharger la vidéo dans les plus brefs délais.{ "request_id": "0a15ad3c-cde7-9f7e-b8d2-xxxxxx", "output": { "task_id": "0025d1e1-009a-4f53-9c27-xxxxx", "task_status": "SUCCEEDED", "video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx", "orig_prompt": "Replace the clothes of the girl in the video with the clothes from the image.", "submit_time": "2026-04-10 17:21:01.719", "scheduled_time": "2026-04-10 17:21:13.182", "end_time": "2026-04-10 17:31:41.286" }, "usage": { "video_count": 1, "duration": 10.08, "input_video_duration": 5.04, "output_video_duration": 5.04, "SR": "720" }, "status_code": 200, "code": "", "message": "" }
Codes d'erreur
Si un appel de modèle échoue, reportez-vous à la rubrique Codes d'erreur pour le dépannage.