Todos os produtos
Search
Central de documentação

Alibaba Cloud Model Studio:image-to-video - based on first frame

Última atualização: Jul 14, 2026

O modelo Wan de imagem para vídeo aceita entrada multimodal (texto, imagem ou áudio) e gera vídeos de até 15 segundos com resolução 1080P.

  • Configurações básicas: Aceita durações de vídeo inteiras de 2 a 15 segundos, resolução configurável (480P, 720P ou 1080P), reescrita inteligente de prompts e marca d'água opcional.

  • Recursos de áudio: Permite dublagem automática ou upload de arquivo de áudio para sincronização audiovisual. (Compatível com Wan 2.5 e Wan 2.6)

  • Narrativa multi-cena: Gera vídeos com múltiplas cenas e mantém a consistência do sujeito nas transições. (Compatível apenas com Wan 2.6)

Acesso rápido: Experiência online (Singapore|Virginia|Beijing)| Referência da API

Primeiros passos

Prompt de entrada

Imagem do primeiro quadro de entrada

Vídeo de saída (Multi-cena, Vídeo com áudio)

A câmera sobe lentamente por baixo da tartaruga, que nada graciosamente, com os detalhes de sua barriga claramente visíveis.

wan-i2v-haigui

Antes de invocar a API, obtenha sua chave de API e host da API e, em seguida, configure a chave da API como variável de ambiente (este método foi descontinuado e integrado à configuração da chave da API). Para invocar a API com o SDK, instale o DashScope SDK.

Substitua {WorkspaceId} pelo seu Workspace ID real.

Python SDK

Importante

Certifique-se de que a versão do DashScope Python SDK seja pelo menos 1.25.8 antes de executar o código abaixo.

Versões anteriores podem gerar erros como “url error, please check url!”. Consulte Instalar SDK para atualizar.

import os
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope

# 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'
# API keys vary by region. Get an API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY", "YOUR_API_KEY")

print('please wait...')
rsp = VideoSynthesis.call(api_key=api_key,
                          model='wan2.6-i2v-flash',
                          prompt='The camera slowly moves up from below the turtle, which swims gracefully, its belly details clearly visible.',
                          img_url="https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260121/zlpocv/wan-i2v-haigui.webp",
                          resolution="720P",
                          duration=10,
                          shot_type="multi",
                          prompt_extend=True,
                          watermark=True)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
    print("video_url:", rsp.output.video_url)
else:
    print('Failed, status_code: %s, code: %s, message: %s' % (rsp.status_code, rsp.code, rsp.message))

Java SDK

Importante

Certifique-se de que a versão do DashScope Java SDK seja pelo menos 2.22.6 antes de executar o código abaixo.

Versões anteriores podem gerar erros como “url error, please check url!”. Consulte Instalar SDK para atualizar.

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;

public class Image2Video {

    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 the environment variable, replace the following line with your Model Studio API key: apiKey="sk-xxx"
    // API keys vary by region. Get an API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    public static void image2video() throws ApiException, NoApiKeyException, InputRequiredException {
        VideoSynthesis vs = new VideoSynthesis();
        VideoSynthesisParam param =
                VideoSynthesisParam.builder()
                        .apiKey(apiKey)
                        .model("wan2.6-i2v-flash")
                        .prompt("The camera slowly moves up from below the turtle, which swims gracefully, its belly details clearly visible.")
                        .imgUrl("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260121/zlpocv/wan-i2v-haigui.webp")
                        .duration(10)
                        .resolution("720P")
                        .shotType("multi")
                        .promptExtend(true)
                        .watermark(true)
                        .build();
        System.out.println("please wait...");
        VideoSynthesisResult result = vs.call(param);
        System.out.println(JsonUtils.toJson(result));
    }

    public static void main(String[] args) {
        try {
            image2video();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

curl

Etapa 1: Crie uma tarefa para obter o ID da tarefa

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.6-i2v-flash",
    "input": {
        "prompt": "The camera slowly moves up from below the turtle, which swims gracefully, its belly details clearly visible.",
        "img_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260121/zlpocv/wan-i2v-haigui.webp"
    },
    "parameters": {
        "resolution": "720P",
        "prompt_extend": true,
        "watermark": true,
        "duration": 10,
        "shot_type":"multi"
    }
}'

Etapa 2: Obtenha os resultados usando o ID da tarefa

Substitua {task_id} pelo valor task_id retornado pela chamada de API anterior. O task_id permanece válido para consultas por 24 horas.

curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id} \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"

