Skip to main content
Wan

Wan2.7 - referência da API de edição de vídeo

O modelo de edição de vídeo Wan 2.7 aceita entradas multimodais (texto, imagens e vídeos) para edição baseada em instruções e transferência de estilo .

Documentos relacionados: Guide

Aplicabilidade

O modelo, a URL do endpoint e a API Key devem pertencer à mesma região. Chamadas entre regiões diferentes falham.
  • Selecione um modelo: Confirme a região do modelo.
  • Selecione uma URL de endpoint: Escolha a URL do endpoint correspondente à região. Há suporte tanto para URLs HTTP quanto do DashScope SDK.
  • Configure uma API Key: Obtenha uma API Key para a região e configure it as an environment variable.
Os códigos de exemplo neste tópico utilizam a região Singapore.
O Alibaba Cloud Model Studio lançou domínios específicos por workspace para as regiões China (Beijing) e Singapore. Os novos domínios dedicados oferecem desempenho superior e maior estabilidade para solicitações de inferência. Recomendamos migrar para os novos domínios:
  • China (Beijing): de https://dashscope.aliyuncs.com para https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • Singapore: de https://dashscope-intl.aliyuncs.com para https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
{WorkspaceId} é o ID do seu workspace, disponível na página Workspace Details no console do Alibaba Cloud Model Studio. O domínio existente permanece totalmente funcional.

HTTP

As tarefas de edição de vídeo geralmente levam de 1 a 5 minutos. A API utiliza chamadas assíncronas com duas etapas principais: Criar uma tarefa -> Consultar o resultado.

Etapa 1: Criar uma tarefa

  • Singapore
  • Beijing
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Substitua {WorkspaceId} pelo seu workspace ID real.
  • Após criar a tarefa, use o task_id retornado para consultar o resultado. O task_id é válido por 24 horas. Não crie tarefas duplicadas. Em vez disso, faça polling para recuperar o resultado.
  • Para orientações destinadas a iniciantes, consulte Call APIs with Postman or cURL.

Parâmetros da solicitação

curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
            -H 'X-DashScope-Async: enable' \
            -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
            -H 'Content-Type: application/json' \
            -d '{
            "model": "wan2.7-videoedit",
            "input": {
                "prompt": "Convert the entire scene to a claymation style",
                "media": [
                    {
                        "type": "video",
                        "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260402/ldnfdf/wan2.7-videoedit-style-change.mp4"
                    }
                ]
            },
            "parameters": {
                "resolution": "720P",
                "prompt_extend": true,
                "watermark": true
            }
        }'
Content-Type string (Obrigatório)Tipo de conteúdo da solicitação. Deve ser application/json.
Authorization string (Obrigatório)Autentica a solicitação com uma chave de API do Model Studio. Exemplo: Bearer sk-xxxx.
X-DashScope-Async string (Obrigatório)Ativa o processamento assíncrono. Solicitações HTTP aceitam apenas chamadas assíncronas. Deve ser enable.
Se este cabeçalho de solicitação estiver ausente, o erro "current user api does not support synchronous calls" será retornado.
Corpo da solicitação
model string (Obrigatório)Nome do modelo.Valor de exemplo: wan2.7-videoedit.
input object (Obrigatório)Parâmetros de entrada, incluindo o prompt.

Propriedades

prompt string (Opcional)Descreve os elementos desejados e as características visuais no vídeo gerado.Há suporte para chinês e inglês. Cada caractere chinês ou letra inglesa conta como um caractere. Textos mais longos são truncados automaticamente.
  • wan2.7-videoedit: até 5.000 caracteres.
Valor de exemplo: Mude as roupas do personagem para um traje legal e chamativo e adicione o chapéu da imagem de referência.negative_prompt string (Opcional)Prompt negativo que descreve o conteúdo a excluir do vídeo, ajudando a refinar a saída.Há suporte para chinês e inglês. O comprimento não pode exceder 500 caracteres. Textos mais longos são truncados automaticamente.Valor de exemplo: baixa resolução, erro, melhor qualidade, baixa qualidade, desfigurado, dedos extras, proporções ruins.media array (Obrigatório)Lista de ativos de mídia, como imagens e vídeos, usados como referência para gerar o vídeo.Cada elemento no array é um objeto de mídia contendo os campos type e url.

