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. |
|
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
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
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.
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 comotrue(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. |
Á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. |
Á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"
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 explicitamenteaudio=false. Mesmo se você passar umaaudio_url, a saída permanecerá silenciosa quandoaudio=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 |
|
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.
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
resolutionconfigurada.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
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.