Exemplo de saída

A video_url é válida por 24 horas. Baixe o vídeo prontamente.
{
    "request_id": "c1209113-8437-424f-a386-xxxxxx",
    "output": {
        "task_id": "966cebcd-dedc-4962-af88-xxxxxx",
        "task_status": "SUCCEEDED",
        "video_url": "https://dashscope-result-sh.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx",
         ...
    },
    ...
}

Escopo

  • Os modelos compatíveis variam por região. Os recursos são isolados entre regiões. Para verificar os modelos disponíveis em cada região, consulte o console do Model Studio.

  • Ao fazer uma chamada, certifique-se de que seu modelo, URL do endpoint e chave da API pertençam todos à mesma região. Chamadas entre regiões falham.

Nota

O código de exemplo neste tópico aplica-se à região Singapore.

Capacidades principais

Criar vídeos multi-cena

Modelos compatíveis: Wan 2.6 series models.

Descrição do recurso: O modelo alterna automaticamente entre cenas — como de planos abertos para close-ups — sendo ideal para produção de videoclipes musicais.

Configuração de parâmetros:

  • shot_type: Defina como "multi".

  • prompt_extend: Defina como true (ative a reescrita inteligente para otimizar as descrições das cenas).

Prompt de entrada

Imagem do primeiro quadro de entrada

Vídeo de saída (Wan 2.6, Vídeo multi-cena)

Uma cena de arte urbana fantástica. Um personagem dinâmico de grafite. Um menino feito de tinta spray ganha vida em uma parede de concreto. Ele canta um rap em inglês em ritmo muito acelerado, assumindo uma pose clássica e enérgica de rapper. A cena ocorre à noite, sob uma ponte ferroviária urbana. A iluminação vem de um único poste de luz, criando uma atmosfera cinematográfica, cheia de alta energia e detalhes impressionantes. A parte de áudio do vídeo consiste inteiramente em rap, sem outros diálogos ou ruídos de fundo.

rap-转换自-png

Áudio de entrada:

Substitua {WorkspaceId} pelo seu Workspace ID real.

Python SDK

Certifique-se de que a versão do DashScope SDK for Python seja pelo menos 1.25.8 . Para instruções sobre como atualizar, consulte Instalando o SDK .
import os
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope

# 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 the environment variable, replace the following line with your Model Studio API key: api_key="sk-xxx"
# API keys vary by region. Get an API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")

def sample_async_call_i2v():
    # Asynchronous invocation returns a task ID
    rsp = VideoSynthesis.async_call(api_key=api_key,
                                    model='wan2.6-i2v-flash',
                                    prompt='An urban fantasy art scene. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at a very fast pace, striking a classic, energetic rapper pose. The scene is set at night under an urban railway bridge. The lighting comes from a single street lamp, creating a cinematic atmosphere, full of high energy and amazing detail. The audio part of the video consists entirely of rap, with no other dialogue or background noise.',
                                    img_url="https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png",
                                    audio_url="https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3",
                                    resolution="720P",
                                    duration=10,
                                    shot_type="multi", # Multi-shot
                                    prompt_extend=True,
                                    watermark=True,
                                    negative_prompt="",
                                    seed=12345)
    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))

    # 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_i2v()

Java SDK