Propriedades

type string (Obrigatório)Tipo do ativo de mídia. Valores válidos:
  • video: Obrigatório. Vídeo a editar.
  • reference_image: Opcional. Imagem de referência.
Limites de ativos:
  • Apenas um vídeo permitido.
  • Máximo de quatro imagens de referência.
url string (Obrigatório)URL, dados codificados em Base64 ou asset_id do Asset Center do ativo de mídia. Os ativos incluem vídeos e imagens.

Vídeo de entrada (type=video)

URL ou asset_id do Asset Center do arquivo de vídeo a editar.Requisitos de vídeo:
  • Formato: MP4, MOV.
  • Duração: 2–10 s.
  • Resolução: Largura e altura entre 240 e 4096 pixels.
  • Proporção: 1:8 a 8:1.
  • Tamanho do arquivo: Até 100 MB.
Formatos de entrada aceitos:
  1. URL pública:
  2. asset_id do Asset Center
    • Formato: ark_asset_vid_xxxxxx.
    • Obtenha-o no Asset Center. Escolha entre URL ou asset_id.

Imagem de entrada (type=reference_image)

URL, dados codificados em Base64 ou asset_id do Asset Center da imagem de referência.Requisitos de imagem:
  • Formato: JPEG, JPG, PNG (canal alfa não aceito), BMP, WEBP.
  • Resolução: Largura e altura entre 240 e 8000 pixels.
  • Proporção: 1:8 a 8:1.
  • Tamanho do arquivo: Até 20 MB.
Formatos de entrada aceitos:
  1. URL pública:
  2. String codificada em Base64:
    • Formato de dados: data:{MIME_type};base64,{base64_data}.
    • Valor de exemplo: data:image/png;base64,GDU7MtCZzEbTbmRZ...... (Exemplo truncado para fins de demonstração).
    Formato: data:{MIME_type};base64,{base64_data} .
    • {base64_data}: String codificada em Base64 do arquivo de imagem.
    • {MIME_type}: Tipo de mídia da imagem, que deve corresponder ao formato do arquivo.

    Formato da imagem

    Tipo MIME

    JPEG

    image/jpeg

    JPG

    image/jpeg

    PNG

    image/png

    BMP

    image/bmp

    WEBP

    image/webp

  3. asset_id do Asset Center
    • Formato: ark_asset_img_xxxxxx.
    • Obtenha-o no Asset Center. Escolha entre URL, Base64 ou asset_id.
parameters object (Opcional)Parâmetros para processamento de vídeo, como resolução, duração, reescrita inteligente de prompt e marca d'água.

Propriedades

resolution string (Opcional)Categoria de resolução do vídeo gerado, que controla sua nitidez (total de pixels).
  • wan2.7-videoedit: Valores válidos são 720P e 1080P. O valor padrão é 1080P.
ratio string (Opcional)Proporção do vídeo gerado.Comportamento:
  • Se você não especificar o parâmetro ratio, o modelo gera um vídeo com proporção semelhante à do vídeo de entrada.
  • Se você especificar o parâmetro ratio, o modelo gera um vídeo com a ratio especificada.
Valores válidos:
  • 16:9
  • 9:16
  • 1:1
  • 4:3
  • 3:4
Consulte a tabela abaixo para ver a resolução do vídeo de saída (largura × altura) para diferentes proporções.

Categoria de resolução

Proporção

Resolução do vídeo de saída (largura*altura)

720P

16:9

1280*720

9:16

720*1280

1:1

960*960

4:3

1104*832

3:4

832*1104

1080P

16:9

1920*1080

9:16

1080*1920

1:1

1440*1440

4:3

1648*1248

3:4

1248*1648

duration integer (Opcional)Duração do vídeo gerado, em segundos.Recomendação: Defina este parâmetro apenas para truncar o vídeo. Para manter a mesma duração do vídeo de entrada, omita este parâmetro ou passe o valor padrão 0.Regras de uso:
  • Comportamento padrão: O valor padrão é 0, indicando que a duração do vídeo de entrada é usada sem truncamento.
  • Truncamento: Ao passar uma duração específica, o sistema trunca o vídeo original de 0 segundos até o comprimento especificado por duration.
  • Intervalo de valores: Inteiro no intervalo [2, 10].
