Wan-R2V acepta entradas multimodales (imágenes, videos y audio) para generar videos que presentan uno o más personajes mientras preservan su apariencia y voz en todas las escenas.
Referencias: Guía del usuario
Disponibilidad
Para garantizar llamadas exitosas a la API, el modelo, la URL del endpoint y la clave de API deben pertenecer todos a la misma región. Las llamadas entre regiones fallarán.
- Seleccionar un modelo: Confirm la región del modelo.
- Seleccionar una URL: Elija la URL del endpoint para la región correspondiente. Se admiten URLs HTTP.
- Configurar una clave de API: Seleccione una región, obtenga una clave de API y configure la clave de API como una variable de entorno.
NotaEl código de ejemplo en este tema aplica a la región de Singapur.
ImportanteAlibaba Cloud Model Studio ha lanzado dominios específicos de espacio de trabajo para las regiones de China (Beijing) y Singapur. Los nuevos dominios dedicados ofrecen un rendimiento superior y una mayor estabilidad para las solicitudes de inferencia. Recomendamos migrar a los nuevos dominios:
- China (Pekín): de
https://dashscope.aliyuncs.comahttps://{WorkspaceId}.cn-beijing.maas.aliyuncs.com - Singapur: de
https://dashscope-intl.aliyuncs.comahttps://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
{WorkspaceId} es su ID de espacio de trabajo, que se encuentra en la página Workspace Details de la consola de Alibaba Cloud Model Studio. El dominio existente permanece totalmente funcional.
HTTP
ImportanteEsta API utiliza el nuevo protocolo y admite el modelo wan2.7.
La generación de video suele tardar de 1 a 5 minutos, por lo que la API utiliza invocación asíncrona. El flujo de trabajo tiene dos pasos: crear una tarea y luego consultar el resultado.
Paso 1: Crear una tarea y obtener el ID de tarea
Singapore
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Beijing
POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Reemplace {WorkspaceId} con su ID de espacio de trabajo real.
Nota
- Después de crear la tarea, utilice el
task_iddevuelto para consultar el resultado. Eltask_ides válido durante 24 horas. No cree tareas duplicadas. En su lugar, utilice el sondeo para recuperar el resultado. - Para obtener orientación para principiantes, consulte Llamar a APIs con Postman o cURL.
Parámetros de solicitudEncabezadosContent-Type El tipo de contenido de la solicitud. Debe ser Authorization Autentica la solicitud con una clave API de Model Studio. Ejemplo: Bearer sk-xxxx. X-DashScope-Async Habilita el procesamiento asíncrono. Las solicitudes HTTP solo admiten llamadas asíncronas. Debe ser ImportanteSi falta este encabezado de solicitud, se devuelve el error "current user api does not support synchronous calls". Cuerpo de la solicitudmodel El nombre del modelo. Para obtener una lista de modelos y sus precios, consulte Precios de modelos. Ejemplo: wan2.7-r2v, wan2.7-r2v-2026-06-12. input La información básica de entrada, como el prompt. parameters Los parámetros de procesamiento de video, como la resolución del video. | Referencia de múltiples sujetos (imagen + video + voz)Puede pasar múltiples recursos de referencia (imágenes y videos) y especificar una voz para generar un video. Referencia de imagen única (imagen de múltiples paneles)Puede proporcionar una imagen de referencia de nueve paneles para controlar la historia, la composición de la cámara y el diseño de personajes para generar un video. |
Parámetros de respuestaoutput La información de salida de la tarea. request_id Identificador único de solicitud para rastreo y solución de problemas. code Código de error. Se devuelve solo para solicitudes fallidas. Consulte Códigos de error. message Mensaje de error detallado. Se devuelve solo para solicitudes fallidas. Consulte Códigos de error. | Respuesta exitosaGuarde el Respuesta de errorError en la creación de la tarea. Consulte Códigos de error. |
Paso 2: Consultar el resultado por ID de tarea
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}
Reemplace {WorkspaceId} con su ID de espacio de trabajo real.
Nota
- Recomendación de sondeo: La generación de video tarda varios minutos. Utilice un mecanismo de sondeo con un intervalo razonable, como 15 segundos.
- Transición de estado de la tarea: PENDING → RUNNING → SUCCEEDED o FAILED.
- Enlace de resultado: Después de que una tarea tenga éxito, se devuelve una URL de video válida durante 24 horas. Descargue y guarde el video en un almacenamiento permanente, como OSS.
task_idvalidez: 24 horas. Después de este período, las consultas devuelven el estado de la tarea comoUNKNOWN.
Parámetros de solicitudEncabezadosAuthorization Autentica la solicitud con una clave API de Model Studio. Ejemplo: Bearer sk-xxxx. Parámetros de rutatask_id El ID de la tarea. | Consultar el resultado de la tareaReemplace |
Parámetros de respuestaoutput La información de salida de la tarea. usage Estadísticas de salida. Se completan solo para tareas exitosas. request_id Identificador único de solicitud para rastreo y solución de problemas. | Tarea exitosaLas URL de video son válidas solo durante 24 horas y luego se eliminan automáticamente. Guarde los videos generados de inmediato. Tarea fallidaCuando una tarea falla, Consulta de tarea caducadaEl |
SDK de DashScope
Los nombres de los parámetros del SDK son en gran medida consistentes con la API HTTP. La estructura de parámetros se encapsula según las características del lenguaje.
Las tareas de referencia a video suelen tardar de 1 a 5 minutos. El SDK encapsula el flujo asíncrono HTTP y admite llamadas tanto síncronas como asíncronas.
El tiempo real de procesamiento depende de la longitud de la cola y del estado del servicio.
SDK de Python
ImportanteRequiere DashScope Python SDK 1.25.16 o posterior.
Las versiones anteriores pueden provocar errores como "url error, please check url!". Para obtener instrucciones de actualización, consulte Instalar el SDK.
Configure base_http_api_url según la región del modelo:
Singapore
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
Beijing
dashscope.base_http_api_url = 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1'
Reemplace {WorkspaceId} con su ID de espacio de trabajo real.
Llamada síncrona
Una llamada síncrona bloquea la ejecución hasta que se completa la generación del video y devuelve el resultado directamente.
Ejemplo de solicitud
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 you have not configured environment variables, replace the following line with your Model Studio API key: api_key="sk-xxx"
# The API key varies by region. To get an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
def sample_sync_call_r2v():
# Synchronous call, returns the result directly.
print('please wait...')
rsp = VideoSynthesis.call(
api_key=api_key,
model='wan2.7-r2v-2026-06-12',
prompt='Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, "The sunshine is so nice today." Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, "That sounds lovely. Can you sing it again?"',
media=[
{
"type": "reference_image",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/sjuytr/wan-r2v-object-girl.jpg",
"reference_voice": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/gbqewz/wan-r2v-girl-voice.mp3"
},
{
"type": "reference_video",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qigswt/wan-r2v-role2.mp4",
"reference_voice": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/isllrq/wan-r2v-boy-voice.mp3"
},
{
"type": "reference_image",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/rtjeqf/wan-r2v-object3.png"
},
{
"type": "reference_image",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qpzxps/wan-r2v-object4.png"
},
{
"type": "reference_image",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/wfjikw/wan-r2v-backgroud5.png"
}
],
resolution='720P',
ratio='16:9',
duration=10,
prompt_extend=False,
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_r2v()
Ejemplo de respuesta
La video_url es válida durante 24 horas. Descargue el video a la brevedad.
{
"status_code": 200,
"request_id": "b040d446-f9b6-977f-b9ad-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "5dab3291-393e-424d-929b-xxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx",
"submit_time": "2026-04-17 17:12:49.076",
"scheduled_time": "2026-04-17 17:13:00.384",
"end_time": "2026-04-17 17:29:43.386",
"orig_prompt": "Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, \"The sunshine is so nice today.\" Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, \"That sounds lovely. Can you sing it again?\""
},
"usage": {
"video_count": 1,
"video_duration": 0,
"video_ratio": "",
"duration": 15,
"input_video_duration": 5,
"output_video_duration": 10,
"SR": 720,
"ratio": "16:9"
}
}
Llamada asíncrona
Una llamada asíncrona devuelve un ID de tarea inmediatamente. Sondee o espere a que se complete por separado.
Ejemplo de solicitud
import os
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope
# 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 you have not configured environment variables, replace the following line with your Model Studio API key: api_key="sk-xxx"
# The API key varies by region. To get an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
def sample_async_call_r2v():
# Asynchronous call, returns a task_id.
rsp = VideoSynthesis.async_call(
api_key=api_key,
model='wan2.7-r2v-2026-06-12',
prompt='Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, "The sunshine is so nice today." Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, "That sounds lovely. Can you sing it again?"',
media=[
{
"type": "reference_image",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/sjuytr/wan-r2v-object-girl.jpg",
"reference_voice": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/gbqewz/wan-r2v-girl-voice.mp3"
},
{
"type": "reference_video",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qigswt/wan-r2v-role2.mp4",
"reference_voice": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/isllrq/wan-r2v-boy-voice.mp3"
},
{
"type": "reference_image",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/rtjeqf/wan-r2v-object3.png"
},
{
"type": "reference_image",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qpzxps/wan-r2v-object4.png"
},
{
"type": "reference_image",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/wfjikw/wan-r2v-backgroud5.png"
}
],
resolution='720P',
ratio='16:9',
duration=10,
prompt_extend=False,
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 asynchronous task information.
status = VideoSynthesis.fetch(task=rsp, api_key=api_key)
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))
# Wait for the asynchronous task to complete.
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_r2v()
Ejemplo de respuesta
- Ejemplo de respuesta para crear una tarea:
{
"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
}
-
Ejemplo de respuesta para consultar el resultado de la tarea:
La video_url es válida durante 24 horas. Descargue el video a la brevedad.
{
"status_code": 200,
"request_id": "b040d446-f9b6-977f-b9ad-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "5dab3291-393e-424d-929b-xxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx",
"submit_time": "2026-04-17 17:12:49.076",
"scheduled_time": "2026-04-17 17:13:00.384",
"end_time": "2026-04-17 17:29:43.386",
"orig_prompt": "Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, \"The sunshine is so nice today.\" Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, \"That sounds lovely. Can you sing it again?\""
},
"usage": {
"video_count": 1,
"video_duration": 0,
"video_ratio": "",
"duration": 15,
"input_video_duration": 5,
"output_video_duration": 10,
"SR": 720,
"ratio": "16:9"
}
}
SDK de Java
ImportanteAsegúrese de que la versión del SDK de Java de DashScope sea al menos 2.22.14 antes de ejecutar el siguiente código.
Las versiones anteriores pueden provocar errores como "url error, please check url!". Para obtener instrucciones de actualización, consulte Instalar el SDK.
Configure baseHttpApiUrl según la región del modelo:
Singapore
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
Beijing
Constants.baseHttpApiUrl = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1";
Reemplace {WorkspaceId} con su ID de espacio de trabajo real.
Llamada síncrona
Una llamada síncrona bloquea la ejecución hasta que se completa la generación del video y devuelve el resultado directamente.
Ejemplo de solicitud
// 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;
public class Ref2Video {
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 you have not configured environment variables, replace the following line with your Model Studio API key: apiKey="sk-xxx"
// The API key varies by region. To get an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
public static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public static void ref2video() 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/20260408/sjuytr/wan-r2v-object-girl.jpg")
.type("reference_image")
.referenceVoice("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/gbqewz/wan-r2v-girl-voice.mp3")
.build());
add(VideoSynthesisParam.Media.builder()
.url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qigswt/wan-r2v-role2.mp4")
.type("reference_video")
.referenceVoice("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/isllrq/wan-r2v-boy-voice.mp3")
.build());
add(VideoSynthesisParam.Media.builder()
.url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/rtjeqf/wan-r2v-object3.png")
.type("reference_image")
.build());
add(VideoSynthesisParam.Media.builder()
.url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qpzxps/wan-r2v-object4.png")
.type("reference_image")
.build());
add(VideoSynthesisParam.Media.builder()
.url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/wfjikw/wan-r2v-backgroud5.png")
.type("reference_image")
.build());
}};
Map<String, Object> parameters = new HashMap<>();
parameters.put("resolution", "720P");
parameters.put("ratio", "16:9");
parameters.put("prompt_extend", false);
parameters.put("watermark", true);
VideoSynthesisParam param =
VideoSynthesisParam.builder()
.apiKey(apiKey)
.model("wan2.7-r2v-2026-06-12")
.prompt("Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, \"The sunshine is so nice today.\" Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, \"That sounds lovely. Can you sing it again?\"")
.media(media)
.duration(10)
.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 {
ref2video();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
Ejemplo de respuesta
La video_url es válida durante 24 horas. Descargue el video a la brevedad.
{
"request_id": "f6365287-336f-9f2b-ab59-xxxxxx",
"output": {
"task_id": "cb7f1da5-a987-41de-b0a4-xxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxxx",
"orig_prompt": "Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, \"The sunshine is so nice today.\" Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, \"That sounds lovely. Can you sing it again?\"",
"submit_time": "2026-04-17 17:15:11.536",
"scheduled_time": "2026-04-17 17:15:20.316",
"end_time": "2026-04-17 17:29:44.277"
},
"usage": {
"video_count": 1,
"duration": 15,
"input_video_duration": 5,
"output_video_duration": 10,
"SR": 720
},
"status_code": 200,
"code": "",
"message": ""
}
Llamada asíncrona
Una llamada asíncrona devuelve un ID de tarea inmediatamente. Sondee o espere a que se complete por separado.
Ejemplo de solicitud
// Copyright (c) Alibaba, Inc. and its affiliates.
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesis;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisListResult;
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.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;
public class Ref2VideoAsync {
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 you have not configured environment variables, replace the following line with your Model Studio API key: apiKey="sk-xxx"
// The API key varies by region. To get an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
public static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public static void asyncRef2video() throws ApiException, NoApiKeyException, InputRequiredException, InterruptedException {
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/20260408/sjuytr/wan-r2v-object-girl.jpg")
.type("reference_image")
.referenceVoice("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/gbqewz/wan-r2v-girl-voice.mp3")
.build());
add(VideoSynthesisParam.Media.builder()
.url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qigswt/wan-r2v-role2.mp4")
.type("reference_video")
.referenceVoice("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/isllrq/wan-r2v-boy-voice.mp3")
.build());
add(VideoSynthesisParam.Media.builder()
.url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/rtjeqf/wan-r2v-object3.png")
.type("reference_image")
.build());
add(VideoSynthesisParam.Media.builder()
.url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qpzxps/wan-r2v-object4.png")
.type("reference_image")
.build());
add(VideoSynthesisParam.Media.builder()
.url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/wfjikw/wan-r2v-backgroud5.png")
.type("reference_image")
.build());
}};
Map<String, Object> parameters = new HashMap<>();
parameters.put("resolution", "720P");
parameters.put("ratio", "16:9");
parameters.put("prompt_extend", false);
parameters.put("watermark", true);
VideoSynthesisParam param =
VideoSynthesisParam.builder()
.apiKey(apiKey)
.model("wan2.7-r2v-2026-06-12")
.prompt("Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, \"The sunshine is so nice today.\" Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, \"That sounds lovely. Can you sing it again?\"")
.media(media)
.duration(10)
.parameters(parameters)
.build();
// Submit the asynchronous task.
VideoSynthesisResult result = vs.asyncCall(param);
System.out.println("task_id: " + result.getOutput().getTaskId());
System.out.println(JsonUtils.toJson(result));
// Wait for the task to complete.
result = vs.wait(result, null);
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
asyncRef2video();
} catch (ApiException | NoApiKeyException | InputRequiredException | InterruptedException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
Ejemplo de respuesta
- Ejemplo de respuesta para crear una tarea:
{
"request_id": "5dbf9dc5-4f4c-9605-85ea-xxxxxxxx",
"output": {
"task_id": "7277e20e-aa01-4709-xxxxxxxx",
"task_status": "PENDING"
}
}
-
Ejemplo de respuesta para consultar el resultado de la tarea:
La video_url es válida durante 24 horas. Descargue el video a la brevedad.
{
"request_id": "f6365287-336f-9f2b-ab59-xxxxxx",
"output": {
"task_id": "cb7f1da5-a987-41de-b0a4-xxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxxx",
"orig_prompt": "Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, \"The sunshine is so nice today.\" Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, \"That sounds lovely. Can you sing it again?\"",
"submit_time": "2026-04-17 17:15:11.536",
"scheduled_time": "2026-04-17 17:15:20.316",
"end_time": "2026-04-17 17:29:44.277"
},
"usage": {
"video_count": 1,
"duration": 15,
"input_video_duration": 5,
"output_video_duration": 10,
"SR": 720
},
"status_code": 200,
"code": "",
"message": ""
}
Códigos de error
Si la llamada al modelo falla y devuelve un mensaje de error, consulte Códigos de error para su resolución.
FAQ
¿Cómo añado una voz a un sujeto (referencia de voz)?
Solo wan2.7 admite referencia de voz. En el objeto media, puede pasar una URL de audio en el parámetro reference_voice para especificar una voz de referencia para una imagen o video de referencia.
{
"media": [
{
"type": "reference_image",
"url": "<URL of the reference image>",
"reference_voice": "<URL of the audio>"
},
{
"type": "reference_video",
"url": "<URL of the reference video>",
"reference_voice": "<URL of the audio>"
}
]
}