Certifique-se de que a versão do DashScope Java SDK seja pelo menos 2.22.6 . Para atualizar o SDK, consulte Instalar o SDK .
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;

public class Image2Video {
    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 the environment variable, replace the following line with your Model Studio API key: apiKey="sk-xxx"
    // API keys vary by region. Get an API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    // Set input image URL
    static String imgUrl = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png";
    // Set audio URL
    static String audioUrl = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3";

    public static void image2video() throws ApiException, NoApiKeyException, InputRequiredException {
        VideoSynthesis vs = new VideoSynthesis();
        VideoSynthesisParam param =
                VideoSynthesisParam.builder()
                        .apiKey(apiKey)
                        .model("wan2.6-i2v-flash")
                        .prompt("An urban fantasy art scene. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at a very fast pace, striking a classic, energetic rapper pose. The scene is set at night under an urban railway bridge. The lighting comes from a single street lamp, creating a cinematic atmosphere, full of high energy and amazing detail. The audio part of the video consists entirely of rap, with no other dialogue or background noise.")
                        .imgUrl(imgUrl)
                        .audioUrl(audioUrl)
                        .shotType("multi")
                        .duration(10)
                        .resolution("720P")
                        .negativePrompt("")
                        .promptExtend(true)
                        .watermark(true)
                        .seed(12345)
                        .build();
        // Asynchronous invocation
        VideoSynthesisResult task = vs.asyncCall(param);
        System.out.println(JsonUtils.toJson(task));
        System.out.println("please wait...");

        // Get results
        VideoSynthesisResult result = vs.wait(task, apiKey);
        System.out.println(JsonUtils.toJson(result));
    }

    public static void main(String[] args) {
        try {
            image2video();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

curl

Etapa 1: Crie uma tarefa para obter o ID da tarefa

Etapa 2: Obtenha o resultado pelo ID da tarefa

Substitua {task_id} pelo valor task_id retornado pela chamada de API anterior. O task_id permanece válido para consultas por 24 horas.

curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id} \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"

Alcançar sincronização audiovisual

Modelos compatíveis: wan2.5 and wan2.6 series models.

Descrição do recurso: Faz personagens em fotos falarem ou cantarem com movimentos labiais sincronizados ao áudio. Para mais exemplos, consulte Geração de som para vídeo.

Configuração de parâmetros:

  • Arquivo de áudio de entrada: Forneça uma audio_url. O modelo sincroniza os movimentos labiais com base no arquivo de áudio.

  • Dublagem automática: Não forneça uma audio_url. Por padrão, a saída é um vídeo com som. O modelo gera automaticamente efeitos sonoros de fundo, música ou vocais com base nos elementos visuais.

Prompt de entrada

Imagem do primeiro quadro de entrada

Vídeo de saída (Vídeo com som)

Uma cena de arte urbana fantástica. Um personagem dinâmico de grafite. Um adolescente pintado com tinta spray ganha vida em uma parede de concreto. Ele canta um rap em inglês em ritmo muito acelerado, assumindo uma pose clássica e enérgica de rapper. A cena ocorre à noite, sob uma ponte ferroviária urbana. A luz de um único poste cria uma atmosfera cinematográfica, cheia de alta energia e detalhes impressionantes. A parte de áudio do vídeo consiste inteiramente em rap, sem outros diálogos ou ruídos.

rap-转换自-png

Áudio de entrada:

Substitua {WorkspaceId} pelo seu Workspace ID real.

Python SDK

Certifique-se de que a versão do DashScope SDK for Python seja pelo menos 1.25.8 . Para instruções sobre como atualizar, consulte Instalando o SDK .
import os
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope

# 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 the environment variable, replace the following line with: api_key="sk-xxx" using your Model Studio API key.
# API keys vary by region. Get your API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")

def sample_async_call_i2v():
    # Asynchronous invocation, returns a task_id
    rsp = VideoSynthesis.async_call(api_key=api_key,
                                    model='wan2.6-i2v-flash',
                                    prompt='A scene of urban fantasy art. A dynamic graffiti character. A teenager painted with spray paint comes to life from a concrete wall. He raps in English at a very fast pace, striking a classic, energetic rapper pose. The scene is set at night under an urban railway bridge. Light from a solitary streetlamp creates a cinematic atmosphere, full of high energy and stunning detail. The audio portion of the video consists entirely of rap, with no other dialogue or noise.',
                                    img_url="https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png",
                                    audio_url="https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3",
                                    resolution="720P",
                                    duration=10,
                                    prompt_extend=True,
                                    watermark=True,
                                    negative_prompt="",
                                    seed=12345)
    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))

    # 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_i2v()

