Transforme videos de entrada en estilos artísticos conservando el movimiento fluido y la coherencia del contenido. Admite ocho estilos: manga japonés, cómic estadounidense, cómic fresco, caricatura 3D, caricatura china, arte en papel, ilustración simple y pintura china de tinta y aguada.
ImportanteEste servicio de modelo está disponible solo en la región China (Beijing). Debe usar una clave de API de esta región para realizar llamadas a la API.
Demostración de rendimiento
| Video de entrada | Video de salida (Manga japonés) |
|---|---|
| %E5%8E%9F%E8%A7%86%E9%A2%91.mp4 | input_00002_%E6%BC%AB%E7%94%BBV4_00001.mp4 |
Para más ejemplos, consulte Apéndice: Más demostraciones de efectos de estilo.
Requisitos previos
Antes de realizar una llamada a la API, complete estos pasos:
- Obtenga una clave de API de la región China (Pekín).
- Configure la clave de API como una variable de entorno.
Funcionamiento
El procesamiento de video consume mucho tiempo, por lo que la API utiliza invocación asíncrona para evitar tiempos de espera. El flujo de trabajo:
- Enviar una tarea: Envíe una solicitud
POSTcon la URL del video y los parámetros de estilo. La API devuelve untask_idúnico. - Consultar resultados: Use
task_idpara verificar el estado mediante solicitudesGET. Cuando la tarea tiene éxito, la respuesta incluye la URL del video transformado.
Requisitos del video de entrada
Su video de entrada debe cumplir con los siguientes requisitos:
| Restricción | Requisito |
|---|---|
| Resolución | Cada lado debe tener de 256 a 4,096 píxeles. La relación de aspecto (mayor:menor) no puede exceder 1.8. |
| Formato | MP4, AVI, MKV, MOV, FLV, TS, MPG y MXF |
| Duración | 30 segundos máximo |
| Tamaño del archivo | 100 MB máximo |
| Codificación URL | Codifique en URL las direcciones URL de video que contengan caracteres no ASCII (por ejemplo, caracteres chinos). |
Estilos compatibles
| Código de estilo | Nombre del estilo | Notas |
|---|---|---|
| 0 | Manga japonés | Valor predeterminado |
| 1 | Cómic estadounidense | |
| 2 | Cómic fresco | |
| 3 | Dibujo animado 3D | |
| 4 | Dibujo animado chino | Ideal para entradas con trajes antiguos |
| 5 | Estilo de arte en papel | |
| 6 | Ilustración simple | |
| 7 | Pintura china de tinta y aguada |
Paso 1: Enviar una tarea de transformación de estilo de video
POST https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Encabezados de solicitud
| Encabezado | Tipo | Obligatorio | Descripción |
|---|---|---|---|
Content-Type | string | Sí | El tipo de contenido. Establézcalo en application/json. |
Authorization | string | Sí | Clave de API para autenticación. Formato: Bearer sk-xxxx (Clave de API de Model Studio). |
X-DashScope-Async | string | Sí | Habilita el procesamiento asíncrono. Debe establecerse en enable. Las solicitudes HTTP solo admiten procesamiento asíncrono. Si falta, la API devuelve el error: "current user api does not support synchronous calls". |
Cuerpo de la solicitud
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
model | string | Sí | El nombre del modelo. Establézcalo en video-style-transform. |
input | object | Sí | El contenido de entrada. Consulte parámetros de entrada. |
parameters | object | No | Los parámetros de procesamiento de video. Consulte parámetros. |
parámetros de entrada
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
video_url | string | Sí | La URL pública del video de entrada. Ejemplo: https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250704/viwndw/%E5%8E%9F%E8%A7%86%E9%A2%91.mp4. El video debe cumplir con los requisitos del video de entrada. |
parámetros
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
style | int | No | 0 | El tipo de estilo. Valores válidos: 0-7. Consulte Estilos compatibles para ver la lista completa. |
video_fps | int | No | 15 | La tasa de fotogramas (fotogramas por segundo, FPS) del video de salida. Rango válido: [15, 25]. |
animate_emotion | bool | No | true | Indica si se deben optimizar las expresiones faciales. Habilitar esta opción generalmente mejora la sincronización labial y la sincronización de expresiones. Para áreas faciales pequeñas, deshabilitarla puede mejorar los resultados. |
min_len | int | No | 720 | El recuento de píxeles del lado más corto del video de salida, que controla la resolución. Valores válidos: 720 y 540. Este parámetro afecta la facturación: un video de 720p cuesta más que un video de 540p. Para obtener más información, consulte Facturación y limitación de tasa. |
use_SR | bool | No | false | Indica si se debe aplicar procesamiento de superresolución (SR) después de la transformación de estilo. Mejora la calidad del video sin costo adicional. Establecer min_len en 540 con SR habilitado actualiza la salida a 1080p mientras se factura a la tarifa de 540p. Esto aumenta el tiempo de procesamiento y se recomienda para una salida de alta calidad. |
Ejemplos de solicitud
Generar un video 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())
Generar un video 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())
Respuesta
Respuesta exitosa
{
"output": {
"task_id": "xxxxxxxx",
"task_status": "PENDING"
},
"request_id": "7574ee8f-38a3-4b1e-9280-11c33ab46e51"
}
Respuesta de error
{
"code": "InvalidApiKey",
"message": "Invalid API-key provided.",
"request_id": "fb53c4ec-1c12-4fc4-a580-xxxxxxxxxxxx"
}
Parámetros de respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
output | object | La información de salida de la tarea. |
output.task_id | string | El ID único para la tarea asíncrona. Utilice este ID para consultar el estado y los resultados de la tarea. |
output.task_status | string | El estado de la tarea. Valores posibles: PENDING, RUNNING, SUSPENDED, SUCCEEDED, FAILED. |
request_id | string | El ID único de la solicitud. Utilice este ID para rastrear y solucionar problemas. |
code | string | El código de error. Se devuelve solo cuando la solicitud falla. Para obtener más información, consulte Mensajes de error. |
message | string | Los detalles del error. Se devuelven solo cuando la solicitud falla. Para obtener más información, consulte Mensajes de error. |
Paso 2: Consultar el estado y el resultado de la tarea
GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
ImportanteLos datos de resultado de la tarea (estado y URL del video) son válidos durante 24 horas y luego se eliminan automáticamente. Consulte y guarde los resultados a tiempo.
Encabezados de solicitud
| Encabezado | Tipo | Obligatorio | Descripción |
|---|---|---|---|
Authorization | string | Sí | Clave de API para autenticación. Formato: Bearer sk-xxxx (Clave de API de Model Studio). |
Parámetros de ruta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
task_id | string | Sí | El ID de tarea devuelto del Paso 1. |
Ejemplos de solicitud
Reemplace {task_id} con el task_id real de la respuesta de envío de la tarea.
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())
Respuesta
Tarea exitosa
{
"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
}
}
Tarea en ejecución
Las tareas enviadas se ponen en cola y luego se programan. El estado cambia a RUNNING cuando se programa.
{
"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"
}
}
Tarea fallida
{
"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 de respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
request_id | string | El ID único de la solicitud. Utilice este ID para rastrear y solucionar problemas. |
output | object | La información de salida de la tarea. |
output.task_id | string | El ID de la tarea. Válido durante 24 horas. |
output.task_status | string | El estado de la tarea. Valores posibles: PENDING, RUNNING, SUSPENDED, SUCCEEDED, FAILED, UNKNOWN. |
output.submit_time | string | La hora en que se envió la tarea. Zona horaria UTC+8. Formato: YYYY-MM-DD HH:mm:ss.SSS. |
output.scheduled_time | string | La hora en que la tarea comenzó a ejecutarse. Zona horaria UTC+8. Formato: YYYY-MM-DD HH:mm:ss.SSS. |
output.end_time | string | La hora en que se completó la tarea. Zona horaria UTC+8. Formato: YYYY-MM-DD HH:mm:ss.SSS. |
output.output_video_url | string | La URL del video transformado. Se devuelve solo cuando task_status es SUCCEEDED. Ejemplo: http://xxx/result.mp4. |
output.code | string | El código de error. Se devuelve solo cuando task_status es FAILED. Para obtener más información, consulte Mensajes de error. |
output.message | string | Los detalles del error. Se devuelven solo cuando task_status es FAILED. Para obtener más información, consulte Mensajes de error. |
usage | object | Estadísticas de uso de la tarea. Se devuelve solo cuando task_status es SUCCEEDED. |
usage.duration | float | La duración del video generado en segundos. |
usage.SR | int | El valor en píxeles del lado más corto del video, utilizado para la facturación. Este valor coincide con el valor min_len que estableció en la solicitud. |
Facturación y limitación de tasa
Se cobra solo por tareas exitosas. La tarifa se calcula según la duración del video de salida (segundos) y la resolución seleccionada.
Fórmula de facturación: Total fee = Output video duration (seconds) x Unit price for the corresponding resolution
La tarifa final se calcula a partir de los campos
durationySRen el objetousage.
Precios
| Modelo | Resolución | Precio unitario |
|---|---|---|
| video-style-transform | 720p | $0.071677/segundo |
| video-style-transform | 540p | $0.028671/segundo |
Límites de tasa
Límites de tasa compartidos entre cuentas y usuarios de RAM.
| Tipo de límite | Valor |
|---|---|
| Consultas por segundo (QPS) para la API de envío de tareas | 2 |
| Tareas concurrentes | 1 |
Ejemplo de facturación
Ejemplo: Envíe un video de 10 segundos con resolución 720p. Si la tarea tiene éxito, la tarifa es: 10 seconds × $0.071677/second = $0.71677.
Códigos de error
Si la llamada al modelo falla y devuelve un mensaje de error, consulte Códigos de error para su resolución.
Apéndice: Más demostraciones de efectos de estilo
| Nombre del estilo | Video original | Video transformado |
|---|---|---|
| Manga japonés (style=0) | %E5%8E%9F%E8%A7%86%E9%A2%91.mp4 | input_00002_%E6%BC%AB%E7%94%BBV4_00001.mp4 |
| Cómic estadounidense (style=1) | car_%E5%8E%9F%E5%9B%BE.mp4 | car_style_1.mp4 |
| Cómic fresco (style=2) | %E6%8C%A5%E6%89%8B_%E5%8E%9F%E5%9B%BE.mp4 | %E6%8C%A5%E6%89%8B_style_2.mp4 |
| 3D dibujo animado (style=3) | %E9%87%8E%E9%A4%90_%E5%8E%9F%E5%9B%BE.mp4 | %E9%87%8E%E9%A4%90_style_3.mp4 |
| Dibujo animado chino (style=4) | %E5%BC%B9%E7%90%B4_%E5%8E%9F%E5%9B%BE.mp4 | %E5%BC%B9%E7%90%B4_style_4.mp4 |
| Estilo de arte en papel (style=5) | %E7%94%9F%E6%88%90_%E6%B1%BD%E8%BD%A6.mp4 | %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 |
| Ilustración simple (style=6) | %E6%A1%8C%E9%9D%A2_%E5%8E%9F%E5%9B%BE.mp4 | %E6%A1%8C%E9%9D%A2_style_6.mp4 |
| Pintura china de tinta y aguada (style=7) | %E5%8F%A4%E9%95%87_%E5%8E%9F%E5%9B%BE.mp4 | %E5%8F%A4%E9%95%87_style_7.mp4 |