Transforme vídeos de entrada em estilos artísticos, preservando a fluidez do movimento e a coerência do conteúdo. O serviço oferece suporte a oito estilos: mangá japonês, quadrinhos americanos, quadrinhos frescos, desenho animado 3D, desenho animado chinês, arte em papel, ilustração simples e pintura chinesa em tinta.
ImportanteEste serviço de modelo está disponível apenas na região China (Beijing). Para chamar a API, use uma chave de API desta região.
Demonstração de desempenho
**Vídeo de entrada** | **Vídeo de saída (Mangá japonês)** |
|---|---|
Para mais exemplos, consulte Apêndice: Mais demonstrações de efeitos de estilo.
Pré-requisitos
Antes de chamar a API, conclua as etapas a seguir:
- Obter uma chave de API na região China (Beijing).
- Definir a chave de API como variável de ambiente.
Como funciona
O processamento de vídeo demanda tempo; portanto, a API usa invocação assíncrona para evitar tempos limite. O fluxo de trabalho é o seguinte:
- Envie uma tarefa: Faça uma requisição
POSTcom a URL do vídeo e os parâmetros de estilo. A API retorna umtask_idexclusivo. - Consulte os resultados: Use o
task_idpara verificar o status por meio de requisiçõesGET. Quando a tarefa for concluída com sucesso, a resposta incluirá a URL do vídeo transformado.
Requisitos do vídeo de entrada
O vídeo de entrada deve atender aos seguintes requisitos:
Restrição | Requisito |
|---|---|
Resolução | Cada lado deve ter entre 256 e 4.096 pixels. A proporção (lado maior:lado menor) não pode exceder 1,8. |
Formato | MP4, AVI, MKV, MOV, FLV, TS, MPG e MXF |
Duração | Máximo de 30 segundos |
Tamanho do arquivo | Máximo de 100 MB |
Codificação de URL | Codifique URLs de vídeo que contenham caracteres não ASCII (por exemplo, caracteres chineses). |
Estilos suportados
Código do estilo | Nome do estilo | Observações |
|---|---|---|
0 | Mangá japonês | Padrão |
1 | Quadrinhos americanos | |
2 | Quadrinhos frescos | |
3 | Desenho animado 3D | |
4 | Desenho animado chinês | Ideal para entradas com trajes antigos |
5 | Estilo arte em papel | |
6 | Ilustração simples | |
7 | Pintura chinesa em tinta |
Etapa 1: Enviar uma tarefa de transformação de estilo de vídeo
POST https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Cabeçalhos da requisição
Cabeçalho | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| string | Sim | Tipo de conteúdo. Defina como |
| string | Sim | Chave de API para autenticação. Formato: |
| string | Sim | Ative o processamento assíncrono. Deve ser definido como |
Corpo da requisição
Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| string | Sim | Nome do modelo. Defina como |
| object | Sim | Conteúdo de entrada. Consulte parâmetros de entrada. |
| object | Não | Parâmetros de processamento de vídeo. Consulte parâmetros. |
parâmetros de entrada
Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| string | Sim | URL pública do vídeo de entrada. Exemplo: |
parâmetros
Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
| int | Não | 0 | Tipo de estilo. Valores válidos: 0-7. Consulte Estilos suportados para a lista completa. |
| int | Não | 15 | Taxa de quadros (quadros por segundo, FPS) do vídeo de saída. Intervalo válido: [15, 25]. |
| bool | Não | true | Indica se as expressões faciais devem ser otimizadas. Ativar esta opção geralmente melhora a sincronia labial e das expressões. Para áreas faciais pequenas, desativar pode melhorar os resultados. |
| int | Não | 720 | Contagem de pixels do lado menor do vídeo de saída, que controla a resolução. Valores válidos: |
| bool | Não | false | Indica se o processamento de super-resolução (SR) deve ser aplicado após a transformação de estilo. Melhora a qualidade do vídeo sem custo adicional. Definir |
Exemplos de requisição
Gerar um vídeo de 720p
curlcurl --location --request POST 'https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "video-style-transform",
"input": {
"video_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250704/viwndw/%E5%8E%9F%E8%A7%86%E9%A2%91.mp4"
},
"parameters": {
"style": 0,
"video_fps": 15
}
}'
Python
import requests
import os
DASHSCOPE_API_KEY = os.getenv("DASHSCOPE_API_KEY")
# Replace this with your video URL
video_url = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250704/viwndw/%E5%8E%9F%E8%A7%86%E9%A2%91.mp4"
response = requests.post(
"https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis",
headers={
"Authorization": f"Bearer {DASHSCOPE_API_KEY}",
"X-DashScope-Async": "enable",
},
json={
"model": "video-style-transform",
"input": {
"video_url": video_url
},
"parameters": {
"style": 0,
"video_fps": 15
}
}
)
print(response.json())
Gerar um vídeo de 540p
curlcurl --location --request POST 'https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "video-style-transform",
"input": {
"video_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250704/viwndw/%E5%8E%9F%E8%A7%86%E9%A2%91.mp4"
},
"parameters": {
"style": 0,
"video_fps": 15,
"min_len": 540
}
}'
Python
import requests
import os
DASHSCOPE_API_KEY = os.getenv("DASHSCOPE_API_KEY")
# Replace this with your video URL
video_url = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250704/viwndw/%E5%8E%9F%E8%A7%86%E9%A2%91.mp4"
response = requests.post(
"https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis",
headers={
"Authorization": f"Bearer {DASHSCOPE_API_KEY}",
"X-DashScope-Async": "enable",
},
json={
"model": "video-style-transform",
"input": {
"video_url": video_url
},
"parameters": {
"style": 0,
"video_fps": 15,
"min_len": 540
}
}
)
print(response.json())
Resposta
Resposta de sucesso
{
"output": {
"task_id": "xxxxxxxx",
"task_status": "PENDING"
},
"request_id": "7574ee8f-38a3-4b1e-9280-11c33ab46e51"
}
Resposta de erro
{
"code": "InvalidApiKey",
"message": "Invalid API-key provided.",
"request_id": "fb53c4ec-1c12-4fc4-a580-xxxxxxxxxxxx"
}
Parâmetros da resposta
Parâmetro | Tipo | Descrição |
|---|---|---|
| object | Informações de saída da tarefa. |
| string | ID exclusivo da tarefa assíncrona. Use este ID para consultar o status e os resultados da tarefa. |
| string | Status da tarefa. Valores possíveis: |
| string | ID exclusivo da requisição. Use este ID para rastrear e solucionar problemas. |
| string | Código de erro. Retornado apenas quando a requisição falha. Para detalhes, consulte Mensagens de erro. |
| string | Detalhes do erro. Retornado apenas quando a requisição falha. Para detalhes, consulte Mensagens de erro. |
Etapa 2: Consultar o status e o resultado da tarefa
GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
ImportanteOs dados de resultado da tarefa (status e URL do vídeo) são válidos por 24 horas e depois removidos automaticamente. Consulte e salve os resultados prontamente.
Cabeçalhos da requisição
Cabeçalho | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| string | Sim | Chave de API para autenticação. Formato: |
Parâmetros de caminho
Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| string | Sim | ID da tarefa retornado na Etapa 1. |
Exemplos de requisição
Substitua {task_id} pelo task_id real obtido na resposta de envio da tarefa.
curl -X GET \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
Python
import requests
import os
DASHSCOPE_API_KEY = os.getenv("DASHSCOPE_API_KEY")
# Replace task_id with your task_id
task_id = "0c9c33e6-b2e7-41e5-*********"
task_response = requests.get(
f"https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}",
headers={
"Authorization": f"Bearer {DASHSCOPE_API_KEY}"
})
print(task_response.json())
Resposta
Tarefa concluída com sucesso
{
"request_id": "b67df059-ca6a-9d51-afcd-xxxxxxxxxxxx",
"output": {
"task_id": "d76ec1e8-ea27-4038-8913-xxxxxxxxxxxx",
"task_status": "SUCCEEDED",
"submit_time": "2024-05-16 13:50:01.247",
"scheduled_time": "2024-05-16 13:50:01.354",
"end_time": "2024-05-16 13:50:27.795",
"output_video_url": "http://xxx/result.mp4"
},
"usage": {
"duration": 3,
"SR": 720
}
}
Tarefa em execução
As tarefas enviadas entram em fila e depois são agendadas. O status muda para RUNNING quando a tarefa é agendada.
{
"request_id": "e5d70b02-ebd3-98ce-9fe8-xxxxxxxxxxxx",
"output": {
"task_id": "13b1848b-5493-4c0e-xxxxxxxxxxxx",
"task_status": "RUNNING",
"submit_time": "2025-09-08 15:53:13.143",
"scheduled_time": "2025-09-08 15:53:13.169"
}
}
Falha na tarefa
{
"request_id": "dccfdf23-b38e-97a6-a07b-xxxxxxxxxxxx",
"output": {
"task_id": "4cbabbdf-2c1f-43f4-b983-xxxxxxxxxxxx",
"task_status": "FAILED",
"submit_time": "2024-05-16 14:15:14.103",
"scheduled_time": "2024-05-16 14:15:14.154",
"end_time": "2024-05-16 14:15:14.694",
"code": "InvalidParameter.FileDownload",
"message": "download for input video error"
}
}
Parâmetros da resposta
Parâmetro | Tipo | Descrição |
|---|---|---|
| string | ID exclusivo da requisição. Use este ID para rastrear e solucionar problemas. |
| object | Informações de saída da tarefa. |
| string | ID da tarefa. Válido por 24 horas. |
| string | Status da tarefa. Valores possíveis: |
| string | Horário em que a tarefa foi enviada. Fuso horário UTC+8. Formato: |
| string | Horário em que a tarefa começou a ser executada. Fuso horário UTC+8. Formato: |
| string | Horário em que a tarefa foi concluída. Fuso horário UTC+8. Formato: |
| string | URL do vídeo transformado. Retornada apenas quando |
| string | Código de erro. Retornado apenas quando |
| string | Detalhes do erro. Retornados apenas quando |
| object | Estatísticas de uso da tarefa. Retornadas apenas quando |
| float | Duração do vídeo gerado em segundos. |
| int | Valor em pixels do lado menor do vídeo, usado para faturamento. Este valor corresponde ao valor de |
Faturamento e limites de taxa
A cobrança ocorre apenas para tarefas bem-sucedidas. A taxa é calculada com base na duração do vídeo de saída (segundos) e na resolução selecionada.
Fórmula de faturamento: Taxa total = Duração do vídeo de saída (segundos) x Preço unitário para a resolução correspondente
A taxa final é calculada a partir dos campos
durationeSRno objetousage.
Preços
Modelo | Resolução | Preço unitário |
|---|---|---|
video-style-transform | 720p | $0,071677/segundo |
video-style-transform | 540p | $0,028671/segundo |
Limites de taxa
Os limites de taxa são compartilhados entre contas e usuários RAM.
Tipo de limite | Valor |
|---|---|
Consultas por segundo (QPS) para a API de envio de tarefas | 2 |
Tarefas simultâneas | 1 |
Exemplo de faturamento
Exemplo: Envie um vídeo de 10 segundos com resolução de 720p. Se a tarefa for bem-sucedida, a taxa será: 10 segundos × $0,071677/segundo = $0,71677.
Códigos de erro
Se a chamada do modelo falhar e retornar uma mensagem de erro, consulte Códigos de erro para obter a solução.
Apêndice: Mais demonstrações de efeitos de estilo
Nome do estilo | Vídeo original | Vídeo transformado |
|---|---|---|
Mangá japonês (style=0) | ||
Quadrinhos americanos (style=1) | ||
Quadrinhos frescos (style=2) | ||
Desenho animado 3D (style=3) | ||
Desenho animado chinês (style=4) | ||
Estilo arte em papel (style=5) | %E6%B1%BD%E8%BD%A6%E8%8D%89%E5%8E%9F_%E7%BA%B8%E8%89%BA%E9%A3%8E%E6%A0%BC.mp4 | |
Ilustração simples (style=6) | ||
Pintura chinesa em tinta (style=7) |
.inline-code___exakR {
font-family: monospace;
background-color: #f5f5f5;
padding: 2px 4px;
border-radius: 3px;
}