文生视频
更新时间
6 天前
接口描述
提交文字生成视频任务。
请求
WARNING
为了让 DMXAPI 区分模型厂商,请在原 kling API 的 endpoint 基础上添加 /kling
路径,组合后的请求地址如下所示。
请求方式: POST
请求地址:
https://{api_url}/kling/v1/videos/text2video
请求参数
参数名 | 类型 | 必填 | 默认值 | 描述 |
---|---|---|---|---|
model_name | string | 可选 | kling-v1 | 模型名称,枚举值:kling-v1, kling-v1-6 |
prompt | string | 必填 | 无 | 正向文本提示词,不能超过2500个字符 |
negative_prompt | string | 可选 | 空 | 负向文本提示词,不能超过2500个字符 |
cfg_scale | float | 可选 | 0.5 | 生成视频的自由度;值越大,模型自由度越小,与提示词相关性越强。取值范围:[0, 1] |
mode | string | 可选 | std | 生成视频的模式。枚举值: - std :标准模式,基础模式,性价比高- pro :专家模式(高品质),高表现模式,生成视频质量更佳 |
aspect_ratio | string | 可选 | 16:9 | 生成视频的画面纵横比(宽:高)。枚举值:16:9, 9:16, 1:1 |
duration | string | 可选 | 5 | 生成视频时长,单位为秒。枚举值:5, 10 |
callback_url | string | 可选 | 无 | 任务结果回调通知地址,服务器会在任务状态变更时主动通知 |
external_task_id | string | 可选 | 无 | 自定义任务ID,不会覆盖系统生成的任务ID,但支持通过该ID查询任务,需保证单用户下唯一性 |
摄像机控制参数
参数名 | 类型 | 必填 | 默认值 | 描述 |
---|---|---|---|---|
camera_control | object | 可选 | 空 | 控制摄像机运动的协议(如未指定,模型将根据输入内容智能匹配) |
camera_control.type | string | 可选 | 无 | 预定义的运镜类型,枚举值: - simple :简单运镜,此类型下可在config中六选一进行运镜- down_back :镜头下压并后退 ➡️ 下移拉远- forward_up :镜头前进并上仰 ➡️ 推进上移- right_turn_forward :先右旋转后前进 ➡️ 右旋推进- left_turn_forward :先左旋并前进 ➡️ 左旋推进 |
camera_control.config | object | 可选* | 无 | 包含六个字段的对象,用于指定摄像机在不同方向上的运动。当运镜类型为simple时必填 |
camera_control.config.horizontal | float | 可选 | 无 | 水平运镜,控制摄像机在水平方向上的移动量。取值范围:[-10, 10],负值表示向左,正值表示向右 |
camera_control.config.vertical | float | 可选 | 无 | 垂直运镜,控制摄像机在垂直方向上的移动量。取值范围:[-10, 10],负值表示向下,正值表示向上 |
camera_control.config.pan | float | 可选 | 无 | 水平摇镜,控制摄像机在水平面上的旋转量。取值范围:[-10, 10],负值表示向左旋转,正值表示向右旋转 |
camera_control.config.tilt | float | 可选 | 无 | 垂直摇镜,控制摄像机在垂直面上的旋转量。取值范围:[-10, 10],负值表示向下旋转,正值表示向上旋转 |
camera_control.config.roll | float | 可选 | 无 | 旋转运镜,控制摄像机的滚动量。取值范围:[-10, 10],负值表示逆时针旋转,正值表示顺时针旋转 |
camera_control.config.zoom | float | 可选 | 无 | 变焦,控制摄像机的焦距变化。取值范围:[-10, 10],负值表示焦距变长、视野变小,正值表示焦距变短、视野变大 |
注意:在 camera_control.config 中,六个参数只能择一使用,即只能有一个参数不为0,其余参数必须为0。
代码示例
深色背景为可以修改的参数,非必选参数已经注释,可以按照自己的需求启用。
py
import http.client
import json
# 配置全局变量
API_URL = "www.dmxapi.cn" # API 节点
DMX_API_TOKEN = "sk-XXXXXXXXXXXXXX" # API 密钥
# 创建HTTP连接对象,用于后续所有API请求
conn = http.client.HTTPSConnection(API_URL)
def kling_text_generate_video():
"""调用 Kling AI 的视频生成API,提交一个视频生成任务
返回值:
task_id: 生成任务的唯一标识符,用于后续查询任务结果
"""
# 构建API请求体,包含所有视频生成参数
payload = json.dumps({
# 基础参数
"model_name": "kling-v1-6", # [可选] 模型名称,可选 kling-v1 或 kling-v1-6
"prompt": "一只可爱的卡通海豚,在海中游泳", # [必填] 正向文本提示词
# "negative_prompt": "模糊, 扭曲", # [可选] 负向文本提示词
# 生成控制参数
# "cfg_scale": 0.5, # [可选] 生成视频的自由度,取值范围:[0, 1]
# "mode": "std", # [可选] 生成模式:std(标准模式) 或 pro(专家模式)
# "aspect_ratio": "16:9", # [可选] 视频比例:16:9, 9:16, 1:1
# "duration": "5", # [可选] 视频时长(秒):5 或 10
# 摄像机控制
# "camera_control": {
# "type": "forward_up", # 预定义运镜类型
# 如果使用 simple 类型,需要配置以下参数(六选一)
# "config": {
# "horizontal": 0, # 水平运镜 [-10, 10]
# "vertical": 0, # 垂直运镜 [-10, 10]
# "pan": 5, # 水平摇镜 [-10, 10]
# "tilt": 0, # 垂直摇镜 [-10, 10]
# "roll": 0, # 旋转运镜 [-10, 10]
# "zoom": 0 # 变焦 [-10, 10]
# }
# },
# 任务控制参数
# "callback_url": "", # [可选] 回调地址
# "external_task_id": "" # [可选] 自定义任务ID
})
# 构建请求头,包含认证信息和内容类型
headers = {
'Authorization': f'Bearer {DMX_API_TOKEN}', # 使用Bearer令牌认证方式
'Content-Type': 'application/json' # 指定请求体格式为JSON
}
# 发送POST请求,路径为视频生成API端点
conn.request("POST", "/kling/v1/videos/text2video", payload, headers)
# 获取API响应并解析JSON数据
res = conn.getresponse()
json_data = json.loads(res.read().decode("utf-8"))
# print(json_data)
if json_data['code'] == 0:
# 成功则返回提交的任务 id
return json_data['data']['task_id']
else:
# 失败则返回错误信息
return json_data['message']
if __name__ == "__main__":
# 提交视频生成任务
print(kling_text_generate_video())
响应参数示例
业务码的含义请参考 业务码。
{
'code': 0, // 业务码 0 表示成功
'message': 'SUCCEED', // 消息
'request_id': 'Cl6kH2gHPegAAAAABJAWDA', // 请求ID
'data': {
'task_id': 'Cl6kH2gHPegAAAAABJAWDA', // 任务ID
'task_status': 'submitted', // 任务状态
'created_at': 1746768679809, // 创建时间
'updated_at': 1746768679809 // 更新时间
}
}