Appearance
Kling V3 / Kling O3
kling-v3 和 kling-o3 使用同一套接口和参数,区别在于支持的参考输入:
| 模型 | 文生视频 | 普通参考图 | 首帧 / 首尾帧 | 参考视频 | 时长 |
|---|---|---|---|---|---|
kling-o3 | 支持 | reference_images,最多 7 张 | start_frame,可加 end_frame | input_video,可另附最多 4 张参考图 | 3–15 秒整数;参考视频模式不传 |
kling-v3 | 支持 | 不支持 | start_frame,可加 end_frame | 不支持 | 3–15 秒整数 |
kling-o3 的三种参考方式里,首尾帧不能和普通参考图或参考视频一起用。end_frame 必须和 start_frame 一起传。
按次计费,每个成功的任务算 1 次,时长和分辨率不影响次数。单价和开放状态以模型广场和 API Key 权限为准,失败任务退回预扣额度。
接口
| 操作 | 方法与路径 |
|---|---|
| 创建任务 | POST https://api.furry.vg/v1/videos |
| 查询任务 | GET https://api.furry.vg/v1/videos/{id} |
| 下载视频 | GET https://api.furry.vg/v1/videos/{id}/content |
请求头为 Authorization: Bearer <S3AI_API_KEY>,请求体为 JSON。查询和下载要用创建任务的同一账户的 API Key。
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
model | string | kling-v3 或 kling-o3 |
prompt | string | 必填,1–10000 字符 |
seconds | integer / 整数字符串 | 3–15,默认 5。使用 input_video 时不能传 |
duration | integer / 整数字符串 | 同 seconds,二选一 |
size | string | 默认 1280x720,取值见下方尺寸表 |
resolution | string | 720p、1080p、2160p(也可写 4k),不能和 size 同时用 |
aspect_ratio | string | 16:9(默认)、1:1、9:16,配合 resolution 使用 |
audio | boolean | 是否生成音轨 |
n | integer | 只能是 1 |
start_frame | string | 首帧图片 |
end_frame | string | 尾帧图片,需要同时有首帧 |
reference_images | string[] | 普通参考图,仅 kling-o3 |
input_video | string | 参考视频,仅 kling-o3,只支持 MP4 |
表外的字段会被拒绝。audio 只控制输出是否带声音,不能上传参考音频。
尺寸
| 分辨率 | 16:9 | 1:1 | 9:16 |
|---|---|---|---|
720p | 1280x720 | 960x960 | 720x1280 |
1080p | 1920x1080 | 1440x1440 | 1080x1920 |
2160p | 3840x2160 | 2880x2880 | 2160x3840 |
kling-o3 的参考视频模式不支持 2160p。有些组合的输出分辨率和请求的不完全一样,以生成文件为准。
参考素材
start_frame、end_frame、reference_images、input_video 都可以填公网 URL 或 Data URL:
- URL:必须能直接用 HTTP(S) 下载,不能包含用户名密码,并且在任务完成前不能失效。
- Data URL:格式为
data:<MIME 类型>;base64,<数据>,例如data:image/png;base64,iVBORw0KGgo...、data:video/mp4;base64,AAAAIGZ0eXBpc29t...。不接受省略前缀的裸 Base64。
单个素材不超过 20 MB,参考视频只支持 MP4。Base64 会让体积增加约三分之一,传视频时请求体通常很大,能用 URL 时优先用 URL。不支持 multipart/form-data 文件上传。
bash
frame="data:image/png;base64,$(base64 -w0 start.png)"示例
文生视频
bash
curl https://api.furry.vg/v1/videos \
-H "Authorization: Bearer $S3AI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "kling-o3",
"prompt": "一只小机器人在蓝色背景前缓慢挥手,固定镜头",
"seconds": 5,
"size": "1280x720"
}'换成 kling-v3 时其他参数不用改。
普通参考图(kling-o3)
json
{
"model": "kling-o3",
"prompt": "保持参考图中机器人的外形,让它转身向前走",
"seconds": 5,
"reference_images": [
"https://example.com/robot-front.png",
"data:image/png;base64,iVBORw0KGgo..."
],
"size": "1280x720"
}首帧 / 首尾帧
json
{
"model": "kling-o3",
"prompt": "从首帧自然过渡到尾帧,固定镜头",
"seconds": 5,
"start_frame": "https://example.com/start.png",
"end_frame": "https://example.com/end.png"
}kling-v3 写法相同。只要首帧时去掉 end_frame。
参考视频(kling-o3)
json
{
"model": "kling-o3",
"prompt": "参考视频中的动作,角色外形保持和图片一致",
"input_video": "https://example.com/reference.mp4",
"reference_images": ["https://example.com/robot.png"],
"size": "1280x720"
}这个模式不传 seconds / duration,输出时长也不一定和参考视频相同,比如 3 秒的参考视频生成了约 5 秒的结果。不需要参考图时去掉 reference_images。
已知情况
截至 2026-10-22:两个模型的文生视频、kling-o3 的所有参考方式、kling-v3 的单首帧都已验证可用。kling-v3 的首尾帧尚未测试通过,暂不保证稳定。
参考素材只影响生成方向,结果不会逐帧复刻参考图或参考视频。
查询与下载
bash
curl "https://api.furry.vg/v1/videos/$VIDEO_ID" \
-H "Authorization: Bearer $S3AI_API_KEY"status 依次为 queued、in_progress,最后是 completed 或 failed。每 10–20 秒查一次就够了。完成后的响应:
json
{
"id": "video_example",
"object": "video",
"model": "kling-o3",
"status": "completed",
"progress": 100,
"url": "https://ai.furry.vg/v1/tasks/video_example/artifacts/video/content?access=...",
"content_url": "https://ai.furry.vg/v1/tasks/video_example/artifacts/video/content?access=..."
}url 和 content_url 是同一个带签名的下载链接,域名和签名以实际响应为准。这个链接不需要 API Key 就能 GET / HEAD,支持 Range,所以不要随意分享。链接没有固定过期时间,但文件不会一直保留,请尽快下载。
也可以用 API Key 下载:
bash
curl "https://api.furry.vg/v1/videos/$VIDEO_ID/content" \
-H "Authorization: Bearer $S3AI_API_KEY" \
-o result.mp4错误
参数错误会直接说明原因,例如时长超范围、模型不支持参考视频、有尾帧没首帧。
创建阶段的服务端错误一律返回 HTTP 503:
json
{
"code": "service_unavailable",
"message": "service temporary unavailable",
"data": null
}已经拿到 id 的任务如果后来失败,查询接口返回 status: "failed",原因在 error.message:
json
{
"id": "video_example",
"status": "failed",
"error": {
"code": "service_unavailable",
"message": "service temporary unavailable"
}
}创建请求超时又没拿到 id 时,不要马上重试,以免生成重复任务。