Java SDK

Certifique-se de que a versão do DashScope Java SDK seja pelo menos 2.22.6 . Para atualizar o SDK, consulte Instalar o SDK .
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;

public class Image2Video {
    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 the environment variable, replace the following line with: apiKey="sk-xxx" using your Model Studio API key.
    // API keys vary by region. Get your API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    // Set input image URL
    static String imgUrl = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png";
    // Set audio URL
    static String audioUrl = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3";

    public static void image2video() throws ApiException, NoApiKeyException, InputRequiredException {
        VideoSynthesis vs = new VideoSynthesis();
        VideoSynthesisParam param =
                VideoSynthesisParam.builder()
                        .apiKey(apiKey)
                        .model("wan2.6-i2v-flash")
                        .prompt("A scene of urban fantasy art. A dynamic graffiti character. A teenager painted with spray paint comes to life from a concrete wall. He raps in English at a very fast pace, striking a classic, energetic rapper pose. The scene is set at night under an urban railway bridge. Light from a solitary streetlamp creates a cinematic atmosphere, full of high energy and stunning detail. The audio portion of the video consists entirely of rap, with no other dialogue or noise.")
                        .imgUrl(imgUrl)
                        .audioUrl(audioUrl)
                        .duration(10)
                        .resolution("720P")
                        .negativePrompt("")
                        .promptExtend(true)
                        .watermark(true)
                        .seed(12345)
                        .build();
        // Asynchronous invocation
        VideoSynthesisResult task = vs.asyncCall(param);
        System.out.println(JsonUtils.toJson(task));
        System.out.println("please wait...");

        // Get result
        VideoSynthesisResult result = vs.wait(task, apiKey);
        System.out.println(JsonUtils.toJson(result));
    }

    public static void main(String[] args) {
        try {
            image2video();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

curl

Etapa 1: Crie uma tarefa para obter o ID da tarefa

Input Audio File

Automatic Dubbing

Etapa 2: Obtenha os resultados com base no ID da tarefa

Substitua {task_id} pelo valor task_id retornado pela chamada de API anterior. O task_id permanece válido para consultas por 24 horas.

curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id} \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"

Step 1: Create a task to get the task ID

Automatic Dubbing

Input Audio File

Tab 2 Body

Step 2: Get results based on the task ID

Gerar vídeos silenciosos

Modelos compatíveis: wan2.6-i2v-flash, wan2.2 series models, wan2.1 series models.

Descrição do recurso: Utilize vídeos silenciosos para cenários puramente visuais que não exigem áudio, como pôsteres animados ou curtas-metragens mudos.

Configuração de parâmetros:

  • wan2.6-i2v-flash: Gera vídeos com áudio por padrão. Para gerar um vídeo silencioso, defina explicitamente audio=false. Mesmo se você passar uma audio_url, a saída permanecerá silenciosa quando audio=false. A cobrança é feita para vídeos silenciosos.

  • wan2.2 and earlier models: Geram vídeos silenciosos por padrão. Nenhuma configuração extra é necessária.

Prompt

Imagem do primeiro quadro de entrada

Vídeo de saída (vídeo silencioso)

Um gato corre na grama

image

Substitua {WorkspaceId} pelo seu Workspace ID real.

Python SDK

Certifique-se de que a versão do DashScope SDK for Python seja pelo menos 1.25.8 . Para instruções sobre como atualizar, consulte Instalando o SDK .
import os
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope

# 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 set an environment variable, replace the next line with: api_key="sk-xxx"
# API keys differ by region. Get your API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")

def sample_async_call_i2v():
    # Call asynchronously. Returns a task_id.
    rsp = VideoSynthesis.async_call(api_key=api_key,
                                    model='wan2.6-i2v-flash',
                                    prompt='A cat runs on grass',
                                    img_url="https://cdn.translate.alibaba.com/r/wanx-demo-1.png",
                                    audio=False,   # Set to False to generate a silent video.
                                    resolution="720P",
                                    duration=5,
                                    prompt_extend=True,
                                    watermark=True,
                                    negative_prompt="",
                                    seed=12345)
    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))

    # 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_i2v()

