Low drone shot skimming over golden sunset waves crashing against dark coastal rocks, spray catching the warm light, cinematic color grading, epic seascape
Kling 3.0 Turbo Pro Text to Video API
kwaivgi/kling-v3-turbo-pro/text-to-videoKling 3.0 Turbo Pro Text to Video 将文本提示词转化为 3–15 秒旗舰级 1080p 动态视频,支持细腻纹理与物理动力学、原生音画口型同步以及最多 6 镜头分镜脚本。它在多镜头叙事中保持角色外貌与场景连贯,并使对白口型与环境音效自然契合。使用 multi_prompt 并省略顶层 duration 时,也支持镜头合计 1–2 秒。
示例
REST API
快速开始
使用 API 鉴权,提交参数,再用任务 ID 取回视频。
连接到 Vidgo API
创建 API key,仅保存在服务端,并发送 Authorization: Bearer VIDGO_API_KEY。
- 端点
- POST
https://api.vidgo.ai/api/generate/submit - 鉴权
- Authorization: Bearer VIDGO_API_KEY
提交一次生成任务
按请求示例填写本端点参数,保存返回的 task_id 用于查询进度和结果。
REQUEST_BODY=$(cat <<'JSON'
{
"model": "kwaivgi/kling-v3-turbo-pro/text-to-video",
"input": {
"prompt": "Low drone shot skimming over golden sunset waves crashing against dark coastal rocks, spray catching the warm light, cinematic color grading, epic seascape",
"duration": 5,
"aspect_ratio": "16:9"
}
}
JSON
)
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")
CODE=$(printf '%s' "$RESPONSE" | jq -r '.code // empty')
if [ "$CODE" != "0" ] && [ "$CODE" != "200" ]; then
printf 'API error: %s
' "$RESPONSE" >&2
exit 1
fi
printf '%s
' "$RESPONSE"等待结果
用 task_id 查询,not_started/running 继续,finished/failed 停止。成功后读取 data.files[].file_url。
查询状态
GET https://api.vidgo.ai/api/generate/status/{task_id}以 2 秒为基准轮询状态,较长任务加大间隔。仅在 not_started 或 running 时继续,finished 或 failed 立即停止。也可在请求中指定 callback_url 接收 webhook。
not_startedrunningfinishedfailed{
"code": 200,
"data": {
"task_id": "task-unified-...",
"status": "running",
"created_time": "2026-09-16T10:00:00Z"
}
}{
"code": 200,
"data": {
"task_id": "task-unified-...",
"status": "finished",
"files": [
{
"file_url": "https://storage.vidgo.ai/generated/video.mp4",
"file_type": "video"
}
],
"created_time": "2026-08-22T10:00:00Z",
"progress": 100,
"error_message": null
}
}完整可运行示例
展开查看含 HTTP 与业务码检查、task_id 校验、轮询、终态处理和超时边界的完整脚本。
set -euo pipefail
: "${VIDGO_API_KEY:?Set VIDGO_API_KEY in your environment}"
REQUEST_BODY=$(cat <<'JSON'
{
"model": "kwaivgi/kling-v3-turbo-pro/text-to-video",
"input": {
"prompt": "Low drone shot skimming over golden sunset waves crashing against dark coastal rocks, spray catching the warm light, cinematic color grading, epic seascape",
"duration": 5,
"aspect_ratio": "16:9"
}
}
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')
BUSINESS_CODE=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Submit failed:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
if [ -z "$TASK_ID" ]; then
printf 'Submit response did not include task_id:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
START_TIME=$(date +%s)
POLL_DELAY=2
while true; do
if [ $(( $(date +%s) - START_TIME )) -ge 600 ]; then
printf 'Timed out after 600 seconds
' >&2
exit 1
fi
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')
BUSINESS_CODE=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Status request failed:
%s
' "$STATUS_RESPONSE" >&2
exit 1
fi
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 "$POLL_DELAY"
if [ "$POLL_DELAY" -lt 10 ]; then POLL_DELAY=$((POLL_DELAY + 1)); fi
;;
*)
printf 'Unexpected task status: %s
' "$STATUS" >&2
exit 1
;;
esac
done输入参数
下表列出可用输入参数、类型和默认值。请求示例还包含必填的顶层 model 字段。
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| prompt | string | 否 | — | 1–2500 字符。与 multi_prompt 互斥。 |
| duration | integer | 否 | 镜头总时长 / 5 | 显式 duration 必须为 3–15 秒;多镜头时须等于镜头总时长。省略时使用镜头总时长(允许 1–15 秒),无多镜头时默认为 5 秒。 |
| aspect_ratio | string | 否 | 16:9 | 画幅:16:9、9:16 或 1:1。 |
| multi_prompt | array | 否 | — | 1–6 个镜头;每个镜头必须有非空 prompt,duration 可选,范围 1–15 秒,默认 5 秒。总时长不超过 15 秒。与非空 prompt 互斥。 |
| multi_prompt[].prompt | string | 是(若提供 multi_prompt) | — | 该镜头提示词,最多 2500 字符。 |
| multi_prompt[].duration | integer | 否 | 5 | 该镜头时长 1–15 秒。 |
响应字段
成功提交会返回任务 ID。状态查询提供进度、输出文件和失败详情。
| 字段 | 类型 | 说明 |
|---|---|---|
| code | integer | 应用结果码;成功响应为 0 或 200。 |
| message | string | 可读消息;失败时给出错误详情。 |
| data.task_id | string | 用于状态查询路径的任务 ID。 |
| data.status | string | not_started, running, finished, or failed. |
| data.created_time | string | 任务创建时间,date-time 格式。 |
| data.progress | integer | 任务进度,范围为 0–100;仅在响应包含此字段时提供。 |
| data.files[] | array | 成功任务的全部输出文件,按响应顺序。 |
| data.files[].file_url | string | 生成视频的公网 URL。 |
| data.files[].file_type | string | 文件类型,例如 video。 |
| data.error_message | string | null | status 为 failed 时的失败详情。 |
任务生命周期
status 为 not_started 或 running 时继续查询;到 finished 或 failed 后停止,再处理输出或错误。
not_started任务已接受,等待开始。
running正在生成。继续用同一 task_id 轮询。
finished生成成功。从 data.files[].file_url 读取视频 URL。
failed生成失败。读取 data.error_message 并停止轮询。
轮询与错误
- 鉴权遇到 401 时,检查 Authorization 中的 Bearer API key,更新凭证后重试。
- 参数校验遇到 400 时,根据响应检查必填字段、取值范围和可用积分,调整后重新提交。
- 网络与超时状态查询遇到网络错误或超时,保留原 task_id 重试查询,再按返回状态处理。
- 轮询间隔以 2 秒为基准轮询状态,较长任务逐步加大间隔。
- 终态仅在 not_started 或 running 时继续。finished 或 failed 立即停止。
- 回调选项可在请求顶层提供 callback_url 接收最终任务对象;投递失败时仍可轮询。
模型规格
| 规格 | 取值 | 说明 |
|---|---|---|
| 输入模式 | 纯文本提示词 | 用自然语言描述场景与运动。 |
| 输出 | 视频 | 提交后返回异步任务 ID。 |
| 时长 | 3–15 秒 | 整数取值,默认 5 秒。 |
| 分辨率 | 1080p | 由 Pro 档位固定,不是请求字段。 |
| 画幅比例 | 16:9 / 9:16 / 1:1 | 默认 16:9。 |
| 计费依据 | 输出秒数 × 22 credits/秒 | 默认 5 秒为 110 credits($0.55)。 |
相关模型
Kling 3.0 Turbo Pro Text to Video API 常见问题
Kling 3.0 Turbo Pro Text to Video API 是什么?
Kling 3.0 Turbo Pro Text to Video 是快手(Kling AI)用于纯文本生成视频的旗舰 Turbo Pro 模型。它根据文本提示词通常生成 3–15 秒旗舰级 1080p 视频,具备细腻纹理与物理动力学、原生音画口型同步,并支持 multi_prompt 最多 6 镜头分镜脚本。依托 Kling 3.0 系列的多镜头叙事与视听联合生成能力,它在遵循提示词中的运镜与声景设计的同时,保持角色外貌、场景连贯与对白口型对齐。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。 使用 multi_prompt 并省略顶层 duration 时,也允许镜头合计 1 或 2 秒。
Kling 3.0 Turbo Pro Text to Video 的 1080p 画质适合成片吗?
适合。Pro 档固定输出工作室级全高清 1080p,纹理与边缘层次更细腻,可直接作为成片素材进入剪辑。分辨率由档位决定,无需在请求中另设 resolution 字段;完整规格见本页参数与模型规格说明。
Kling 3.0 Turbo Pro Text to Video 如何使用 multi_prompt 分镜?
multi_prompt 支持 1–6 个镜头,每个镜头必须有非空 prompt;镜头 duration 可选,须为 1–15 秒的整数,默认 5 秒。镜头总时长不能超过 15 秒。省略顶层 duration 时使用镜头时长之和,也允许合计 1 或 2 秒;显式传入时须为 3–15 秒的整数,且等于镜头时长之和。multi_prompt 不能与非空的顶层 prompt 同时使用。分镜请在 JSON 模式编辑;尝试切换表单时会保留 JSON 模式及全部镜头配置。
Kling 3.0 Turbo Pro Text to Video 支持原生口型同步吗?
支持。生成结果随画面同步输出音频,并对多语言对白提供口型对齐,适合口播、对话与反应镜头。在提示词中写明语言、情绪与发音节奏,可进一步指导声轨与口型表现。
Kling 3.0 Turbo Pro Text to Video 该如何选择画幅?
可选 16:9、9:16 与 1:1,体验区默认 16:9。横屏广告与成片优先 16:9,TikTok / Reels / Shorts 等竖屏渠道直接选 9:16,方形封面或社交帖可用 1:1。完整取值见本页参数说明。
Kling 3.0 Turbo Pro Text to Video 与 Base 模型该如何选型?
需要旗舰级 1080p 成片、更细腻纹理与口型同步短片时,优先本 Pro 文生视频档位;若以快速打样、高吞吐和更低单秒成本为主,可改用同系列 Standard 720p 文生视频。完整 Kling 3.0 Base 更侧重更高保真与电影级最终镜头,可在本页相关模型中对照系列能力。
Kling 3.0 Turbo Pro Text to Video 如何按秒计费?
按输出视频秒数计费,费率为 22 credits/秒($0.11/秒,1 credit = $0.005)。默认 5 秒为 110 credits($0.55),时长越长费用越高;完整对照见本页价格说明。















