Kling V4
根据文本、按时间顺序排列的画面帧,或参考图、参考视频、参考声音和命名元素,生成 720p 或 1080p、时长 3–30 秒、自带生成音频的视频;按秒计费。
- 异步:创建请求返回任务 ID,任务成功后才能拿到视频。
- 四种输入方式:纯文本、画面帧(按时间顺序排列的
images)、参考图 / 参考视频 / 参考声音,以及最多七个命名的elements。画面帧不能与参考素材或元素一起使用。 - 在提示词里为每个输入写上引用:
@image_1、@video_1、@voice_1、@加元素名、@first_frame、@keyframe_1和@last_frame。每个@都必须对应同一请求中的输入。 - 视频始终带有生成的音频。
keep_original_sound改为保留参考视频自身的声音。 duration为 3 到 30 秒(默认 5),分辨率为720p(默认)或1080p。按所选分辨率下的视频秒数计费;失败的任务不收费。
在调试窗口里打开本模型,填入你的 BeatAPI API 密钥即可创建任务。调用是真实的,费用从你自己的余额中扣除。
模型 ID
这个端点上有两个 Kling 生成模型。下表数值直接取自网关契约;只有 Kling V4 接受参考素材、两张以上的画面帧和最多七个元素。
接口与鉴权
POST https://api.beatapi.io/v1/videos/tasks
Authorization
string
必需
你的 BeatAPI API 密钥,以 Bearer <BEATAPI_API_KEY> 形式发送。在控制台创建密钥。密钥只能保存在你的服务端,不要放进浏览器或移动端应用。
请求体使用 JSON,并设置 Content-Type: application/json。Idempotency-Key 为可选:每个逻辑请求发送一个唯一值(最长 255 个字符),仅在重试完全相同的请求体时复用。24 小时内,用相同的键和请求体重试会再次返回第一次的响应,并带上 Idempotent-Replayed: true;相同的键搭配不同的请求体则返回 409 idempotency_conflict。非 2xx 的响应不会被保存,因此 400 或 402 之后的重试会重新执行。
请求流程
等待任务完成
调用 GET /v1/tasks/{task_id},两次调用之间等待 data.poll_after_seconds 秒(图片 5 秒,视频 8 秒),直到 status 为 succeeded 或 failed。也可以为 task.succeeded 和 task.failed 注册 Webhook;仍需保留轮询作为兜底,因为因处理超时而终止的任务不会发送事件。
输入模式
请求参数
model
string
必需
要运行的模型。
取值:kling-v4
取值有误时
- 未传:
"model" is required - 把图片模型发到了这个端点:
"model" nano-banana-2 is served by POST /v1/images/tasks, not this endpoint
prompt
string
必需
视频里发生什么:主体、动作、运镜、风格和声音,并用 @ 引用写明每个输入。
长度:1–5000 个字符
- 长度按字符数计算(一个中日韩字符算一个字符)。
- 引用方式:
reference_images是@image_1、@image_2…,reference_videos是@video_1…,reference_audios是@voice_1…,元素是@加它的name。画面帧是@first_frame、@keyframe_1、@keyframe_2… 和@last_frame。 - 每个
@都必须对应同一请求中的输入。编号引用或画面帧引用找不到对应输入时(例如只传了两张参考图却写了@image_3,或只传了一张图却写了@last_frame),创建任务时会被拒绝。
取值有误时
- 未传:
"prompt" is required - 为空或超过长度上限:
"prompt" has an unsupported length - 引用了请求中没有的输入:
the prompt names @image_3, which this request does not send
images
string[]
可选
按时间顺序排列的画面帧:一个链接是首帧,两个是首帧和尾帧,更多则在两者之间加入中间帧。
数量:1–10
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 有三个或更多链接时,
images[0]是首帧,最后一个链接是尾帧,中间的链接是中间帧:images[1]是@keyframe_1,images[2]是@keyframe_2,依此类推。 - 图片数最多比视频秒数多一张(
duration+ 1;不传duration时按 5 秒算),且无论如何不超过 10 张。 - 画面帧不能与
reference_images、reference_videos、reference_audios、elements或aspect_ratio一起传:视频沿用首帧的画面比例。
取值有误时
- 多于 10 个链接:
"images" accepts at most 10 items - 链接数超过
duration+ 1(此例为 5 秒视频传了 7 个链接):Kling V4 takes at most 6 images for a 5-second video - 与任一 reference_* 字段同时传入:
Cannot combine "images" with reference inputs in one task - 与
elements同时传入:Kling V4 cannot combine elements with images - 与
aspect_ratio同时传入:Kling V4 takes the first frame's shape; do not send aspect_ratio with images - 不是 https:// 链接:
"images[0]" must be a public HTTPS URL
reference_images
string[]
可选
引导视频内容、角色、商品或风格的图片。在提示词里按列表顺序写成 @image_1、@image_2 …。
数量:1–10
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 不能与
images一起使用。 - 计入参考素材与元素合计 15 个的上限。
取值有误时
- 超过上限:
"reference_images" accepts at most 10 items - 参考素材与元素合计超过 15 个:
Kling V4 takes at most 15 reference inputs and elements together
reference_videos
string[]
可选
用来借鉴动作、运镜或内容的视频。在提示词里按列表顺序写成 @video_1、@video_2 …。
数量:1–5
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 每段 2 到 30 秒,所有片段合计不超过 30 秒。网关在创建任务前会逐段测量,超出限制的片段会被拒绝,并在报错中指明是哪一段。
- 参考视频与视频元素合计最多 5 个,并计入参考素材与元素合计 15 个的上限。
- 成片默认带生成的音频;传
keep_original_sound: true则保留参考视频自身的声音。
取值有误时
- 超过上限:
"reference_videos" accepts at most 5 items - 某段短于 2 秒或长于 30 秒:
reference_videos[0] is 35 seconds long; this model takes reference video of 2 to 30 seconds. - 所有片段合计超过 30 秒:
The reference videos run 36 seconds in total; this model takes at most 30. - 参考视频与视频元素合计超过 5 个:
Kling V4 takes at most 5 reference videos and video elements together
reference_audios
string[]
可选
视频中使用的声音。在提示词里按列表顺序写成 @voice_1、@voice_2 …。
数量:1–3
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 不能与
images一起使用。 - 计入参考素材与元素合计 15 个的上限。
取值有误时
- 超过上限:
"reference_audios" accepts at most 3 items
elements
object[]
可选
最多七个命名的主体,例如角色、动物、道具、服装、场景或特效;每个只需定义一次,在提示词里写成 @ 加它的 name。
数量:≤ 7
- 最多七个对象组成的数组。每个对象只接受以下字段:
elements[].name(字符串,必填):1 到 20 个字母、数字、下划线或汉字,同一请求内不区分大小写不得重复。不能是image_N、video_N、voice_N、keyframe_N、object_N、audio_N、first_frame或last_frame。elements[].element_input_urls(字符串数组):2 到 4 个公网 HTTPS 链接,是这个元素的图片;第一张是主视图。elements[].element_input_video_urls(字符串数组):恰好一个公网 HTTPS 链接,是一段 3 到 8 秒、单镜头的角色视频。它与element_input_urls二选一,不能同时传。elements[].element_input_audio_urls(字符串数组,可选):恰好一个公网 HTTPS 音频链接,是角色元素的声音。elements[].tag(字符串,可选):元素的类别。视频元素或带声音的元素必须是角色:不传tag,或传character。elements[].description(字符串,可选):对元素的描述,最多 100 个字符。- 视频元素最多 3 个,与
reference_videos合计最多 5 个。每个元素都计入参考素材与元素合计 15 个的上限。 - 元素不能与
images一起传。
取值有误时
- 多于七个元素:
"elements" accepts at most 7 items - 某个元素不是对象:
"elements[0]" must be an object - 某个元素缺少
name:"name" is required in "elements[0]" name为空或超过 20 个字符:"elements[0].name" has an unsupported lengthname含其他字符,或使用了保留名:elements[0].name "image_1" is not a name Kling V4 accepts- 同一个
name出现两次(不区分大小写):elements[1].name "Hero" is used twice - 同时有图片和视频,或两者都没有:
elements[0] takes either element_input_urls or element_input_video_urls - 图片少于两张:
"elements[0].element_input_urls" requires at least 2 item - 图片多于四张:
"elements[0].element_input_urls" accepts at most 4 items - 视频元素的
tag不是character:elements[0] is a video element, which is always a character tag不是character的元素带了声音:elements[0] has a voice, which only a character element takestag不在列表中:"elements[0].tag" must be one of: [character animal prop costume scene effect others]description超过 100 个字符:"elements[0].description" has an unsupported length- 元素里有不接受的字段:
field "start_time" is not supported in "elements[0]" - 视频元素多于三个:
Kling V4 takes at most 3 video elements - 与
images同时传入:Kling V4 cannot combine elements with images
duration
integer
可选默认值: 5
视频时长,单位为秒,须为整数。计费以它为准。
默认值:5
范围:3–30
- 不传时使用并按
5计费。 - 使用画面帧时,它还决定图片数上限:最多
duration+ 1 张,且不超过 10 张。
取值有误时
- 超出范围、不是整数,或以字符串传入:
"duration" is outside its supported range
aspect_ratio
string
可选默认值: 16:9
视频的宽高比(宽:高)。
可选值:16:9, 9:16, 1:1, 21:9
默认值:16:9
- 不传时使用
16:9。 - 不要与
images一起传:视频沿用首帧的画面比例。
取值有误时
- 取值不在列表中:
"aspect_ratio" must be one of: [16:9 9:16 1:1 21:9] - 与
images同时传入:Kling V4 takes the first frame's shape; do not send aspect_ratio with images
resolution
string
可选默认值: 720p
输出分辨率。1080p 的每秒价格高于 720p。
可选值:720p, 1080p
默认值:720p
- 不传时使用并按
720p计费。 - 该模型不提供 4K。
取值有误时
- 取值不在列表中(例如
4K或pro):"resolution" must be one of: [720p 1080p]
keep_original_sound
boolean
可选
在成片中保留参考视频自身的声音,而不是使用生成的音频。
- 只能与
reference_videos一起使用;没有参考视频时传入(即使是false)也会被拒绝。 - 不传时视频带有生成的音频。没有关闭音频的字段。
取值有误时
- 不是 true 或 false:
"keep_original_sound" must be a boolean - 没有
reference_videos时传入:"keep_original_sound" needs reference_videos
网关还会在创建任务之前检查以下组合:
images不能与参考素材字段同时使用。images是按时间顺序排列的画面帧:一张是首帧,两张是首帧和尾帧,更多则在两者之间加入中间帧;提示词中分别写作@first_frame、@keyframe_1、@keyframe_2… 和@last_frame。- 图片数最多比视频秒数多一张,且无论如何不超过 10 张。
- 提示词中,
reference_images写作@image_1、@image_2…,reference_videos写作@video_1…,reference_audios写作@voice_1…,元素写作@加元素名;提示词中的每个@都必须对应同一请求中的输入。 - 参考视频每段 2–30 秒,合计不超过 30 秒;参考视频与视频元素合计最多 5 个,其中视频元素最多 3 个;
reference_images、reference_videos、reference_audios与elements合计最多 15 个。 - 一个元素由
element_input_urls中的 2–4 张图片组成(第一张是主视图),或由element_input_video_urls中一段 3–8 秒、单镜头的角色视频组成;element_input_audio_urls为角色元素提供声音。 - 元素名为 1–20 个字母、数字、下划线或汉字,不区分大小写不得重复,且不能是
image_N、video_N、voice_N、keyframe_N、object_N、audio_N、first_frame或last_frame。 elements和aspect_ratio不能与images一起传:输出沿用首帧的画面比例;没有images时,aspect_ratio默认 16:9。keep_original_sound保留参考视频自身的声音,需要同时传reference_videos;否则视频带有生成的音频。
输入素材限制
网关会在创建任务之前读取每一项输入,超出这些限制的输入会被拒绝,并返回点名该输入的 400 bad_request。不扣费。
- 网关在创建任务前会测量
images、reference_images和reference_videos,超出下表限制的输入会被拒绝,报错按列表和位置指明是哪一个,例如reference_videos[0] is 35 seconds long; this model takes reference video of 2 to 30 seconds.,不会扣费。 - 元素链接和
reference_audios在创建任务前只检查是否为公网 HTTPS 链接。元素视频须为 3 到 8 秒。 - 素材在本地?先用
POST /v1/files上传,再传入返回的data.url。
提示词中的引用
每类输入有各自的引用写法,按列表顺序从 1 开始编号:
- 编号引用或画面帧引用找不到对应输入时,创建任务时会被拒绝,例如
the prompt names @last_frame, which this request does not send。
组合规则
以下规则在创建任务时检查;违反任意一条的请求会以 400 bad_request 被拒绝,不收费。
该模型不接受的字段
传入以下字段会在扣费前被拒绝,而不是被忽略:
sound、generate_audio、seed、multi_shots、multi_prompt、quality、watermark、task_type、output_format→field "sound" is not supported by model kling-v4(报错中是你传入的字段名)。- 其他未知字段 →
unknown field: <name>。
请求示例
文生视频
一段 5 秒、16:9、720p、带生成音频的视频。
首帧和尾帧
视频以 1080p 从第一张图过渡到第二张图,画面比例沿用首帧。
参考图和声音
两张参考图和一段声音,都在提示词里写明引用。
保留原声的参考视频
把占位链接换成你自己的 2–30 秒片段;keep_original_sound 保留它的声音,而不使用生成的音频。
命名元素
一个角色和一个道具,各用两张图片定义(第一张是主视图)。请把占位链接换成你自己的图片。
响应
创建任务(201)
任务对象。任务成功之前 output 为 null。标注“运行中”的字段会在任务结束后消失。
任务完成
GET /v1/tasks/{task_id} 返回 HTTP 200 和 status: "succeeded",结果在 data.output 中。
输出字段
任务失败
失败的任务在 GET /v1/tasks/{task_id} 上仍然是 HTTP 200:失败信息在响应体里。预扣金额会全额退回,因此不会扣费。
完整示例
创建任务,按服务端给出的轮询提示等待,然后打印结果链接。请在环境变量中设置 BEATAPI_API_KEY 并安装 requests。
计费
- 按所选分辨率下的视频秒数计费:
720p每秒 0.30。下表列出的是 8 秒片段的价格。 - 秒数即
duration,不传时为 5。任务的usage.billable_duration_seconds会显示它。 - 每个视频都带音频(生成的,或保留的参考视频原声),不另外收费。
- 创建任务时预留费用,视频完成时结算。失败的任务(包括提交后被审核拒绝的)全额退还。
当前牌价,与价格页一致。享有协商折扣的账户实付更低;任务的 data.usage 始终显示实际扣费金额。
常见错误
HTTP 错误速查
任务生成之前的错误会以非 2xx 响应返回,不扣费。请根据 error.code 或 error.retryable 判断处理方式;message 会指出问题所在。完整列表和重试策略见错误码。
身份验证
Send your API key as Authorization: Bearer <BEATAPI_API_KEY>.
请求头
请求体使用 JSON,并设置 Content-Type: application/json。Idempotency-Key 为可选:每个逻辑请求发送一个唯一值(最长 255 个字符),仅在重试完全相同的请求体时复用。24 小时内,用相同的键和请求体重试会再次返回第一次的响应,并带上 Idempotent-Replayed: true;相同的键搭配不同的请求体则返回 409 idempotency_conflict。非 2xx 的响应不会被保存,因此 400 或 402 之后的重试会重新执行。
请求
要运行的模型。
取值:kling-v4
取值有误时
- 未传:
"model" is required - 把图片模型发到了这个端点:
"model" nano-banana-2 is served by POST /v1/images/tasks, not this endpoint
视频里发生什么:主体、动作、运镜、风格和声音,并用 @ 引用写明每个输入。
长度:1–5000 个字符
- 长度按字符数计算(一个中日韩字符算一个字符)。
- 引用方式:
reference_images是@image_1、@image_2…,reference_videos是@video_1…,reference_audios是@voice_1…,元素是@加它的name。画面帧是@first_frame、@keyframe_1、@keyframe_2… 和@last_frame。 - 每个
@都必须对应同一请求中的输入。编号引用或画面帧引用找不到对应输入时(例如只传了两张参考图却写了@image_3,或只传了一张图却写了@last_frame),创建任务时会被拒绝。
取值有误时
- 未传:
"prompt" is required - 为空或超过长度上限:
"prompt" has an unsupported length - 引用了请求中没有的输入:
the prompt names @image_3, which this request does not send
视频的宽高比(宽:高)。
可选值:16:9, 9:16, 1:1, 21:9
默认值:16:9
- 不传时使用
16:9。 - 不要与
images一起传:视频沿用首帧的画面比例。
取值有误时
- 取值不在列表中:
"aspect_ratio" must be one of: [16:9 9:16 1:1 21:9] - 与
images同时传入:Kling V4 takes the first frame's shape; do not send aspect_ratio with images
视频时长,单位为秒,须为整数。计费以它为准。
默认值:5
范围:3–30
- 不传时使用并按
5计费。 - 使用画面帧时,它还决定图片数上限:最多
duration+ 1 张,且不超过 10 张。
取值有误时
- 超出范围、不是整数,或以字符串传入:
"duration" is outside its supported range
最多七个命名的主体,例如角色、动物、道具、服装、场景或特效;每个只需定义一次,在提示词里写成 @ 加它的 name。
数量:≤ 7
- 最多七个对象组成的数组。每个对象只接受以下字段:
elements[].name(字符串,必填):1 到 20 个字母、数字、下划线或汉字,同一请求内不区分大小写不得重复。不能是image_N、video_N、voice_N、keyframe_N、object_N、audio_N、first_frame或last_frame。elements[].element_input_urls(字符串数组):2 到 4 个公网 HTTPS 链接,是这个元素的图片;第一张是主视图。elements[].element_input_video_urls(字符串数组):恰好一个公网 HTTPS 链接,是一段 3 到 8 秒、单镜头的角色视频。它与element_input_urls二选一,不能同时传。elements[].element_input_audio_urls(字符串数组,可选):恰好一个公网 HTTPS 音频链接,是角色元素的声音。elements[].tag(字符串,可选):元素的类别。视频元素或带声音的元素必须是角色:不传tag,或传character。elements[].description(字符串,可选):对元素的描述,最多 100 个字符。- 视频元素最多 3 个,与
reference_videos合计最多 5 个。每个元素都计入参考素材与元素合计 15 个的上限。 - 元素不能与
images一起传。
取值有误时
- 多于七个元素:
"elements" accepts at most 7 items - 某个元素不是对象:
"elements[0]" must be an object - 某个元素缺少
name:"name" is required in "elements[0]" name为空或超过 20 个字符:"elements[0].name" has an unsupported lengthname含其他字符,或使用了保留名:elements[0].name "image_1" is not a name Kling V4 accepts- 同一个
name出现两次(不区分大小写):elements[1].name "Hero" is used twice - 同时有图片和视频,或两者都没有:
elements[0] takes either element_input_urls or element_input_video_urls - 图片少于两张:
"elements[0].element_input_urls" requires at least 2 item - 图片多于四张:
"elements[0].element_input_urls" accepts at most 4 items - 视频元素的
tag不是character:elements[0] is a video element, which is always a character tag不是character的元素带了声音:elements[0] has a voice, which only a character element takestag不在列表中:"elements[0].tag" must be one of: [character animal prop costume scene effect others]description超过 100 个字符:"elements[0].description" has an unsupported length- 元素里有不接受的字段:
field "start_time" is not supported in "elements[0]" - 视频元素多于三个:
Kling V4 takes at most 3 video elements - 与
images同时传入:Kling V4 cannot combine elements with images
按时间顺序排列的画面帧:一个链接是首帧,两个是首帧和尾帧,更多则在两者之间加入中间帧。
数量:1–10
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 有三个或更多链接时,
images[0]是首帧,最后一个链接是尾帧,中间的链接是中间帧:images[1]是@keyframe_1,images[2]是@keyframe_2,依此类推。 - 图片数最多比视频秒数多一张(
duration+ 1;不传duration时按 5 秒算),且无论如何不超过 10 张。 - 画面帧不能与
reference_images、reference_videos、reference_audios、elements或aspect_ratio一起传:视频沿用首帧的画面比例。
取值有误时
- 多于 10 个链接:
"images" accepts at most 10 items - 链接数超过
duration+ 1(此例为 5 秒视频传了 7 个链接):Kling V4 takes at most 6 images for a 5-second video - 与任一 reference_* 字段同时传入:
Cannot combine "images" with reference inputs in one task - 与
elements同时传入:Kling V4 cannot combine elements with images - 与
aspect_ratio同时传入:Kling V4 takes the first frame's shape; do not send aspect_ratio with images - 不是 https:// 链接:
"images[0]" must be a public HTTPS URL
在成片中保留参考视频自身的声音,而不是使用生成的音频。
- 只能与
reference_videos一起使用;没有参考视频时传入(即使是false)也会被拒绝。 - 不传时视频带有生成的音频。没有关闭音频的字段。
取值有误时
- 不是 true 或 false:
"keep_original_sound" must be a boolean - 没有
reference_videos时传入:"keep_original_sound" needs reference_videos
视频中使用的声音。在提示词里按列表顺序写成 @voice_1、@voice_2 …。
数量:1–3
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 不能与
images一起使用。 - 计入参考素材与元素合计 15 个的上限。
取值有误时
- 超过上限:
"reference_audios" accepts at most 3 items
引导视频内容、角色、商品或风格的图片。在提示词里按列表顺序写成 @image_1、@image_2 …。
数量:1–10
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 不能与
images一起使用。 - 计入参考素材与元素合计 15 个的上限。
取值有误时
- 超过上限:
"reference_images" accepts at most 10 items - 参考素材与元素合计超过 15 个:
Kling V4 takes at most 15 reference inputs and elements together
用来借鉴动作、运镜或内容的视频。在提示词里按列表顺序写成 @video_1、@video_2 …。
数量:1–5
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 每段 2 到 30 秒,所有片段合计不超过 30 秒。网关在创建任务前会逐段测量,超出限制的片段会被拒绝,并在报错中指明是哪一段。
- 参考视频与视频元素合计最多 5 个,并计入参考素材与元素合计 15 个的上限。
- 成片默认带生成的音频;传
keep_original_sound: true则保留参考视频自身的声音。
取值有误时
- 超过上限:
"reference_videos" accepts at most 5 items - 某段短于 2 秒或长于 30 秒:
reference_videos[0] is 35 seconds long; this model takes reference video of 2 to 30 seconds. - 所有片段合计超过 30 秒:
The reference videos run 36 seconds in total; this model takes at most 30. - 参考视频与视频元素合计超过 5 个:
Kling V4 takes at most 5 reference videos and video elements together
输出分辨率。1080p 的每秒价格高于 720p。
可选值:720p, 1080p
默认值:720p
- 不传时使用并按
720p计费。 - 该模型不提供 4K。
取值有误时
- 取值不在列表中(例如
4K或pro):"resolution" must be one of: [720p 1080p]
响应
任务对象。任务成功之前 output 为 null。标注“运行中”的字段会在任务结束后消失。