Java SDK

Certifique-se de que a versão do DashScope Java SDK seja pelo menos 2.22.6 . Para atualizar o SDK, consulte Instalar o SDK .
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;

public class Image2Video {
    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 set an environment variable, replace the next line with: apiKey="sk-xxx"
    // API keys differ by region. Get your API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    public static void image2video() throws ApiException, NoApiKeyException, InputRequiredException {
        VideoSynthesis vs = new VideoSynthesis();
        VideoSynthesisParam param =
                VideoSynthesisParam.builder()
                        .apiKey(apiKey)
                        .model("wan2.6-i2v-flash")
                        .prompt("A cat runs on grass")
                        .imgUrl("https://cdn.translate.alibaba.com/r/wanx-demo-1.png")
                        .audio(false)   /*Set to false to generate a silent video.*/
                        .duration(10)
                        .resolution("720P")
                        .negativePrompt("")
                        .promptExtend(true)
                        .watermark(true)
                        .seed(12345)
                        .build();
        // Call asynchronously.
        VideoSynthesisResult task = vs.asyncCall(param);
        System.out.println(JsonUtils.toJson(task));
        System.out.println("please wait...");

        // Get the result.
        VideoSynthesisResult result = vs.wait(task, apiKey);
        System.out.println(JsonUtils.toJson(result));
    }

    public static void main(String[] args) {
        try {
            image2video();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

curl

Etapa 1: Crie uma tarefa para obter um ID de tarefa

wan2.6-i2v-flash

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.6-i2v-flash",
    "input": {
        "prompt": "A cat runs on grass",
        "img_url": "https://cdn.translate.alibaba.com/r/wanx-demo-1.png"
    },
    "parameters": {
        "audio": false,
        "resolution": "720P",
        "prompt_extend": true,
        "watermark": true,
        "duration": 5
    }
}'

wan2.2 and earlier models

Etapa 2: Obtenha o resultado usando o ID da tarefa

Substitua {task_id} pelo valor task_id retornado pela chamada de API anterior. O task_id permanece válido para consultas por 24 horas.

curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id} \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"

Como passar imagens e áudio

Imagem de entrada

  • Quantidade de imagens: Uma.

  • Métodos de entrada: URL da imagem, caminho de arquivo local ou string codificada em Base64.

Método 1: URL da imagem (interface HTTP e SDK) Recomendado

  • URL pública: Aceita protocolos HTTP ou HTTPS.

    • Valor de exemplo: https://help-static-aliyun-doc.aliyuncs.com/xxx.png.

Método 2: Caminho de arquivo local (apenas SDK)

Os requisitos de caminho de arquivo diferem ligeiramente entre Python e Java. Siga rigorosamente as regras abaixo para formatar o caminho.

Python SDK: Aceita caminhos absolutos e relativos. As regras de caminho de arquivo são as seguintes:

Sistema operacional

