Kling 4.0 Video Edit API
kwaivgi/kling-v4.0/video-editKling 4.0 Video Edit 依据文字指令改造一段 3–30 秒的已有视频,可在 720p 或 1080p 下重设风格、替换物体或加入新元素。它保留你要求保留的原有节奏、人物与运镜,同时把修改应用到每一帧。
拖拽文件、粘贴剪贴板素材,或输入 URL。 必填。1 个 MP4、MOV 或 WebM 源视频,3–30 秒,不超过 100 MB。
1/1 个素材
拖拽文件、粘贴剪贴板素材,或输入 URL。 最多 10 张图片,在提示词中以 @Image1、@Image2… 引用。
切换到 JSON 可添加图片类 kling_elements。
REST API
快速开始
三步完成第一次 Kling 4.0 Video Edit 调用。示例把午后街道改成雪夜并保持源视频时长,返回 task_id。
连接 Vidgo API
创建 API Key,将它安全保存在服务端,并通过 Authorization 请求头以 Bearer Token 发送。
- 接口地址
- POST
https://api.vidgo.ai/api/generate/submit - 认证方式
- Authorization: Bearer VIDGO_API_KEY
提交一个生成任务
运行短示例,提供 video_url 与编辑 prompt;省略 duration 即与源视频等长。
curl --request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "kwaivgi/kling-v4.0/video-edit",
"input": {
"prompt": "Turn the afternoon street in this video into a snowy winter evening: settle a thin layer of snow on rooftops, cars and the pavement, add gently falling flakes and warm light in the shop windows. Keep the people, their movement and the camera path exactly as in the source. No text, no logos, no watermark.",
"resolution": "720p",
"video_url": "https://cdn.vidgo.ai/apis/models/kwaivgi/kling-v4.0/video-edit/v1/02/input-source.mp4"
}
}'等待并获取结果
使用返回的 task_id 查询同一个任务,直到状态变为 finished 或 failed;成功后读取 data.files[].file_url。
查询状态
GET https://api.vidgo.ai/api/generate/status/{task_id}当状态为 not_started 或 running 时,建议每隔数秒查询一次;到达 finished 或 failed 后停止。成功时从 data.files[].file_url 读取视频地址;生成较长视频时可逐步拉长间隔,也可在提交请求根层添加 callback_url 异步接收结果。
not_startedrunningfinishedfailed{
"code": 200,
"data": {
"task_id": "HSB8M64LBPQ54HHW",
"status": "not_started",
"created_time": "2026-11-05T07:05:29"
}
}{
"code": 200,
"data": {
"task_id": "HSB8M64LBPQ54HHW",
"status": "finished",
"files": [
{
"file_url": "https://cdn.vidgo.ai/apis/models/kwaivgi/kling-v4.0/video-edit/v2/01/output-01.mp4",
"file_type": "video"
}
],
"created_time": "2026-11-05T07:05:29",
"error_message": null,
"progress": 100
}
}完整可运行示例
理解上面的三步流程后再展开。这里把提交、轮询、终态处理和结果读取合并在一个脚本中。
set -euo pipefail
: "${VIDGO_API_KEY:?Set VIDGO_API_KEY in your environment}"
REQUEST_BODY=$(cat <<'JSON'
{
"model": "kwaivgi/kling-v4.0/video-edit",
"input": {
"prompt": "Turn the afternoon street in this video into a snowy winter evening: settle a thin layer of snow on rooftops, cars and the pavement, add gently falling flakes and warm light in the shop windows. Keep the people, their movement and the camera path exactly as in the source. No text, no logos, no watermark.",
"resolution": "720p",
"video_url": "https://cdn.vidgo.ai/apis/models/kwaivgi/kling-v4.0/video-edit/v1/02/input-source.mp4"
}
}
JSON
)
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
TASK_ID=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.data.task_id // .task_id // empty')
if [ -z "$TASK_ID" ]; then
printf 'Submit response did not include task_id:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
while true; do
STATUS_RESPONSE=$(curl --silent --show-error --fail-with-body \
--url "https://api.vidgo.ai/api/generate/status/$TASK_ID" \
--header "Authorization: Bearer $VIDGO_API_KEY")
STATUS=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.data.status // .status // empty')
case "$STATUS" in
finished)
printf '%s' "$STATUS_RESPONSE" | jq -r '(.data.files // .files // [])[]?.file_url'
break
;;
failed)
printf '%s' "$STATUS_RESPONSE" | jq -r '.data.error_message // .error_message // "Generation failed"' >&2
exit 1
;;
not_started|running)
sleep 2
;;
*)
printf 'Unexpected task status: %s
' "$STATUS" >&2
exit 1
;;
esac
done请求参数
model 和 callback_url 位于请求根层;生成参数位于 input。
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| model | string | 是 | — | 固定为 kwaivgi/kling-v4.0/video-edit。 |
| callback_url | string (URL) | 否 | — | 用于接收任务结果的公开 HTTP(S) 地址,任务结束时推送。 |
| input | object | 是 | — | 生成参数:video_url 与 prompt,以及可选的 duration、resolution、reference_image_urls 和图片类 kling_elements。 |
| input.prompt | string | 是 | — | 编辑指令,1–26,000 个字符。 |
| input.video_url | string | 是 | — | 源视频 URL,3–30 秒,≤100 MB,由服务端测量。 |
| input.reference_image_urls | string[] | 否 | — | ≤10 个图片 URL。 |
| input.kling_elements | object[] | 否 | — | 图片元素:element_input_urls(2–4 张)。 |
| input.duration | integer | 否 | 源视频时长 | 3–30 秒;省略时等于源视频时长。 |
| input.resolution | string | 否 | 720p | 720p 或 1080p。 |
响应字段
提交响应会立即返回任务标识;随着任务推进,状态响应会补充进度、输出文件或失败信息。
| 字段 | 类型 | 说明 |
|---|---|---|
| code | integer | 应用层结果码,成功响应使用 0 或 200。 |
| message | string | 存在时返回便于阅读的响应或错误信息。 |
| data.task_id | string | 任务标识,用于拼接状态查询地址。 |
| data.status | string | 当前状态:not_started、running、finished 或 failed。 |
| data.created_time | string | 任务创建时间,采用日期时间格式。 |
| data.progress | number | 上游提供进度时返回的完成百分比。 |
| data.files[] | array | 任务成功后返回的生成文件列表。 |
| data.files[].file_url | string | 生成视频的公开访问地址。 |
| data.files[].file_type | string | 生成文件类型,例如 video。 |
| data.files[].watermark_url | string | null | 存在水印版本时返回对应地址。 |
| data.error_message | string | null | status 为 failed 时的失败详情。 |
任务生命周期
not_started 与 running 属于非终态;finished 与 failed 是两种终态,收到任意终态后都应停止轮询。
not_started任务已被接受,正在等待排队开始。
running视频正在生成中,请保持轮询查询。
finished任务完成,从 data.files[].file_url 读取视频地址。
failed生成失败,读取 data.error_message 了解原因并停止轮询。
轮询与错误处理
- 认证失败401 表示 Bearer API Key 缺失或无效,请在控制台确认密钥后重试。
- 参数校验400 表示请求字段不合法或属于其他端点,请检查video_url 时长(3–30 秒)以及 kling_elements 是否为图片元素。
- 轮询间隔任务运行期间建议每隔数秒查询一次;生成较长视频时可逐步拉长间隔。
- 终态处理仅在 not_started 或 running 时继续轮询;收到 finished 或 failed 即停止。
- 回调方式在请求根层添加 callback_url,即可在任务结束时接收结果推送,无需持续轮询。
模型规格
| 规格 | 取值 | 说明 |
|---|---|---|
| 模型 | kwaivgi/kling-v4.0/video-edit | 基于文本指令编辑已有视频的模型标识。 |
| 时长 | 3–30 | 整数秒,默认等于源视频时长。 |
| 分辨率 | 720p | 1080p | 默认 720p。 |
| 价格 | 17 / 25.5 credits/s | 对应 720p / 1080p 每计费秒;计费秒数 = 输出 + max(输出, 源视频时长)。 |
相关模型
Kling 4.0 Video Edit API 常见问题
Kling 4.0 Video Edit API 是什么?
Kling 4.0 Video Edit 是快手用于以文本指令编辑已有视频的模型,由可灵 AI 于 2026 年 10 月发布。它接收一段 3–30 秒的源视频与 prompt,并可加入参考图片和图片元素,以 720p 或 1080p 返回带立体声的编辑结果。模型在整段视频中应用所要求的修改,同时保留你指定保留的动作、节奏与运镜。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。
Kling 4.0 Video Edit 如何计费?
720p 每计费秒 17 点数,1080p 每计费秒 25.5 点数。计费秒数为输出时长加上输出时长与源视频时长(向上取整)中的较大者,因此对 10 秒源视频做 10 秒编辑计费 20 秒:720p 为 340 点数($1.70)。
Kling 4.0 Video Edit 不填 duration 时如何计价?
输出与源视频等长,计费使用的输出时长为源视频时长向上取整。因此 7.4 秒的源视频计费 8 + 8 = 16 秒,720p 为 272 点数。
Kling 4.0 Video Edit 的源视频可以多长?
源视频须为 3–30 秒、不超过 100 MB。服务端会在任务开始前下载并测量时长。
Kling 4.0 Video Edit 能使用参考图片吗?
可以。加入最多 10 个 reference_image_urls,或用同一主体 2–4 张图片组成的图片类 kling_elements,并在提示词中以 @Image1 或 @Element1 引用,准确指明要出现的内容。
Kling 4.0 Video Edit 如何保持人物与动作不变?
在提示词中与修改内容一并写明,例如“人物、动作与运镜保持与源视频完全一致”,并把指令限定在需要改变的部分。
Kling 4.0 Video Edit 输出哪些分辨率?
可选择默认的 720p 或 1080p。输出沿用源视频画幅,分辨率决定每秒费率。