audio_setting string (Opcional)Configurações de som do vídeo.
  • auto (Padrão): O modelo determina inteligentemente o áudio com base no prompt. Se o prompt descrever som, um novo áudio poderá ser gerado. Caso contrário, o áudio original do ativo de entrada poderá ser mantido.
  • origin: Força a retenção do áudio original do vídeo de entrada sem regeneração.
prompt_extendboolean (Opcional)Ativa a reescrita inteligente de prompt. Quando ativado, um modelo grande reescreve o prompt de entrada, melhorando significativamente a qualidade da geração para prompts mais curtos, às custas de maior tempo de processamento.
  • true: Valor padrão. Ativa a reescrita inteligente.
  • false: Desativa a reescrita inteligente.
watermark boolean (Opcional)Indica se deve adicionar uma marca d'água. A marca d'água fica no canto inferior direito do vídeo com o texto "AI Generated".
  • false (padrão)
  • true
Exemplo: false.seed integer (Opcional)A semente de número aleatório deve ser um inteiro no intervalo [0, 2147483647].Se não especificada, uma semente aleatória é gerada. Uma semente fixa melhora a reprodutibilidade.Como a geração do modelo é probabilística, a mesma semente não garante resultados idênticos.

Parâmetros de resposta

  • Resposta bem-sucedida
  • Resposta de erro
Salve o task_id para consultar o status e o resultado da tarefa.
{
        "output": {
            "task_status": "PENDING",
            "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
        },
        "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
    }
output objectContém a saída da tarefa.

Propriedades

task_id stringID da tarefa. Válido para consultas por 24 horas.task_status stringStatus da tarefa.

Valores de enumeração

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN: A tarefa não existe ou seu status é desconhecido.
request_id stringIdentificador único da solicitação para rastreamento e solução de problemas.
code stringCódigo de erro. Retornado apenas para solicitações com falha. Consulte Error codes.
message stringMensagem de erro detalhada. Retornada apenas para solicitações com falha. Consulte Error codes.

Etapa 2: Consultar o resultado

  • Singapore
  • Beijing
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
Substitua {WorkspaceId} pelo seu workspace ID real.
  • Recomendação de polling: A geração de vídeo leva vários minutos. Utilize um mecanismo de polling com intervalo razoável, como 15 segundos.
  • Transição de estado da tarefa: PENDING → RUNNING → SUCCEEDED ou FAILED.
  • Link do resultado: Após o sucesso da tarefa, uma URL de vídeo válida por 24 horas é retornada. Baixe e salve o vídeo em armazenamento permanente, como OSS.
  • Validade do task_id: 24 horas. Após esse período, as consultas retornam o status da tarefa como UNKNOWN.

Parâmetros da solicitação

  • Consultar resultado
Substitua {task_id} pelo valor de task_id retornado pela chamada de API anterior. O task_id é válido para consultas por 24 horas, Substitua {WorkspaceId} pelo seu workspace ID real.
curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id} \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY"
Cabeçalhos
Authorization string (Obrigatório)Autentica a solicitação com uma chave de API do Model Studio. Exemplo: Bearer sk-xxxx.
Parâmetros de caminho
task_id string (Obrigatório)ID da tarefa.

Parâmetros de resposta

  • Tarefa bem-sucedida
  • Tarefa falhou
  • Consulta expirada
As URLs de vídeo são válidas apenas por 24 horas e depois removidas automaticamente. Salve os vídeos gerados prontamente.
{
    "request_id": "f16ae7e9-d518-92f8-a02c-xxxxxx",
    "output": {
        "task_id": "05e68c7e-850c-49e4-b866-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2026-04-03 00:08:03.576",
        "scheduled_time": "2026-04-03 00:08:13.408",
        "end_time": "2026-04-03 00:11:57.286",
        "orig_prompt": "Replace the girl''s clothes in the video with the clothes from the image",
        "video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?xxxx"
    },
    "usage": {
        "duration": 10.04,
        "input_video_duration": 5.02,
        "output_video_duration": 5.02,
        "video_count": 1,
        "SR": 720
    }
}
outputobjectContém a saída da tarefa.

