Macro slow-motion shot of a raindrop falling onto a mossy forest floor, ripples expanding in a tiny puddle, spore dust drifting in a shaft of soft light, ultra detailed, nature documentary style
Kling 3.0 Turbo Standard Text to Video API
kwaivgi/kling-v3-turbo-std/text-to-videoKling 3.0 Turbo Standard Text to Video 将文本提示词转化为 3–15 秒 720p 动态视频,支持极速迭代生成、原生音画口型同步与 1–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-std/text-to-video",
"input": {
"prompt": "Macro slow-motion shot of a raindrop falling onto a mossy forest floor, ripples expanding in a tiny puddle, spore dust drifting in a shaft of soft light, ultra detailed, nature documentary style",
"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-std/text-to-video",
"input": {
"prompt": "Macro slow-motion shot of a raindrop falling onto a mossy forest floor, ripples expanding in a tiny puddle, spore dust drifting in a shaft of soft light, ultra detailed, nature documentary style",
"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 秒。 |
| 分辨率 | 720p | 由 Standard 档位固定,不是请求字段。 |
| 画幅比例 | 16:9 / 9:16 / 1:1 | 默认 16:9。 |
| 计费依据 | 输出秒数 × 17 credits/秒 | 默认 5 秒为 85 credits($0.425)。 |
相关模型
Kling 3.0 Turbo Standard Text to Video API 常见问题
Kling 3.0 Turbo Standard Text to Video API 是什么?
Kling 3.0 Turbo Standard Text to Video 是快手快灵用于纯文本生成视频的模型。它根据文本提示词通常生成 3–15 秒 720p 视频,具备高吞吐敏捷生成、原生音画口型同步(多语言)以及 multi_prompt 分镜编排能力。依托 Kling 3.0 Turbo 的高速生成机制,它在严格遵循提示词叙事与运镜的同时,保持多镜头中的角色外貌、场景连贯与音画对齐。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。 使用 multi_prompt 并省略顶层 duration 时,也允许镜头合计 1 或 2 秒。
Kling 3.0 Turbo Standard 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 Standard Text to Video 一次能生成多久?
不使用 multi_prompt 时,duration 须为 3–15 秒的整数,默认 5 秒。使用 multi_prompt 时,每个镜头默认 5 秒,总时长不能超过 15 秒。省略顶层 duration 即使用镜头时长之和,也允许合计 1 或 2 秒;显式传入时须为 3–15 秒,且等于镜头时长之和。
Kling 3.0 Turbo Standard Text to Video 会同步生成原生音频吗?
会。生成画面时同步输出原生音频,并对白口型与多语言发音对齐,同时可带上环境声与动作音效。在提示词中写明对白语言、语气或环境声线索,可进一步引导声画匹配;无需单独的音轨开关字段。
Kling 3.0 Turbo Standard Text to Video 支持哪些画幅比例?
支持 16:9、9:16 与 1:1 三种画幅,体验区默认预选 16:9。横屏叙事选 16:9,竖屏短视频选 9:16,方形构图选 1:1;完整取值见本页参数说明。
Kling 3.0 Turbo Standard Text to Video 与 Pro 档有何区别?
Standard 档固定输出 720p,按 17 credits/秒计费,适合高吞吐迭代与批量草稿;同系列 Pro Text to Video 固定 1080p,清晰度更高,适合成片交付。两者均支持原生音画与 multi_prompt 分镜,常规时长为 3–15 秒;分镜模式省略顶层 duration 时也允许镜头合计 1–2 秒。选型时按清晰度与成本取舍。
Kling 3.0 Turbo Standard Text to Video 按秒计费如何计算?
按输出视频秒数计费:720p 为 17 credits/秒($0.085/秒),1 credit = $0.005。默认 5 秒任务为 85 credits($0.425);时长越长费用越高,完整费率见本页价格说明。















