- 动作控制模型,通过统一入口
/v1/videos/generations调用 - 支持 image / video 两种人物朝向,最大时长分别为 10s / 30s
- 视频生成为异步任务,提交后返回 task_id
请求示例
curl --request POST \
--url https://api.openveer.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v2-6-motion-control",
"prompt": "保持人物面部特征一致,按参考视频完成转身挥手动作,电影感光影",
"image_url": "https://example.com/ref-image.png",
"video_url": "https://example.com/ref-video-8s.mp4",
"keep_original_sound": "yes",
"character_orientation": "image",
"mode": "std",
"watermark_info": {"enabled": false}
}'import requests
url = "https://api.openveer.com/v1/videos/generations"
payload = {
"model": "kling-v2-6-motion-control",
"prompt": "保持人物面部特征一致,按参考视频完成转身挥手动作,电影感光影",
"image_url": "https://example.com/ref-image.png",
"video_url": "https://example.com/ref-video-8s.mp4",
"keep_original_sound": "yes",
"character_orientation": "image",
"mode": "std",
"watermark_info": {"enabled": False}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())const url = "https://api.openveer.com/v1/videos/generations";
const payload = {
model: "kling-v2-6-motion-control",
prompt: "保持人物面部特征一致,按参考视频完成转身挥手动作,电影感光影",
image_url: "https://example.com/ref-image.png",
video_url: "https://example.com/ref-video-8s.mp4",
keep_original_sound: "yes",
character_orientation: "image",
mode: "std",
watermark_info: { enabled: false }
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));响应示例
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
}
]
}{
"error": {
"code": 400,
"message": "请求参数无效",
"type": "invalid_request_error"
}
}{
"error": {
"code": 401,
"message": "身份验证失败,请检查您的API密钥",
"type": "authentication_error"
}
}{
"error": {
"code": 402,
"message": "账户余额不足,请充值后再试",
"type": "payment_required"
}
}{
"error": {
"code": 429,
"message": "请求过于频繁,请稍后再试",
"type": "rate_limit_error"
}
}{
"error": {
"code": 500,
"message": "服务器内部错误,请稍后重试",
"type": "server_error"
}
}认证
Authorization string所有接口均需要使用 Bearer Token 进行认证
获取 API Key:
访问 API Key 管理页面 获取您的 API Key
使用时在请求头中添加:
Authorization: Bearer YOUR_API_KEY请求参数
model string视频生成模型名称:kling-v3-motion-control 或 kling-v2-6-motion-control
prompt string文本提示词,用于补充动作、镜头和风格要求
可选但建议填写,描述越具体结果越稳定
示例:"人物按参考视频动作起舞,动作连贯,写实风格"
image_url string参考图片 URL
需为公网可访问链接
video_url string参考视频 URL
需为公网可访问直链,建议 mp4/mov 且不超过 100MB
警告
服务端会探测 video_url 实际时长,最短为 3 秒;上限由 character_orientation 决定
keep_original_sound string是否保留参考视频原音轨
可选值:
yes:保留原音轨(默认)no:不保留原音轨
character_orientation string人物朝向控制方式
可选值:
image:以参考图人物朝向为主(参考视频时长需3~10s)video:以参考视频人物朝向为主(参考视频时长需3~30s)
mode string生成模式
可选值:
std:标准模式(速度和质量均衡)pro:高质量模式(通常更耗时)
watermark_info object水印控制对象(可选)
enabled boolean是否添加水印
* true:添加水印
* false:不添加水印(默认)
时长规则
| 参数条件 | 允许的参考视频时长 |
|---|---|
character_orientation = image |
3s ~ 10s |
character_orientation = video |
3s ~ 30s |
注意
计费时长由服务端对 video_url 探测得到的真实时长决定,而非客户端估算值。
响应
code integer响应状态码,成功时为 200
data array返回数据数组
status string任务状态,初始提交时为 submitted
task_id string任务唯一标识符,用于查询任务状态和结果
使用场景
场景 1:image 朝向(10 秒内)
{
"model": "kling-v2-6-motion-control",
"prompt": "保持人物朝向与参考图一致,完成转身和挥手动作",
"image_url": "https://example.com/ref-image.png",
"video_url": "https://example.com/ref-video-8s.mp4",
"character_orientation": "image",
"mode": "std",
"keep_original_sound": "yes",
"watermark_info": {"enabled": false}
}场景 2:video 朝向(30 秒内)
{
"model": "kling-v2-6-motion-control",
"prompt": "跟随参考视频的人物朝向和节奏,保持动作连贯",
"image_url": "https://example.com/ref-image.png",
"video_url": "https://example.com/ref-video-12s.mp4",
"character_orientation": "video",
"mode": "pro",
"keep_original_sound": "no",
"watermark_info": {"enabled": false}
}