视频风格重绘 API 可将输入视频转换为多种预设艺术风格,并保证画面动态流畅、内容连贯。支持8种预设风格:日式漫画、美式漫画、清新漫画、3D卡通、国风卡通、纸艺风格、简易插画、国风水墨。
重要本文档仅适用于华北2(北京)地域。如需使用模型,需使用华北2(北京)地域的API Key。
效果示意
更多案例请参见附录:更多风格效果示意。
前提条件
在调用前,您需要获取 API Key,再配置API Key为环境变量DASHSCOPE_API_KEY。
HTTP调用
因视频处理耗时长,为避免同步请求超时,视频风格重绘采用异步调用,分为以下两步:
- 提交异步任务:通过
POST 请求提交原始视频 URL 和期望的风格参数,获取一个唯一的 task_id。
- 查询任务结果:使用
task_id 通过 GET 请求轮询任务状态,直至任务完成并获取结果视频的 URL。
步骤1:提交视频风格重绘任务
POST https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
请求 请求头(Headers) Content-Typestring(必选) 请求内容类型。此参数必须设置为application/json。 Authorizationstring(必选) 请求身份认证。接口使用阿里云百炼API Key进行身份认证。示例值:Bearer sk-xxxx。 X-DashScope-Asyncstring(必选) 异步处理配置参数。HTTP请求只支持异步,必须设置为enable。 重要缺少此请求头将报错:“current user api does not support synchronous calls”。 请求体(Request Body) modelstring(必选) 模型名称。设置为video-style-transform。 inputobject(必选) 输入内容。 属性 video_urlstring(必选) 输入视频公网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。 输入视频要求:
- 分辨率:视频单边尺寸不小于 256 像素,不超过 4096 像素。长边与短边的比例不超过 1.8。
- 格式:支持 MP4、AVI、MKV、MOV、FLV、TS、MPG、MXF。
- 时长:不超过 30 秒。
- 大小:不超过 100 MB。
- URL:若原始URL包含中文字符等非ASCII字符,请先进行URL编码。
parametersobject (可选) 视频处理参数。 属性 styleint(可选) 风格类型,预设类型如下:
- 0:日式漫画,默认值
- 1:美式漫画
- 2:清新漫画
- 3:3D卡通
- 4:国风卡通(古装输入最佳)
- 5:纸艺风格
- 6:简易插画
- 7:国风水墨
video_fpsint(可选) 生成视频的帧率,默认为15,范围区间为[15, 25]。 animate_emotionbool(可选) 是否进行面部表情优化。默认为true。 开启后,通常能提升口型与表情同步精度。在人脸区域占比较小时,关闭此项可能效果更佳。 min_lenint(可选) 指定输出视频的短边像素,用于控制分辨率。可选值为720或540,默认为720。 说明此参数值影响计费,720P视频的费用会高于540P。详情请参见计费与限流。 use_SRbool(可选) 是否对风格重绘后视频进行超分辨率(Super-Resolution,SR)处理。默认为false。设置为true,将免费提升画质。 说明若min_len设置为540,开启此项后,输出视频将提升至1080P画质,但计费仍按照540P标准。这会增加处理耗时,推荐在需要高画质输出时开启。 | 生成720P视频curl --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
}
}'
import requests
import os
DASHSCOPE_API_KEY = os.getenv("DASHSCOPE_API_KEY")
# 替换为你的视频 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())
生成540P视频curl --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
}
}'
import requests
import os
DASHSCOPE_API_KEY = os.getenv("DASHSCOPE_API_KEY")
# 替换为你的视频 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())
|
响应 outputobject 任务输出信息。 属性 task_idstring 任务id,任务的唯一标识,用于后续查询。 task_statusstring 任务状态。
- PENDING:排队中
- RUNNING:处理中
- SUSPENDED:挂起
- SUCCEEDED:执行成功
- FAILED:执行失败
request_idstring 请求唯一标识。可用于请求明细溯源和问题排查。 codestring 请求失败的错误码。请求成功时不会返回此参数,详情请参见错误码。 messagestring 请求失败的详细信息。请求成功时不会返回此参数,详情请参见错误码。 | |
步骤2:查询任务执行状态和结果
GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
重要任务结果数据(如任务状态、生成的视频URL等)有效期为24小时,超时后会被自动清除。请务必及时查询并保存结果。
请求 请求头(Headers) Authorizationstring(必选) 请求身份认证。接口使用阿里云百炼API Key进行身份认证。示例值:Bearer sk-xxxx。 URL路径参数(Path parameters) task_idstring(必选) 任务id。 | 获取任务结果您需要将{task_id}替换为真实的task_id。 |
响应 request_idstring 请求唯一标识。可用于请求明细溯源和问题排查。 outputobject 任务输出信息。 属性 output_video_urlstring 结果视频URL地址。例如:http://xxx/result.mp4。 task_id string 任务ID。查询有效期24小时。 task_statusstring 任务状态。
- PENDING:排队中
- RUNNING:处理中
- SUSPENDED:挂起
- SUCCEEDED:执行成功
- FAILED:执行失败
- UNKNOWN:任务不存在或状态未知。
submit_time string 任务提交时间。时区为UTC+8,格式为 YYYY-MM-DD HH:mm:ss.SSS。 scheduled_time string 任务执行时间。时区为UTC+8,格式为 YYYY-MM-DD HH:mm:ss.SSS。 end_time string 任务完成时间。时区为UTC+8,格式为 YYYY-MM-DD HH:mm:ss.SSS。 codestring 请求失败的错误码。请求成功时不会返回此参数,详情请参见错误码。 messagestring 请求失败的详细信息。请求成功时不会返回此参数,详情请参见错误码。 usageobject 输出信息统计。 属性 durationfloat 生成视频时长(秒)。 SRint 用于计费的视频短边像素值(该值与您请求中设置的min_len值相同)。 | 任务执行成功{
"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
}
}
任务执行中任务提交后将处于排队状态,在得到调度之后将转为运行状态,此时任务的状态为RUNNING; {
"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"
}
}
任务执行失败{
"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"
}
}
|
计费与限流
仅对执行成功的任务计费,费用根据输出视频的实际时长(秒)和所选分辨率计算。
计费公式:总费用 = 输出视频时长 (秒) × 对应分辨率的单价(最终费用将严格按照任务成功后返回的usage对象中的duration和SR字段进行结算)
模型名 | 计费单价 | 限流(主账号与RAM子账号共用) |
|---|
任务下发接口QPS限制 | 同时处理中任务数量 |
|---|
video-style-transform | 720P | $0.071677/秒 | 2 | 1 |
540P | $0.028671/秒 |
计费示例
假设您提交一个 10 秒的视频,选择 720P 分辨率进行风格转换,任务成功后生成的视频时长为 10 秒。则本次任务费用为:10 秒 × $0.071677/秒 = 0.71677 美元。
错误码
如果模型调用失败并返回报错信息,请参见错误码进行解决。
附录:更多风格效果示意
| 风格名称 | 原始视频 | 重绘效果 |
|---|
| 日式漫画(style=0) | | |
| 美式漫画(style=1) | | |
| 清新漫画(style=2) | | |
| 3D卡通(style=3) | | |
| 国风卡通(style=4) | | |
| 纸艺风格(style=5) | | |
| 简易插画(style=6) | | |
| 国风水墨(style=7) | | |