对口型
PinduCloud 提供本页所列接口。请求使用 PinduCloud API Key;模型开通情况以当前账号的可用模型为准,参数按本页对应型号的协议组织。
POST 创建或管理请求可通过 model_name 选择账号已开通的可灵型号;未传时读取 model,两者都省略时使用 kling-v1。即使接口参数表未列出模型字段,也需确保账号已开通所选型号及对应能力。
人脸识别
POST https://video.pinducloud.com.cn/kling/v1/videos/identify-face
识别视频中的人脸以进行对口型处理。
请求头
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Content-Type | string | 是 | application/json | 数据交换格式 |
Authorization | string | 是 | Bearer sk-your-pinducloud-token,使用 PinduCloud API Key |
请求体
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
video_id | string | 否 | 通过可灵 AI 生成的视频的 ID - 用于指定视频、判断视频是否可用于对口型服务 - 与 video_url 参数二选一填写,不能同时为空,也不能同时有值 - 仅支持使用 30 天内生成的时长不超过 60 秒的视频 | |
video_url | string | 否 | 所上传视频的获取 URL - 用于指定视频,并判断视频是否可用于对口型服务 - 与 video_id 参数二选一填写,不能同时为空,也不能同时有值 - 视频文件支持 .mp4/.mov,文件大小不超过 100MB,视频时长不超过 60s 且不短于 2s,仅支持 720p 和 1080p、长宽的边长均位于 512px~2160px 之间,上述校验不通过会返回错误码等信息 - 系统会校验视频内容,如有问题会返回错误码等信息 |
请求示例
curl --request POST \
--url https://video.pinducloud.com.cn/kling/v1/videos/identify-face \
--header 'Authorization: Bearer sk-your-pinducloud-token' \
--header 'Content-Type: application/json' \
--data '{
"video_url": "https://p1-kling.klingai.com/kcdn/cdn-kcdn112452/kling-qa-test/kling20260206mp4.mp4",
"video_id": ""
}'
响应示例
{
"code": 0, // 错误码;错误详情见 message 字段
"message": "string", // 错误信息
"request_id": "string", // 请求ID,系统生成,用于跟踪请求、排查问题
"data": {
"session_id": "id", // 会话ID
"final_unit_deduction": "string", // 任务服务原生积分信息;本站实际扣费以使用日志为准
"face_data": [ //人脸数据列表
{
"face_id": "string", // 人脸ID
"face_image": "url", // 人脸图片URL
"start_time": 0, // 人脸出现开始时间,单位ms
"end_time": 5200 //人脸出现结束时间,单位ms
}
]
}
}
创建任务
POST https://video.pinducloud.com.cn/kling/v1/videos/advanced-lip-sync
请求头
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Content-Type | string | 是 | application/json | 数据交换格式 |
Authorization | string | 是 | Bearer sk-your-pinducloud-token,使用 PinduCloud API Key |
请求体
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
session_id | string | 是 | 会话 ID,会基于对口型人脸识别接口生成 | |
face_choose | array | 是 | 指定人脸对口型 - 包括人脸 ID、口型参考等内容等 - 暂时仅支持指定单人对口型 | |
face_id | string | 是 | 人脸 ID - 由人脸识别接口返回 | |
audio_id | string | 否 | 通过试听接口生成的音频的 ID - 仅支持使用 30 天内生成的、时长不短于 2 秒且不超过 60 秒的音频 - audio_id、sound_file 参数二选一,不能同时为空,也不能同时有值 | |
sound_file | string | 否 | 音频文件 - 支持传入音频 Base64 编码或图音频 URL(确保可访问) - 音频文件支持 .mp3/.wav/.m4a/.aac,文件大小不超过 5MB,格式不匹配或文件过大会返回错误码等信息 - 仅支持使用时长不短于 2 秒且不长于 60 秒的音频 - audio_id、sound_file 参数二选一,不能同时为空,也不能同时有值 - 系统会校验音频内容,如有问题会返回错误码等信息 | |
sound_start_time | long | 是 | 音频裁剪起点时间 - 以原始音频开始时间为准,开始时间为 0 分 0 秒,单位 ms - 起点之前的音频会被裁剪,裁剪后音频不得短于 2 秒 | |
sound_end_time | long | 是 | 音频裁剪终点时间 - 以原始音频开始时间为准,开始时间为 0 分 0 秒,单位 ms - 终点之后的音频会被裁剪,裁剪后音频不得短于 2 秒 - 终点时间不得晚于原始音频总时长 | |
sound_insert_time | long | 是 | 裁剪后音频插入时间 - 以视频开始时间为准,视频开始时间为 0 分 0 秒,单位 ms - 插入音频的时间范围与该人脸可对口型时间区间至少重合 2 秒时长 - 插入音频的开始时间不得早于视频开始时间,插入音频的结束时间不得晚于视频结束时间 | |
sound_volume | float | 否 | 1 | 音频音量大小;值越大,音量越大 - 取值范围:[0, 2] |
original_audio_volume | float | 否 | 1 | 原始视频音量大小;值越大,音量越大 - 取值范围:[0, 2] - 原视频无声时,当前参数无效果 |
watermark_info | object | 否 | 是否同时生成含水印的结果 - 通过enabled参数定义,具体格式如下: - true 为生成,false 为不生成 - 暂不支持自定义水印 | |
external_task_id | string | 否 | 自定义任务 ID - 用户自定义任务 ID,传入不会覆盖系统生成的任务 ID,本站任务查询仍使用创建响应返回的公开任务 ID - 请注意,单用户下需要保证唯一性 | |
callback_url | string | 否 | 本次任务结果回调地址,发送给任务服务;是否投递及消息格式以实际服务行为为准 - 查询接口用于确认最终任务状态,请保留创建响应中的任务 ID |
参数格式说明
watermark_info
{
"watermark_info": { "enabled": true }
}
请求示例
curl --request POST \
--url https://video.pinducloud.com.cn/kling/v1/videos/advanced-lip-sync \
--header 'Authorization: Bearer sk-your-pinducloud-token' \
--header 'Content-Type: application/json' \
--data '{
"session_id": "850508686686064678",
"face_choose": [
{
"face_id": "0",
"sound_file": "https://p1-kling.klingai.com/kcdn/cdn-kcdn112452/kling-qa-test/go-to-world.mp3",
"sound_insert_time": 1000,
"sound_start_time": 0,
"sound_end_time": 3000,
"sound_volume": 2,
"original_audio_volume": 2
}
],
"external_task_id": "",
"callback_url": ""
}'
响应示例
{
"code": 0, // 错误码;错误详情见 message 字段
"message": "string", // 错误信息
"request_id": "string", // 请求ID,系统生成,用于跟踪请求、排查问题
"data": {
"task_id": "string", // 任务ID,系统生成
"task_info": { //任务创建时的参数信息
"external_task_id": "string" //客户自定义任务ID
},
"task_status": "string", // 任务状态,枚举值:submitted(已提交)、processing(处理中)、succeed(成功)、failed(失败)
"created_at": 1722769557708, // 任务创建时间,Unix时间戳、单位ms
"updated_at": 1722769557708 //任务更新时间,Unix时间戳、单位ms
}
}
查询任务(单个)
GET https://video.pinducloud.com.cn/kling/v1/videos/advanced-lip-sync/{id}
请求头
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Content-Type | string | 否 | application/json | GET 查询不携带 JSON 请求体,可省略此头 |
Authorization | string | 是 | Bearer sk-your-pinducloud-token,使用 PinduCloud API Key |
请求示例
curl --request GET \
--url https://video.pinducloud.com.cn/kling/v1/videos/advanced-lip-sync/{task_id} \
--header 'Authorization: Bearer sk-your-pinducloud-token'
响应示例
{
"code": 0, // 错误码;错误详情见 message 字段
"message": "string", // 错误信息
"request_id": "string", // 请求ID,系统生成,用于跟踪请求、排查问题
"data": {
"task_id": "string", // 任务ID,系统生成
"task_status": "string", // 任务状态,枚举值:submitted(已提交)、processing(处理中)、succeed(成功)、failed(失败)
"task_status_msg": "string", // 任务状态信息,当任务失败时展示失败原因(如触发平台的内容风控等)
"task_info": { //任务创建时的参数信息
"parent_video": { //原始视频信息
"id": "string", // 原始视频ID
"url": "string", // 原始视频URL
"duration": "string" //原始视频时长,单位s
}
},
"task_result": { //任务结果
"videos": [ //生成的视频列表
{
"id": "string", // 生成的视频ID;全局唯一
"url": "string", // 生成视频的URL(请注意,为下载地址可能有有效期,请及时转存)
"watermark_url": "string", // 含水印视频下载URL,防盗链格式
"duration": "string" //视频总时长,单位s
}
]
},
"watermark_info": {
"enabled": true //是否启用水印
},
"final_unit_deduction": "string", // 任务服务原生积分信息;本站实际扣费以使用日志为准
"created_at": 1722769557708, // 任务创建时间,Unix时间戳、单位ms
"updated_at": 1722769557708 //任务更新时间,Unix时间戳、单位ms
}
}
查询任务(列表)
列表仅返回当前用户在该接口创建的任务。响应使用本站的 items 分页结构;每项 data 保留原生任务字段,task_id 为本站公开任务 ID。外层 created_at 使用 Unix 秒,原生 data 内的时间单位见字段注释。
查询参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
pageNum | integer | 否 | 1 | 页码,范围 1–500 |
pageSize | integer | 否 | 20 | 每页数量,范围 1–500 |
filter.model | string | 否 | 按原版模型名称筛选 | |
filter.task_ids | string | 否 | 按公开任务 ID 筛选;重复传入参数指定多个 ID,最多 100 个 |
GET https://video.pinducloud.com.cn/kling/v1/videos/advanced-lip-sync
请求头
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Content-Type | string | 否 | application/json | GET 查询不携带 JSON 请求体,可省略此头 |
Authorization | string | 是 | Bearer sk-your-pinducloud-token,使用 PinduCloud API Key |
请求示例
curl --request GET \
--url 'https://video.pinducloud.com.cn/kling/v1/videos/advanced-lip-sync?pageNum=1&pageSize=30' \
--header 'Authorization: Bearer sk-your-pinducloud-token'
响应示例
{
"items": [{
"task_id": "task-example",
"platform": "kling",
"action": "advanced_lip_sync",
"status": "SUCCESS",
"progress": "100%",
"fail_reason": "",
"created_at": 1722769557,
"data": {
"code": 0,
// 错误码;错误详情见 message 字段
"message": "string",
// 错误信息
"request_id": "string",
// 请求ID,系统生成,用于跟踪请求、排查问题
"data": {
"task_id": "task-example",
// 任务ID,系统生成
"task_status": "succeed",
// 任务状态,枚举值:submitted(已提交)、processing(处理中)、succeed(成功)、failed(失败)
"task_status_msg": "string",
// 任务状态信息,当任务失败时展示失败原因(如触发平台的内容风控等)
"task_info": {
//任务创建时的参数信息
"parent_video": {
//原始视频信息
"id": "string",
// 原始视频ID
"url": "string",
// 原始视频URL
"duration": "string" //原始视频时长,单位s
}
},
"task_result": {
//任务结果
"videos": [
//生成的视频列表
{
"id": "string",
// 生成的视频ID;全局唯一
"url": "string",
// 生成视频的URL(请注意,为下载地址可能有有效期,请及时转存)
"watermark_url": "string",
// 含水印视频下载URL,防盗链格式
"duration": "string" //视频总时长,单位s
}]
},
"watermark_info": {
"enabled": true //是否启用水印
},
"final_unit_deduction": "string",
// 任务服务原生积分信息;本站实际扣费以使用日志为准
"created_at": 1722769557708,
// 任务创建时间,Unix时间戳、单位ms
"updated_at": 1722769557708 //任务更新时间,Unix时间戳、单位ms
}
}
}],
"total": 1,
"page_num": 1,
"page_size": 30
}