Propriedades

task_id stringID da tarefa. Válido para consultas por 24 horas.task_status stringStatus da tarefa.

Valores de enumeração

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN: A tarefa não existe ou seu status é desconhecido.
Transições de estado durante o polling:
  • PENDING → RUNNING → SUCCEEDED ou FAILED.
  • O status inicial da consulta geralmente é PENDING ou RUNNING.
  • Quando o status muda para SUCCEEDED, a resposta contém a URL do vídeo gerado.
  • Se o status for FAILED, verifique a mensagem de erro e tente executar a tarefa novamente.
submit_time stringHorário em que a tarefa foi enviada. O horário está em UTC+8 e o formato é YYYY-MM-DD HH:mm:ss.SSS.scheduled_time stringHorário em que a tarefa foi executada. O horário está em UTC+8 e o formato é YYYY-MM-DD HH:mm:ss.SSS.end_time stringHorário em que a tarefa foi concluída. O horário está em UTC+8 e o formato é YYYY-MM-DD HH:mm:ss.SSS.video_url stringURL do vídeo gerado. Retornada apenas quando task_status é SUCCEEDED.Válida por 24 horas. O vídeo está no formato MP4 com codificação H.264.orig_prompt stringPrompt de entrada original, correspondente ao parâmetro de solicitação prompt.code stringCódigo de erro. Retornado apenas para solicitações com falha. Consulte Error codes.message stringMensagem de erro detalhada. Retornada apenas para solicitações com falha. Consulte Error codes.
usage objectEstatísticas de uso para faturamento. Cobrado apenas para tarefas bem-sucedidas.

Propriedades

input_video_duration floatDuração do vídeo de entrada, em segundos.output_video_duration floatDuração do vídeo de saída, em segundos.duration floatDuração total do vídeo, usada para faturamento.Fórmula de faturamento: duration=input_video_duration+output_video_duration.SR integerCategoria de resolução do vídeo de saída. Valor de exemplo: 720.video_count integerNúmero de vídeos gerados. Este valor é fixo em 1.
request_id stringIdentificador único da solicitação para rastreamento e solução de problemas.

DashScope SDK

Os nomes dos parâmetros no SDK são majoritariamente consistentes com a HTTP API, mas a estrutura dos parâmetros segue as convenções de cada linguagem. A edição de vídeo geralmente leva de 1 a 5 minutos. O SDK lida internamente com o processo de chamada HTTP assíncrona, aceitando tanto chamadas síncronas quanto assíncronas.
O tempo real de processamento depende do número de tarefas na fila e do status do service. Aguarde a conclusão do resultado.

Python SDK

Certifique-se de usar o DashScope Python SDK versão 1.25.16 ou posterior.Usar uma versão mais antiga pode acionar erros como "url error, please check url!". Consulte Instale o SDK para atualizar sua versão.
Defina o base_http_api_url com base na região do service:
  • Singapore
  • China (Beijing)
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
Substitua {WorkspaceId} pelo seu workspace ID real.
  • Chamada síncrona
  • Chamada assíncrona
Exemplo de solicitação
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()
Exemplo de resposta
A video_url é válida por 24 horas. Baixe o vídeo prontamente.
{
    "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
    }
}

Java SDK

Certifique-se de usar o DashScope Java SDK versão 2.22.14 ou posterior.Usar uma versão mais antiga pode acionar erros como "url error, please check url!". Consulte Instale o SDK para atualizar sua versão.
Defina o Constants.baseHttpApiUrl com base na região do service:
  • Singapore
  • China (Beijing)
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
Substitua {WorkspaceId} pelo seu workspace ID real.
  • Chamada síncrona
  • Chamada assíncrona
Exemplo de solicitação
// 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);
    }
}
Exemplo de resposta
A video_url é válida por 24 horas. Baixe o vídeo prontamente.
{
    "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": ""
}

Códigos de erro

Se uma chamada de modelo falhar, consulte Error codes para solução de problemas.
Referência da API de Geração de Texto
Geração de Imagens
  • FAQ
Áudio
API em tempo real
Incorporação de Texto
Produção de Modelos
Wan2.7 - referência da API de edição de vídeo - Alibaba Cloud Model Studio