Caminho do arquivo de entrada

Exemplo (caminho absoluto)

Exemplo (caminho relativo)

Linux / macOS

file://{absolute_or_relative_path_of_the_file}

file:///home/images/test.png

file://./images/test.png

Windows

file://D:/images/test.png

file://./images/test.png

Java SDK: Aceita apenas caminhos absolutos. As regras de caminho de arquivo são as seguintes:

Sistema operacional

Caminho do arquivo de entrada

Exemplo (caminho absoluto)

Linux / macOS

file://{absolute_path_of_the_file}

file:///home/images/test.png

Windows

file:///{absolute_path_of_the_file}

file:///D:/images/test.png

Método 3: String codificada em Base64 (interface HTTP e SDK)

  • Valor de exemplo: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDg...... (O exemplo foi truncado apenas para fins de demonstração).

  • Requisitos de formato: Siga o formato data:{MIME_type};base64,{base64_data}, onde:

    • {base64_data}: A string codificada em Base64 do arquivo de imagem.

    • {MIME_type}: O tipo MIME (Multipurpose Internet Mail Extensions) da imagem. 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

Código de exemplo: Três métodos de entrada

Python SDK

Java SDK

Áudio de entrada

  • Quantidade de arquivos de áudio: Um.

  • Métodos de entrada:

    • URL pública: Aceita o protocolo HTTP ou HTTPS.

Vídeo de saída

  • Quantidade de vídeos: 1.

  • Especificações do vídeo de saída: As especificações de saída variam conforme o modelo. Para mais informações, consulte Escopo.

  • Período de validade da URL do vídeo de saída: 24 horas.

  • Dimensões do vídeo de saída: As dimensões dependem da imagem de entrada e da resolution configurada.

    • O modelo tenta manter a proporção da imagem de entrada enquanto a escala para uma contagem total de pixels próxima ao valor alvo. Para cumprir os padrões de codificação, a largura e a altura devem ser múltiplos de 16. O modelo ajusta automaticamente as dimensões.

    • Por exemplo: Para uma imagem de entrada de 750 × 1.000 pixels (proporção 3:4 = 0,75) com resolução definida como "720P" (contagem alvo de pixels de cerca de 920.000), a saída final pode ser de 816 × 1.104 pixels (proporção ≈ 0,739, total de pixels ≈ 900.000). Tanto a largura quanto a altura são múltiplos de 16.

Faturamento e limitação

  • Para a cota gratuita e preços do modelo, consulte Preços dos modelos.

  • Para limitação do modelo, consulte Série Wan.

  • Detalhes de faturamento:

    • As entradas não são cobradas. As saídas são cobradas com base na duração em segundos dos vídeos gerados com sucesso.

    • Invocações de modelo com falha ou falhas de processamento não incorrem em taxas e não consomem a cota gratuita para novos usuários.

    • Imagem para vídeo também aceita planos de economia.

Referência da API

Referência da API de imagem para vídeo (primeiro quadro)

FAQ

P: Por que não consigo definir a proporção do vídeo diretamente (como 16:9)?

R: A API atual não permite definir a proporção do vídeo diretamente. Configure apenas a resolução do vídeo usando o parâmetro resolution.

O parâmetro resolution controla o número total de pixels — não uma proporção fixa. O modelo preserva a proporção original do primeiro quadro de entrada (aproximadamente) e depois a ajusta para atender aos requisitos de codificação de vídeo. Especificamente, tanto a largura quanto a altura devem ser múltiplos de 16.

P: Por que o código do SDK retorna “url error, please check url!”?

R: Certifique-se de que:

  • Sua versão do DashScope Python SDK seja pelo menos 1.25.8.

  • Sua versão do DashScope Java SDK seja pelo menos 2.22.6.

Se a versão do seu SDK for muito antiga, você poderá ver o erro “url error, please check url!”. Para instruções, consulte Atualizando o SDK.