TokenFusion 平台 RESTful API 接入指南
TokenFusion 是统一的 AI 多模态 API 平台,面向内容创作、媒体生产与企业应用,提供文本对话、图像生成、视频生成与素材管理等能力。您只需使用平台 API Key,即可通过 OpenAI 兼容接口或平台标准接口调用模型广场中已开通的模型。
平台提供 AI 模型接口 与 管理接口 两大类 RESTful API。除生文流式模式返回 SSE 外,请求与响应均为 JSON。
POST /chat/completions;对话、流式、续写、多模态理解等POST /images/generations;文生图、图生图、组图、流式输出等/video/generations
/assets/{Action},asset:// 引用/kling/v1/...POST /user/balance访问 控制台 > API Keys,创建 API 密钥并命名管理,支持一键复制 API Key。
用 API Key 组装成 Authorization,填写到 Request Header 里,组装方式为:
代码块
Authorization: Bearer YOUR_API_KEY
其中 Bearer 与 API Key 之间需要保留一个空格。
Authorization Header 携带 API Key 进行鉴权。403。Authorization Header。API Key 无效、缺失或已禁用时返回 401,响应体为 {"detail":"..."}。
平台统一接口地址格式如下:
代码块
https://api.xzzgm.cn/api/v1/
AI 模型接口路径示例:
https://api.xzzgm.cn/api/v1/chat/completions
https://api.xzzgm.cn/api/v1/images/generations
https://api.xzzgm.cn/api/v1/video/generations(视频 · Seedance)
https://api.xzzgm.cn/api/v1/kling/v1/videos/text2video(视频 · 可灵)
https://api.xzzgm.cn/api/v1/assets/{Action}(素材库;请求体字段为 PascalCase,见素材库章节)
管理接口路径示例:
https://api.xzzgm.cn/api/v1/user/balance
下文示例中的路径均相对于上述 Base URL。
以下以 Seedance 文生视频为例,演示「创建任务 → 轮询查询 → 获取结果」的完整流程。可灵模型请使用可灵 接口,勿调用本节路径。
请求
curl -X POST https://api.xzzgm.cn/api/v1/video/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "doubao-seedance-2-0-260128",
"content": [
{
"type": "text",
"text": "写实风格,晴朗的蓝天之下,一大片白色的雏菊花田"
}
],
"ratio": "16:9",
"duration": 5
}'
结果返回示例
{
"id": "cgt-xxxx-xxxx"
}
提交异步任务后,使用返回的任务 ID 查询结果:
请求
curl -X GET "https://api.xzzgm.cn/api/v1/video/generations/${TASK_ID}" \
-H "Authorization: Bearer YOUR_API_KEY"
结果返回示例
{
"id": "cgt-xxxx-xxxx",
"model": "doubao-seedance-2-0-260128",
"status": "succeeded",
"content": {
"video_url": "https://example.com/xxxx/xxxx.mp4"
},
"usage": {
"completion_tokens": 108900,
"total_tokens": 108900
},
"created_at": 1779951506,
"updated_at": 1779951777,
"seed": 95020,
"resolution": "720p",
"ratio": "16:9",
"duration": 5,
"framespersecond": 24,
"service_tier": "default",
"generate_audio": true,
"draft": false
}
任务进行中时 status 为 queued 或 running,请间隔 5~10 秒轮询,收到 429 时遵循 Retry-After 退避。
若需在视频中引用私域参考图/音视频,请先按下文 素材库 · Assets API 完成入库,再在 content 中使用 asset://{素材ID}。
快速索引表;完整路径、参数与示例见左侧对应章节。模型类接口均使用 Authorization: Bearer API Key 鉴权。
| 分类 | 能力 | 路径 | 模式 |
|---|---|---|---|
| 文字 | Seed 生文 | POST /chat/completions |
同步 / 流式 |
| 图像 | Seedream 生图 | POST /images/generations |
同步 / 流式 |
| Seedance | 创建 / 查询 / 取消 | POST/GET /video/generations、.../{task_id}/cancel |
异步 / 轮询 |
| 素材库 | POST /assets/{Action} |
同步 / 异步入库 | |
| 可灵 | 文生视频、图生视频、Omni 视频、动作控制、对口型、数字人 | /kling/v1/videos/... |
异步 / 轮询 |
| 文生音效、视频生音效、语音合成 | /kling/v1/audio/... |
异步 / 同步 | |
| 自定义音色 | /kling/v1/general/custom-voices 等 |
同步 / 异步 | |
| 管理 | 查询余额 | POST /user/balance(账号 + 密码) |
同步 |
OpenAI 兼容的对话补全接口。使用 TokenFusion API Key 鉴权后,按 OpenAI 格式提交请求;平台校验模型权限并返回 JSON 或 SSE 流式响应。具体字段与扩展能力以模型广场中对应模型的说明为准。
messages,非流式返回完整 JSONstream: true,SSE 增量返回 delta.content / delta.reasoning_contentassistant 消息作为前缀,配合 continue_final_message 等参数续写content 含 image_urlcontent 含 video_urlcontent 含 input_audio(Base64);须模型支持reasoning_effort: "high";响应可能含 reasoning_content| 模式 | 关键参数 | 推荐模型 |
|---|---|---|
| 默认对话 | messages 纯文本;stream: false 或不传 | doubao-seed-2-0-lite-260215 等 |
| 流式输出 | stream: true;可选 stream_options.include_usage | Seed 2.0 Lite / Pro 等 |
| 续写模式 | 末条 role: assistant + continue_final_message: true | Seed 2.0 系列 |
| 图片理解 | content 含 image_url | doubao-seed-2-0-pro-260215 等多模态模型 |
| 视频理解 | content 含 video_url | doubao-seed-2-0-pro-260215 等 |
| 音频理解 | content 含 input_audio | doubao-seed-2-0-lite-260428 等(Pro 260215 通常不支持) |
| 深度推理 | reasoning_effort: "low" | "medium" | "high" | doubao-seed-2-0-lite-260215 等推理模型 |
具体 Model ID 与能力标签以模型广场为准。须传入已上架且当前账户有权调用的 Model ID;否则返回 403,响应体为 {"detail":"无权调用该平台模型"}。
| Header | 必填 | 说明 |
|---|---|---|
Authorization | 是 | Bearer YOUR_API_KEY |
Content-Type | 是 | application/json |
Accept | 否 | 流式时建议 text/event-stream |
下表为 OpenAI 兼容字段及部分多模态扩展。未在表中列出、但模型支持的扩展字段也可写入请求体。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| model | string | 是 | — | 模型 ID,须为模型广场已上架生文模型,如 doubao-seed-2-0-lite-260215 |
| messages | array | 是 | — | 对话消息列表,至少 1 条;见下方「messages 格式」 |
| stream | boolean | 否 | false | 为 true 时返回 SSE;必须为布尔值,字符串 "true" 会返回 422 |
| stream_options | object | 否 | — | 流式选项,如 {"include_usage": true} 在最后一块返回 usage |
| continue_final_message | boolean | 否 | — | 续写模式。为 true 时,以 messages 最后一条 assistant 内容为前缀继续生成 |
| add_generation_prompt | boolean | 否 | — | 续写时通常设为 false,避免额外插入生成提示 |
| reasoning_effort | string | 否 | — | 推理强度:low / medium / high(深度推理模型) |
| max_tokens | integer | 否 | — | 最大生成 Token 数,≥ 1;日常建议 256~8192 |
| max_completion_tokens | integer | 否 | — | 与 max_tokens 语义相近,部分模型优先识别本字段 |
| temperature | number | 否 | 1 | 采样温度,0~2 |
| top_p | number | 否 | 1 | 核采样,0~1 |
| n | integer | 否 | 1 | 生成候选条数,≥ 1 |
| stop | string | array | 否 | — | 停止序列 |
| presence_penalty | number | 否 | 0 | 存在惩罚,-2~2 |
| frequency_penalty | number | 否 | 0 | 频率惩罚,-2~2 |
| tools | array | 否 | — | 工具定义(OpenAI 格式) |
| tool_choice | string | object | 否 | — | 工具选择策略 |
| response_format | object | 否 | — | 结构化输出,如 {"type":"json_object"} |
| seed | integer | 否 | — | 随机种子 |
| modalities | array | 否 | — | 输出模态(部分多模态模型) |
| audio | object | 否 | — | 请求级输出音频配置;输入侧音频理解请用 input_audio |
| user | string | 否 | — | 终端用户标识 |
content 可为字符串(纯文本),或多段对象数组(多模态理解)。
字符串 content(纯文本 / 默认对话)
{"role": "user", "content": "你好"}
多段 content(多模态)
messages[].content[] 中 type 常用取值如下(是否支持取决于所选模型):
| type | 结构 | 用途 |
|---|---|---|
text | {"type":"text","text":"..."} | 文本提示;text 必填且非空 |
image_url | {"type":"image_url","image_url":{"url":"..."}} | 图片理解;URL 或 data:image/...;base64,... |
video_url | {"type":"video_url","video_url":{"url":"..."}} | 视频理解;URL 须公网可访问 |
input_audio | {"type":"input_audio","input_audio":{"data":"<base64>","format":"mp3"}} | 音频理解;须模型支持 |
/video/generations 的 content 使用 audio_url 表示参考音频;生文 Chat 的音频理解须使用 input_audio,二者不可混用。传入 audio_url 到 Chat 会返回 400 InvalidParameter。
在已有文本前缀基础上继续生成,适用于故事续写、代码补全等。将最后一条消息的 role 设为 assistant,content 填入希望模型接续的前缀,并在请求体设置 continue_final_message: true、add_generation_prompt: false。
{
"role": "user",
"content": "请以童话故事为主题续写:一片森林里,住着一只名叫小白的兔子。"
},
{
"role": "assistant",
"content": "有一天,小白"
}
HTTP 200,OpenAI 兼容 JSON。推理模型除 message.content 外,还可能返回 message.reasoning_content。
默认对话示例
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1710000000,
"model": "doubao-seed-2-0-lite-260215",
"choices": [{
"index": 0,
"message": { "role": "assistant", "content": "你好,有什么可以帮你?" },
"finish_reason": "stop"
}],
"usage": { "prompt_tokens": 10, "completion_tokens": 20, "total_tokens": 30 }
}
深度推理示例(含 reasoning_content)
{
"choices": [{
"message": {
"role": "assistant",
"content": "最终给用户的回答……",
"reasoning_content": "模型内部推理过程……"
},
"finish_reason": "stop"
}],
"usage": { "prompt_tokens": 50, "completion_tokens": 200, "total_tokens": 250 }
}
stream: true)Content-Type 为 text/event-stream,每行 data: {...},末尾 data: [DONE]。增量位于 choices[0].delta:
delta.content:正文增量delta.reasoning_content:推理过程增量(深度推理时可能先输出此项,content 暂时为空)客户端应同时监听两者,避免误判「长时间无输出」。设置 stream_options: {"include_usage": true} 可在末块获取 usage。
data: {"choices":[{"delta":{"reasoning_content":"……","content":""},"index":0}]}
data: {"choices":[{"delta":{"content":"你好"},"index":0}]}
data: [DONE]
| HTTP | 典型 code / 信息 | 说明 |
|---|---|---|
| 422 | 校验失败 | stream 传字符串;JSON 格式错误 |
| 401 | 无效 API Key | 检查 Authorization: Bearer sk-... |
| 403 | 无权调用该平台模型 | Model ID 未上架、未授权或不在模型广场可用列表 |
| 400 | InvalidParameter | 请求参数不合法,如使用了当前模型不支持的 type |
| 400 | audio input is not supported by this model | 当前模型不支持 input_audio,请换用支持音频理解的模型 |
| 400 | MissingParameter | 多模态 text 缺失或为空 |
| 404 | ModelNotOpen 等 | 模型服务返回的业务错误(HTTP 200 时见响应 error 对象;部分场景为 4xx) |
| 502 | 服务暂时不可用 | 平台或模型通道异常,请稍后重试 |
默认对话(非流式)
curl -X POST https://api.xzzgm.cn/api/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seed-2-0-lite-260215",
"messages": [
{"role": "user", "content": "用一句话介绍 TokenFusion 平台"}
],
"max_tokens": 256,
"temperature": 0.7
}'
流式输出
curl -N -X POST https://api.xzzgm.cn/api/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-d '{
"model": "doubao-seed-2-0-lite-260215",
"messages": [{"role": "user", "content": "你好"}],
"stream": true,
"stream_options": {"include_usage": true},
"max_tokens": 512
}'
续写模式
curl -X POST https://api.xzzgm.cn/api/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seed-2-0-lite-260215",
"messages": [
{"role": "user", "content": "请以童话故事为主题续写:一片森林里,住着一只名叫小白的兔子。"},
{"role": "assistant", "content": "有一天,小白"}
],
"continue_final_message": true,
"add_generation_prompt": false,
"max_tokens": 512,
"temperature": 0.7
}'
图片理解
curl -X POST https://api.xzzgm.cn/api/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seed-2-0-pro-260215",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "请用一句话描述这张图片的主要内容"},
{"type": "image_url", "image_url": {"url": "https://example.com/images/view.jpeg"}}
]
}],
"max_tokens": 256,
"temperature": 0.2
}'
视频理解
curl -X POST https://api.xzzgm.cn/api/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seed-2-0-pro-260215",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "请用一句话概括这段视频在做什么"},
{"type": "video_url", "video_url": {"url": "https://example.com/videos/sample.mp4"}}
]
}],
"max_tokens": 256,
"temperature": 0.2
}'
音频理解(input_audio)
curl -X POST https://api.xzzgm.cn/api/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seed-2-0-lite-260428",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "请用一句话描述这段音频的内容或氛围"},
{"type": "input_audio", "input_audio": {"data": "BASE64_AUDIO_DATA", "format": "mp3"}}
]
}],
"max_tokens": 256,
"temperature": 0.2
}'
input_audio.data 为音频文件 Base64(不含 Data URI 前缀);format 常用 mp3、wav。建议用 SDK 或脚本构造请求体。
深度推理
curl -X POST https://api.xzzgm.cn/api/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seed-2-0-lite-260215",
"messages": [{
"role": "user",
"content": "一个农夫需要把狼、羊、白菜运过河,船每次只能载一样。狼不能和羊单独在一起,羊不能和白菜单独在一起。请给出可行步骤并说明理由。"
}],
"reasoning_effort": "high",
"max_tokens": 1024,
"temperature": 0.2
}'
业务错误通常以 OpenAI 兼容的 error 对象返回;平台鉴权与权限错误以 detail 字段返回。
OpenAI 兼容的图像生成接口。使用 TokenFusion API Key 鉴权,按 OpenAI 格式提交请求;平台校验模型权限并返回 JSON 或 SSE 流式响应。
部分图像模型支持扩展参数(如 image、sequential_image_generation、tools 等),是否可用以模型广场中对应模型说明为准。
promptprompt + 单张 image(URL 或 Base64)image 数组(最多 14 张)+ sequential_image_generation: "disabled";prompt 可用「图1/图2」指代image + sequential_image_generation: "auto" + sequential_image_generation_options.max_imagesstream: true,返回 SSE 事件(见下方流式说明)tools: [{"type":"web_search"}],仅 Seedream 5.0(如 doubao-seedream-5-0-260128)支持| 模式 | 关键参数 | 推荐模型 |
|---|---|---|
| 文生图 | prompt | Seedream 4.5 / 4.0 / 5.0 |
| 图生图 | prompt + image(单 URL) | Seedream 4.5 / 4.0 / 5.0 |
| 多图融合 | image 数组 + sequential_image_generation: "disabled" | Seedream 4.5 / 4.0 |
| 多参考图生组图 | image 数组 + sequential_image_generation: "auto" + max_images | Seedream 4.5 / 4.0 |
| 流式输出 | stream: true | Seedream 4.5 / 4.0 / 5.0 |
| 联网搜索 | tools: [{"type":"web_search"}] | 仅 Seedream 5.0(doubao-seedream-5-0-260128) |
具体 Model ID 以模型广场实时列表为准。须传入已上架且当前账户有权调用的 Model ID;传 model 时若无权调用,返回 403,响应体为 {"detail":"无权调用该平台模型"}。
| Header | 必填 | 说明 |
|---|---|---|
Authorization | 是 | Bearer YOUR_API_KEY |
Content-Type | 是 | application/json |
Accept | 否 | 流式时建议 text/event-stream |
下表包含 OpenAI 兼容字段及部分模型扩展字段。未在表中列出、但模型支持的扩展字段也可写入请求体。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| prompt | string | 是 | — | 图像描述文本,不能为空。Seedream 建议不超过约 300 汉字 / 600 英文词 |
| model | string | 是 | — | 图像模型 ID;须为模型广场中已开通的 Model ID,如 doubao-seedream-4-5-251128 |
| image | string / array | 否 | — | Seedream 扩展。参考图 URL 或 Base64(data:image/png;base64,...);支持单图或数组,最多 14 张。不传则为文生图 |
| size | string | 否 | 模型默认 | 输出尺寸。Seedream 可用分辨率关键词 2K、3K(5.0)/ 4K(4.5),或像素值如 2048x2048、2560x1440 |
| sequential_image_generation | string | 否 | disabled | Seedream 扩展。disabled 关闭组图(单图/融合);auto 开启组图,由模型决定张数 |
| sequential_image_generation_options | object | 否 | — | 组图配置,仅 sequential_image_generation: "auto" 时生效 |
| sequential_image_generation_options.max_images | integer | 否 | 15 | 最多生成张数,范围 1~15;须满足「参考图数量 + 输出张数 ≤ 15」 |
| stream | boolean | 否 | false | 是否流式返回;必须为布尔值,字符串 "true" 会返回 422 |
| tools | array | 否 | — | Seedream 5.0 扩展。联网搜索:[{"type":"web_search"}];开启后会按需检索网络,提升时效性但增加时延 |
| watermark | boolean | 否 | true | 是否在图片右下角添加「AI生成」水印;建议生产传 false |
| response_format | string | 否 | url | url 返回下载链接(24 小时内有效);b64_json 返回 Base64 |
| output_format | string | 否 | jpeg | Seedream 5.0 支持 jpeg / png |
| optimize_prompt_options | object | 否 | — | 提示词优化,如 {"mode":"standard"} |
| n | integer | 否 | 1 | OpenAI 兼容字段;Seedream 组图请优先用 sequential_image_generation |
| quality | string | 否 | — | OpenAI 兼容(如 dall-e-3 的 hd);Seedream 通常忽略 |
| background | string | 否 | — | OpenAI 兼容(gpt-image-1);Seedream 通常忽略 |
| style | string | 否 | — | OpenAI 兼容(dall-e-3);Seedream 通常忽略 |
| user | string | 否 | — | 终端用户标识,便于审计 |
| 模型 | 分辨率关键词 | 常用像素示例 |
|---|---|---|
Seedream 5.0(doubao-seedream-5-0-260128) | 2K、3K | 2048×2048、2560×1440、3072×3072 |
Seedream 4.5(doubao-seedream-4-5-251128) | 2K、4K | 2048×2048、2560×1440、2496×1664 |
Seedream 4.0(doubao-seedream-4-0-250828) | 1K、2K、4K | 1024×1024、2048×2048 |
也可在 prompt 中用自然语言描述宽高比,配合 size: "2K" 由模型决定具体像素。
成功响应示例(Seedream 4.5 文生图)
{
"model": "doubao-seedream-4-5-251128",
"created": 1780281542,
"data": [
{
"url": "https://example.com/generated.jpeg",
"size": "2560x1440"
}
],
"usage": {
"generated_images": 1,
"output_tokens": 16280,
"total_tokens": 16280
}
}
联网搜索成功时,usage 可能包含 tool_usage.web_search 计数(Seedream 5.0)。
stream: true)Content-Type 为 text/event-stream。每张图片生成完成后推送 image_generation.partial_succeeded,全部结束后推送 image_generation.completed,末尾为 data: [DONE](仅部分支持流式的模型)。
event: image_generation.partial_succeeded
data: {"type":"image_generation.partial_succeeded","model":"doubao-seedream-4-5-251128","image_index":0,"url":"https://..."}
event: image_generation.completed
data: {"type":"image_generation.completed","usage":{"generated_images":1,"output_tokens":16280,"total_tokens":16280}}
data: [DONE]
文生图
curl -X POST https://api.xzzgm.cn/api/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-4-5-251128",
"prompt": "一只在窗台上晒太阳的橘猫,写实摄影风格,柔和自然光",
"size": "2K",
"watermark": false
}'
图生图
curl -X POST https://api.xzzgm.cn/api/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-4-5-251128",
"prompt": "保持人物姿势不变,将服装材质改为透明清水,光影从反射变为折射",
"image": "https://example.com/images/seedream4_5_imageToimage.png",
"size": "2K",
"watermark": false
}'
多图融合
curl -X POST https://api.xzzgm.cn/api/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-4-5-251128",
"prompt": "将图1的服装换为图2的服装,保持图1的人物姿态",
"image": [
"https://example.com/images/seedream4_imagesToimage_1.png",
"https://example.com/images/seedream4_5_imagesToimage_2.png"
],
"sequential_image_generation": "disabled",
"size": "2K",
"watermark": false
}'
多参考图生组图
curl -X POST https://api.xzzgm.cn/api/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-4-5-251128",
"prompt": "参考图1人物与图2服装风格,生成一组连贯时尚穿搭展示图",
"image": [
"https://example.com/images/seedream4_imagesToimage_1.png",
"https://example.com/images/seedream4_5_imagesToimage_2.png"
],
"sequential_image_generation": "auto",
"sequential_image_generation_options": {"max_images": 3},
"size": "2K",
"watermark": false
}'
流式输出
curl -X POST https://api.xzzgm.cn/api/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-d '{
"model": "doubao-seedream-4-5-251128",
"prompt": "一只在窗台上晒太阳的橘猫,写实摄影风格",
"size": "2K",
"stream": true,
"watermark": false
}'
联网搜索(仅 Seedream 5.0)
curl -X POST https://api.xzzgm.cn/api/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-5-0-260128",
"prompt": "根据当前流行的时装周街拍趋势,生成一张都市时尚街拍照片,自然光,高清",
"tools": [{"type": "web_search"}],
"size": "2K",
"watermark": false
}'
422:stream 传字符串而非布尔值;缺少 prompt403:Model ID 未上架、未授权或不在模型广场可用列表tools 联网搜索;请换用模型广场标注支持该能力的模型业务错误通常以 OpenAI 兼容的 error 对象返回;平台鉴权与权限错误以 detail 字段返回。
面向模型广场中的 Seedance 系列视频模型,提供异步创建、查询与取消。请求体使用 model + content 统一格式;成功创建后返回任务 ID,需轮询查询接口获取视频 URL。素材库 asset:// 仅适用于本节;完整字段说明见在线产品手册(需登录且已授权)。
usage.total_tokens 与模型单价规则扣费。可用余额不足返回 402。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | Seedance 系列 Model ID,须为当前账户已授权模型(如 doubao-seedance-2-0-260128) |
| content | array | 是 | 输入内容数组,见下方 Content 对象说明 |
| resolution | string | 否 | 480p / 720p / 1080p |
| ratio | string | 否 | 16:9 / 4:3 / 1:1 / 3:4 / 9:16 / 21:9 / adaptive |
| duration | integer | 否 | 时长(秒);部分模型支持 -1 表示由模型决定 |
| seed | integer | 否 | 随机种子,-1 表示随机 |
| generate_audio | boolean | 否 | 是否生成同步音频(支持的模型) |
| draft | boolean | 否 | 样片模式(支持的模型) |
| camera_fixed | boolean | 否 | 是否固定镜头 |
| watermark | boolean | 否 | 是否添加水印 |
| return_last_frame | boolean | 否 | 是否返回尾帧图像 URL |
| service_tier | string | 否 | default 或 flex |
| execution_expires_after | integer | 否 | 任务超时阈值(秒),3600~259200 |
| callback_url | string | 否 | 任务进入终态后,平台向该地址推送通知(若您的账户已开通回调能力) |
| tools | array | 否 | 工具配置,如 [{"type":"web_search"}] |
| frames | integer | 否 | 帧数(部分模型) |
文本对象
{ "type": "text", "text": "描述期望生成的视频内容" }
图片对象
{
"type": "image_url",
"image_url": { "url": "https://example.com/frame.jpg" },
"role": "first_frame"
}
role 可选:first_frame(首帧)、last_frame(尾帧)、reference_image(参考图)。也支持 asset://{素材ID} 引用平台素材库(须为当前用户拥有的素材)。
结果返回示例
{ "id": "cgt-2025xxxxxx-xxxx" }
仅返回任务 ID,不包含视频 URL。
查询任务状态与结果。仅可查询当前 API Key 所属用户创建的任务。平台对同一任务有进程内查询缓存与最小间隔限制,轮询过快返回 429(响应头含 Retry-After)。
| 参数 | 类型 | 说明 |
|---|---|---|
| task_id | string | 创建任务时返回的 id |
| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 任务 ID |
| model | string | 模型 ID |
| status | string | queued / running / succeeded / failed / cancelled / expired |
| content.video_url | string | 成功时的视频 URL,请及时转存 |
| content.last_frame_url | string | 尾帧图片 URL(如创建时开启) |
| usage.total_tokens | integer | Token 消耗(用于计费) |
| error | object | 失败时的错误信息 |
| created_at / updated_at | integer | Unix 时间戳 |
请求
curl https://api.xzzgm.cn/api/v1/video/generations/cgt-2025xxxxxx-xxxx \
-H "Authorization: Bearer YOUR_API_KEY"
取消排队中的任务。仅 queued 状态可取消;响应结构与查询接口相同,返回取消后的任务状态。
请求
curl -X POST https://api.xzzgm.cn/api/v1/video/generations/cgt-2025xxxxxx-xxxx/cancel \
-H "Authorization: Bearer YOUR_API_KEY"
面向火山方舟(Volcano Ark)素材库的统一代理接口:将图片、视频、音频等参考素材入库后,在 POST /video/generations 的 content 中通过 asset://{素材ID} 引用。平台使用服务端 AK/SK 访问上游,下游仅需 TokenFusion API Key,不可在 URL 中指定上游账号(如 ?account=...)。
GroupId、ProjectName);Seedance /video/generations 使用小写字段。响应业务数据通常在 Result 字段中。
| 规则 | 说明 |
|---|---|
| 鉴权 | Authorization: Bearer YOUR_API_KEY |
| 权限 | 须已开通火山类视频模型及素材库调用权限,否则 403 |
| 归属 | 仅可访问当前 API Key 用户自己创建的素材组与素材;空列表返回结构化空结果 |
| 项目名 | ProjectName 默认 default,创建素材时需与所属素材组一致 |
| 入库 | CreateAsset 为异步入库,状态通常为 Processing → Active / Failed,仅 Active 可用于生视频 |
| URL 时效 | GetAsset / ListAssets 返回的 URL 短期有效,请尽快使用 |
CreateAssetGroup — 创建素材组,记录 Result.IdCreateAsset — 提交公网可访问素材 URL,记录素材 Result.IdGetAsset — 每 3~5 秒轮询直至 Status 为 ActivePOST /video/generations — 在 content 的 image_url.url / video_url.url / audio_url.url 中填写 asset://{素材ID}以下操作均为 POST,路径中的 {Action} 与表内名称一致。
| Action | 说明 |
|---|---|
CreateAssetGroup | 创建素材组 |
ListAssetGroups | 查询当前用户的素材组列表 |
GetAssetGroup | 查询单个素材组 |
UpdateAssetGroup | 更新素材组名称或描述 |
CreateAsset | 在指定素材组下提交素材(异步入库) |
ListAssets | 查询当前用户的素材列表 |
GetAsset | 查询单个素材状态与 URL |
UpdateAsset | 更新素材名称 |
DeleteAsset | 删除单个素材(暂不支持删除素材组) |
| Header | 必填 | 说明 |
|---|---|---|
Authorization | 是 | Bearer YOUR_API_KEY |
Content-Type | 是 | application/json |
| 字段 / 枚举 | 说明 |
|---|---|
ProjectName | 项目名,默认 default;创建素材时须与所属素材组一致 |
GroupType | 素材组类型,当前固定 AIGC |
AssetType | Image / Video / Audio |
Status | Processing(入库中)→ Active(可用于生视频)/ Failed |
PageNumber / PageSize | 列表分页;PageSize 最大 100 |
POST https://api.xzzgm.cn/api/v1/assets/CreateAssetGroup
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| Name | string | 是 | 素材组名称,建议不超过 64 字符 |
| Description | string | 否 | 描述,建议不超过 300 字符 |
| GroupType | string | 是 | 固定传 AIGC |
| ProjectName | string | 否 | 默认 default |
请求
curl -X POST https://api.xzzgm.cn/api/v1/assets/CreateAssetGroup \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"Name": "brand-hero-v1",
"Description": "品牌主视觉素材组",
"GroupType": "AIGC",
"ProjectName": "default"
}'
响应示例
{
"Result": {
"Id": "group-202604020001"
}
}
POST https://api.xzzgm.cn/api/v1/assets/CreateAsset
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| GroupId | string | 是 | 所属素材组 ID,须为当前用户已创建的组 |
| URL | string | 是 | 公网可访问素材地址(当前仅支持 URL,不支持 Base64) |
| AssetType | string | 是 | Image / Video / Audio |
| Name | string | 否 | 素材名称,便于列表检索 |
| ProjectName | string | 否 | 须与素材组一致,默认 default |
成功仅表示已提交预处理队列;新素材默认 Processing,须轮询 GetAsset 至 Active 后再用于生视频。图片/视频/音频的格式与大小限制以火山方舟素材库文档为准。
请求
curl -X POST https://api.xzzgm.cn/api/v1/assets/CreateAsset \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"GroupId": "group-202604020001",
"URL": "https://example.com/hero-face.png",
"Name": "hero-face-closeup",
"AssetType": "Image",
"ProjectName": "default"
}'
响应示例
{
"Result": {
"Id": "asset-202604020001"
}
}
POST https://api.xzzgm.cn/api/v1/assets/GetAsset
curl -X POST https://api.xzzgm.cn/api/v1/assets/GetAsset \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"Id": "asset-202604020001",
"ProjectName": "default"
}'
响应示例(可用)
{
"Result": {
"Id": "asset-202604020001",
"Name": "hero-face-closeup",
"URL": "https://example-cdn.com/asset/hero-face.png",
"AssetType": "Image",
"GroupId": "group-202604020001",
"Status": "Active",
"ProjectName": "default",
"CreateTime": "2026-04-02T09:03:00Z",
"UpdateTime": "2026-04-02T09:03:20Z"
}
}
Result.URL 通常短期有效,请及时用于下载或生视频;入库轮询建议间隔 3~5 秒。
ListAssets — 仅返回当前用户拥有的素材;Filter.GroupType 必填 AIGC,可按 GroupIds、Statuses、Name 过滤。
ListAssets 请求示例
curl -X POST https://api.xzzgm.cn/api/v1/assets/ListAssets \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"Filter": {
"GroupIds": ["group-202604020001"],
"GroupType": "AIGC",
"Statuses": ["Active"]
},
"PageNumber": 1,
"PageSize": 20,
"SortBy": "CreateTime",
"SortOrder": "Desc",
"ProjectName": "default"
}'
ListAssetGroups、GetAssetGroup、UpdateAssetGroup、UpdateAsset、DeleteAsset 路径分别为 /assets/{Action},请求体字段与火山方舟 Assets API 一致,由平台透传并维护本地归属记录。
素材 Status 为 Active 后,在创建 Seedance 视频任务时使用 asset:// 前缀(须为当前用户拥有的素材 ID):
curl -X POST https://api.xzzgm.cn/api/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0-260128",
"content": [
{"type": "text", "text": "人物在花海中缓慢转身"},
{
"type": "image_url",
"image_url": {"url": "asset://asset-202604020001"},
"role": "reference_image"
}
],
"ratio": "16:9",
"duration": 5
}'
提示词中建议用「图片1」「视频1」等顺序指代参考素材,勿将裸 Asset ID 写入提示词正文。仅支持素材引用的火山视频模型可使用 asset://;可灵等其它上游不支持此引用方式。
| HTTP | 典型 detail | 说明 |
|---|---|---|
403 | 当前用户无权调用素材库 API | 未开通火山类视频模型权限;引用非本人素材 |
404 | 素材组不存在 / 素材不存在 | ID 无效或不属于当前用户;ProjectName 不匹配 |
400 | 不支持的素材库操作 / 不支持指定 account 参数 | Action 不在白名单;URL 勿带 ?account= |
502 / 504 | 上游连接失败 / 响应超时 | 火山素材库链路异常,可稍后重试 |
503 | 当前素材库服务暂时不可用 | 后台未配置或未启用素材库账号 |
部分上游业务错误会以原 HTTP 状态码与响应体透传,平台不做二次包装。更完整的 Seedance 2.0 字段说明见在线产品手册。
面向模型广场中的可灵(Kling)系列视频模型。请使用 /kling/v1/... 路径及本章示例字段。覆盖文生/图生视频、Omni 视频(多模态参考生视频)、动作控制、对口型、数字人、音效、语音合成、自定义音色等能力(以模型广场及账户授权为准)。
402;任务成功后实扣并释放冻结,失败仅释放冻结。同步接口(identify-face、tts)成功即结算;删除类接口不计费。单任务查询须为当前账户创建且路径类型一致。具体价目见模型广场。
创建任务时可在 body 中传 callback_url;任务进入终态后平台推送 video.task.updated 事件(与 Seedance 回调格式一致),常见字段含 task_id、task_status、task_result.videos 等。
创建(POST) 成功时 data 常见字段:
| 字段 | 类型 | 说明 |
|---|---|---|
code | int | 0 表示受理成功;非 0 见错误码表 |
message | string | 状态或错误描述 |
request_id | string | 请求 ID,用于排查 |
data.task_id | string | 系统任务 ID,用于同路径 GET 轮询 |
data.task_status | string | submitted / processing / succeed / failed |
data.task_info.external_task_id | string | 创建时传入的自定义任务 ID(若有) |
data.created_at | int | 创建时间,Unix 毫秒时间戳 |
data.updated_at | int | 更新时间,Unix 毫秒时间戳 |
查询(GET) 终态成功时 data.task_result 常见字段:
| 字段 | 类型 | 说明 |
|---|---|---|
data.task_status_msg | string | 失败原因(如触发内容风控等) |
data.task_result.videos[] | array | 视频结果列表 |
videos[].id | string | 成片视频 ID,全局唯一;可用于延长、对口型、视频生音效等 |
videos[].url | string | 成片下载 URL;生成资源约 30 天后清理,请及时保存 |
videos[].watermark_url | string | 含水印版本 URL(请求中启用水印时返回) |
videos[].duration | string | 视频总时长(秒) |
data.task_result.audios[] | array | 音频类任务成功时的结果(TTS、文生音效等) |
audios[].id | string | 音频 ID,可作为 audio_id 用于数字人、对口型等 |
final_unit_deduction | string | 任务扣减单位数(积分计量) |
查询路径参数 {task_id} 可与创建返回的 task_id 或 external_task_id 二选一填入(须与创建类型路径一致)。
轮询间隔建议 5–10 秒;过快可能 429。查询路径必须与创建时一致(如文生用 text2video,不可用 image2video 路径查)。
官方文档:Text to Video。请求头须含 Content-Type: application/json 与 Authorization: Bearer <API_KEY>。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
model_name | string | 否 | kling-v1 | 模型名称;平台侧请使用模型广场 Model ID(如 kling-v2-6、kling-v3)。历史字段 model 仍兼容,等价于未传 model_name 时的默认行为 |
prompt | string | 是 | — | 正向文本提示,不超过 2500 字符 |
negative_prompt | string | 否 | — | 负向文本提示,不超过 2500 字符 |
sound | string | 否 | off | 是否同步生成声音。枚举 on / off;通常 V2.6 及之后模型支持 |
cfg_scale | float | 否 | 0.5 | 生成视频自由度;值越大自由度越低。范围 [0, 1]。kling-v2.x 通常不支持 |
mode | string | 否 | std | 生成模式。枚举 std(标准)、pro(高品质);具体以模型能力为准 |
camera_control | object | 否 | — | 运镜控制;未传时由模型根据文本智能匹配。子字段见下表 |
aspect_ratio | string | 否 | 16:9 | 画幅宽高比。枚举 16:9、9:16、1:1 |
duration | string | 否 | 5 | 视频时长(秒)。枚举 5、10;部分新型号支持更多档位,见模型说明 |
watermark_info | object | 否 | — | {"enabled": boolean};true 时同时生成含水印结果(响应含 watermark_url),不支持自定义水印图案 |
callback_url | string | 否 | — | 任务终态回调 URL;状态变更时服务端主动通知 |
external_task_id | string | 否 | — | 自定义任务 ID;不覆盖系统 task_id,可用于查询;同一用户账户内须唯一 |
camera_control 子字段| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
type | string | 否 | 预定义运镜类型。枚举 simple、down_back(下移后拉)、forward_up(推进上仰)、right_turn_forward(右转前进)、left_turn_forward(左转前进)。非 simple 时 config 应为空 |
config | object | 条件 | type=simple 时必填;六轴中仅能有一个非零,其余为 0 |
config.horizontal | float | 否 | 水平平移(x 轴),范围 [-10, 10];负左正右 |
config.vertical | float | 否 | 垂直平移(y 轴),范围 [-10, 10];负下正上 |
config.pan | float | 否 | 水平摇镜(绕 y 轴),范围 [-10, 10] |
config.tilt | float | 否 | 垂直俯仰(绕 x 轴),范围 [-10, 10] |
config.roll | float | 否 | 滚转(绕 z 轴),范围 [-10, 10] |
config.zoom | float | 否 | 变焦,范围 [-10, 10];负值焦距更长、视野更小 |
请求示例
curl -X POST https://api.xzzgm.cn/api/v1/kling/v1/videos/text2video \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model_name": "kling-v3",
"prompt": "写实风格,晴朗蓝天下的白色雏菊花田",
"duration": "5",
"aspect_ratio": "16:9",
"mode": "pro",
"sound": "on"
}'
响应示例
{
"code": 0,
"message": "ok",
"data": {
"task_id": "kling-task-xxxx",
"task_status": "submitted"
}
}
curl https://api.xzzgm.cn/api/v1/kling/v1/videos/text2video/kling-task-xxxx \
-H "Authorization: Bearer YOUR_API_KEY"
官方文档:Image to Video。
image 与 image_tail);② 运动笔刷(static_mask 或 dynamic_masks,须同时提供 image);③ 运镜(camera_control 含有效 type 或 config,须同时提供 image)。仅传 image 或仅传 image_tail 为普通图生,可与笔刷/运镜组合(但笔刷与运镜仍互斥)。image 与 image_tail 不能同时为空。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
model_name | string | 否 | kling-v1 | 模型名称;平台侧使用模型广场 Model ID。历史字段 model 仍兼容 |
image | string | 条件 | — | 参考图(首帧/主图)。URL 或 Base64(勿加 data:image/...;base64, 前缀)。jpg/jpeg/png,≤ 10MB,宽/高 ≥ 300px,宽高比 1:2.5 – 2.5:1 |
image_tail | string | 条件 | — | 尾帧控制图;格式同 image。与 image 至少填其一 |
prompt | string | 否 | — | 正向提示,≤ 2500 字符。可用 <<>> 指定音色(顺序与 voice_list 一致,最多 2 个);指定音色时 sound 须为 on。示例:The man<<>> said: "Hello" |
negative_prompt | string | 否 | — | 负向提示,≤ 2500 字符 |
voice_list | array | 否 | — | 引用音色,最多 2 项:[{"voice_id": "..."}]。voice_id 来自自定义音色或系统预置(非对口型 face ID) |
sound | string | 否 | off | 是否生成声音。枚举 on / off;通常 V2.6 及之后支持 |
cfg_scale | float | 否 | 0.5 | 生成自由度,范围 [0, 1]。kling-v2.x 通常不支持 |
mode | string | 否 | std | 枚举 std / pro |
static_mask | string | 否 | — | 静态笔刷遮罩(运动笔刷·静态区)。URL/Base64,格式同 image;宽高比须与 image 一致 |
dynamic_masks | array | 否 | — | 动态笔刷,最多 6 组;每组含 mask 与 trajectories |
dynamic_masks[].mask | string | 是 | — | 动态笔刷遮罩图;分辨率须与 static_mask 一致 |
dynamic_masks[].trajectories | array | 是 | — | 轨迹坐标序列;5s 视频 ≤ 77 点,点数范围 [2, 77];原点为图片左下角 |
trajectories[].x | int | 是 | — | 轨迹点 x(像素) |
trajectories[].y | int | 是 | — | 轨迹点 y(像素) |
camera_control | object | 否 | — | 运镜控制,子字段同文生视频 · camera_control |
duration | string | 否 | 5 | 视频时长(秒)。枚举 5、10 |
watermark_info | object | 否 | — | {"enabled": boolean} |
callback_url | string | 否 | — | 终态回调 URL |
external_task_id | string | 否 | — | 自定义任务 ID,账户内唯一 |
curl -X POST https://api.xzzgm.cn/api/v1/kling/v1/videos/image2video \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model_name": "kling-v3",
"prompt": "让画面中的人物轻轻转头",
"image": "https://example.com/first-frame.png",
"duration": "5"
}'
curl https://api.xzzgm.cn/api/v1/kling/v1/videos/image2video/kling-task-yyyy \
-H "Authorization: Bearer YOUR_API_KEY"
统一多模态生视频接口,路径与可灵官方 Omni Video 一致:POST /v1/videos/omni-video。适用模型如 kling-v3-omni、kling-video-o1(以模型广场授权为准)。
能力概览(单接口覆盖多种场景):
promptimage_list 首帧 / 首尾帧(first_frame、end_frame)video_list 且 refer_type: "base"(成片时长跟随参考视频)video_list 且 refer_type: "feature"(风格/动作参考)element_list 引用已有或 inline 创建的主体multi_shot + multi_promptsound: "on"(与参考视频同时使用时须 sound: "off")prompt、image_list、video_listvideo_list 时 sound 必须为 offend_frame 时必须同时有 first_framebase)时,不能使用首尾帧生视频kling-v3-omni 时长通常 3–15 秒;kling-video-o1 通常 3–10 秒在 prompt 中用占位符关联参考素材(序号与列表顺序一致,从 1 开始):
| 占位符 | 对应字段 |
|---|---|
<<<image_1>>>、<<<image_2>>> | image_list 第 1、2 张参考图 |
<<<video_1>>> | video_list 第 1 段参考视频 |
<<<element_1>>> | element_list 第 1 个主体 |
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
model_name | string | 是 | — | Omni 模型,如 kling-v3-omni、kling-video-o1 |
prompt | string | 条件 | — | 文本提示,≤ 2500 字符;支持 <<<image_1>>> 等占位符。multi_shot=false 时,无图/视频输入时通常必填 |
image_list | array | 否 | — | 参考图列表,见下表 |
video_list | array | 否 | — | 参考视频列表;传入时 sound 必须为 off |
element_list | array | 否 | — | 主体引用,见下表 |
mode | string | 否 | std | 枚举 std(约 720P)、pro(约 1080P);部分支持 4k |
duration | string | 否 | — | 生成时长(秒)。kling-v3-omni 通常 3–15;kling-video-o1 通常 3–10。refer_type: base 时跟随参考视频 |
aspect_ratio | string | 条件 | 16:9 | 枚举 16:9、9:16、1:1;无首帧且非视频编辑时通常必填 |
sound | string | 否 | off | 原生有声。枚举 on / off;有 video_list 时必须 off |
multi_shot | boolean | 否 | false | 多镜头分镜;true 时忽略 prompt,使用 multi_prompt |
shot_type | string | 条件 | — | multi_shot=true 时必填。枚举 customize、intelligence |
multi_prompt | array | 条件 | — | 分镜 1–6 镜。项:index(从 1 连续)、prompt(≤ 512 字)、duration(秒);各镜时长之和 = duration |
watermark_info | object | 否 | — | {"enabled": boolean} |
callback_url | string | 否 | — | 终态回调 URL |
external_task_id | string | 否 | — | 自定义任务 ID,账户内唯一 |
image_list[] 参考图| 字段 | 类型 | 说明 |
|---|---|---|
image_url | string | 图片 URL 或 Base64(勿加 data URI 前缀) |
type | string | 可选。first_frame 首帧;end_frame 尾帧(须同时存在首帧)。不设 type 时可作场景/风格/主体参考图 |
| 格式约束 | — | jpg/jpeg/png,≤ 10MB,宽/高 ≥ 300px,宽高比 1:2.5 – 2.5:1 |
video_list[] 参考视频| 字段 | 类型 | 说明 |
|---|---|---|
video_url | string | 公网可访问的视频 URL |
refer_type | string | base:待编辑成片(生成时长跟随参考视频,不可用首尾帧);feature:特征/动作/风格参考 |
keep_original_sound | string | yes / no,是否保留参考视频原声 |
| 格式约束 | — | mp4/mov,时长 3–10s(部分场景可至 15s),分辨率 720–2160px,24–60fps,≤ 200MB |
element_list[] 主体引用三种方式可混用:
| 方式 | 字段 | 说明 |
|---|---|---|
| 已有主体 | element_id | 整数,已创建主体的 ID |
| Inline 图片主体 | frontal_image | 正面参考图 URL/Base64(必填) |
refer_images | 额外参考图 URL 数组 | |
element_name | 主体名称(可选) | |
element_description | 主体描述(可选) | |
tag_list | 标签列表(可选),项为 {"tag_id": "..."} | |
element_voice_id | 绑定音色 ID(可选) | |
| Inline 视频主体 | refer_videos | 参考视频 URL 数组;有参考视频时不支持视频类 inline 主体 |
| 场景 | 图片 + 主体数量上限 |
|---|---|
| 无参考视频 | 合计 ≤ 7 |
| 有参考视频 | 合计 ≤ 4(不支持视频类 inline 主体) |
| 首尾帧生视频 | 主体 ≤ 3;超过 2 张图时不支持尾帧 |
示例 1 · 纯文生视频
curl -X POST https://api.xzzgm.cn/api/v1/kling/v1/videos/omni-video \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model_name": "kling-v3-omni",
"prompt": "金色柴犬在阳光草地上慢镜头奔跑,电影感",
"mode": "pro",
"duration": "5",
"aspect_ratio": "16:9",
"sound": "off"
}'
示例 2 · 图参考(占位符)
curl -X POST https://api.xzzgm.cn/api/v1/kling/v1/videos/omni-video \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model_name": "kling-v3-omni",
"prompt": "参考 <<<image_1>>>,人物向镜头微笑挥手",
"image_list": [
{ "image_url": "https://example.com/ref.jpg" }
],
"duration": "5",
"aspect_ratio": "16:9",
"mode": "std",
"sound": "off"
}'
示例 3 · 首尾帧图生视频
{
"model_name": "kling-v3-omni",
"prompt": "从白天到夜晚的城市天际线,灯光逐渐亮起",
"mode": "pro",
"duration": "5",
"sound": "off",
"image_list": [
{ "image_url": "https://example.com/day.jpg", "type": "first_frame" },
{ "image_url": "https://example.com/night.jpg", "type": "end_frame" }
]
}
示例 4 · 视频编辑(refer_type: base)
{
"model_name": "kling-v3-omni",
"prompt": "为画面添加飘雪与冷色调",
"mode": "pro",
"aspect_ratio": "16:9",
"sound": "off",
"video_list": [
{
"video_url": "https://example.com/original.mp4",
"refer_type": "base",
"keep_original_sound": "yes"
}
]
}
示例 5 · 多镜头分镜
{
"model_name": "kling-v3-omni",
"multi_shot": true,
"shot_type": "customize",
"duration": "10",
"aspect_ratio": "16:9",
"mode": "pro",
"sound": "off",
"multi_prompt": [
{ "index": 1, "prompt": "城堡远景日出 Establishing shot", "duration": "5" },
{ "index": 2, "prompt": "骑士拔剑特写", "duration": "5" }
]
}
响应示例(创建)
{
"code": 0,
"message": "SUCCEED",
"data": {
"task_id": "task_xxxxxxxx",
"task_status": "submitted"
}
}
响应示例(查询成功)
{
"code": 0,
"message": "SUCCEED",
"data": {
"task_id": "task_xxxxxxxx",
"task_status": "succeed",
"task_result": {
"videos": [
{
"id": "825406034503692376",
"url": "https://...",
"duration": "5.0"
}
]
}
}
}
curl https://api.xzzgm.cn/api/v1/kling/v1/videos/omni-video/task_xxxxxxxx \
-H "Authorization: Bearer YOUR_API_KEY"
官方文档:Motion Control。将人物参考图与动作参考视频结合生成视频;成片时长跟随参考视频。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
model_name | string | 是 | — | 模型名称(如 kling-v2-6、kling-v3) |
image_url | string | 是 | — | 人物参考图 URL 或 Base64;生成视频中人物、背景等元素基于此图 |
video_url | string | 是 | — | 动作参考视频 URL;人物动作与参考视频一致。mp4/mov,最短 3s;最长取决于 character_orientation(见下表) |
character_orientation | string | 是 | — | 生成视频中人物朝向。枚举 image(与参考图一致,参考视频 3–10s)、video(与参考视频一致,参考视频 3–30s) |
mode | string | 否 | std | 枚举 std / pro |
prompt | string | 否 | — | 画面补充描述,≤ 2500 字符 |
negative_prompt | string | 否 | — | 负向提示,≤ 2500 字符 |
keep_original_sound | string | 否 | yes | 是否保留参考视频原声。枚举 yes / no |
watermark_info | object | 否 | — | {"enabled": boolean} |
callback_url | string | 否 | — | 终态回调 URL |
external_task_id | string | 否 | — | 自定义任务 ID,账户内唯一 |
请求示例
curl -X POST https://api.xzzgm.cn/api/v1/kling/v1/videos/motion-control \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model_name": "kling-v3",
"image_url": "https://example.com/person.jpg",
"video_url": "https://example.com/dance-reference.mp4",
"prompt": "人物按参考视频动作跳舞",
"mode": "pro",
"keep_original_sound": "yes",
"character_orientation": "video"
}'
官方文档:Lip-Sync。两步流程:
POST /kling/v1/videos/identify-face(同步)→ 获得 session_id、face_id 列表POST /kling/v1/videos/advanced-lip-sync(异步)→ 轮询 GET .../advanced-lip-sync/{task_id}同步接口:立即返回人脸分析结果,成功即计费。session_id 供对口型使用。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
video_id | string | 二选一 | — | 可灵生成的视频 ID;须在有效期内,时长 ≤ 60s |
video_url | string | 二选一 | — | 公网视频 URL 或 Base64。MP4/MOV,2–60s,720p/1080p,宽/高 512–2160px |
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
session_id | string | 是 | — | identify-face 返回的会话 ID |
face_choose | array | 是 | — | 人脸驱动配置,可为多张脸指定不同音频,见下表 |
model_name | string | 否 | — | 对口型模型(可选) |
watermark_info | object | 否 | — | {"enabled": boolean} |
callback_url | string | 否 | — | 终态回调 URL |
external_task_id | string | 否 | — | 自定义任务 ID,账户内唯一 |
face_choose[] 项
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
face_id | string | 是 | — | identify-face 返回的 face_data[].face_id |
audio_id | string | 二选一 | — | 驱动音频 ID(来自 TTS 等);与 sound_file 互斥 |
sound_file | string | 二选一 | — | 驱动音频 URL 或 Base64;mp3/wav/m4a/aac,≤ 5MB;与 audio_id 互斥 |
sound_start_time | int | 是 | — | 音频裁剪起点,单位 毫秒 |
sound_end_time | int | 是 | — | 音频裁剪终点,单位 毫秒 |
sound_insert_time | int | 是 | — | 音频插入视频时间轴位置,单位 毫秒 |
sound_volume | float | 否 | 1.0 | 驱动音频音量,范围 [0, 2] |
original_audio_volume | float | 否 | 1.0 | 原视频人声音量,范围 [0, 2] |
identify-face 响应示例
{
"code": 0,
"message": "SUCCEED",
"data": {
"session_id": "session_xxxxxxxx",
"face_data": [
{ "face_id": "face_01", "face_image": "https://..." }
]
}
}
advanced-lip-sync 请求示例
curl -X POST https://api.xzzgm.cn/api/v1/kling/v1/videos/advanced-lip-sync \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"session_id": "session_xxxxxxxx",
"face_choose": [
{
"face_id": "face_01",
"audio_id": "825455158141661278",
"sound_start_time": 0,
"sound_end_time": 5000,
"sound_insert_time": 0,
"sound_volume": 1.0,
"original_audio_volume": 0.5
}
]
}'
官方文档:Avatar。路径为 /videos/avatar/image2video(非顶层 image2video)。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
image | string | 是 | — | 数字人参考图 URL 或 Base64(勿加 data URI 前缀)。jpg/jpeg/png,≤ 10MB,宽/高 ≥ 300px;正面人像,人脸清晰无遮挡 |
audio_id | string | 二选一 | — | 驱动音频 ID(来自 TTS 等),有效期约 30 天,时长 2–300s;与 sound_file 互斥 |
sound_file | string | 二选一 | — | 驱动音频 URL 或 Base64;mp3/wav/m4a/aac,≤ 5MB,2–300s;与 audio_id 互斥 |
prompt | string | 否 | — | 画面与动作补充,≤ 2500 字符 |
mode | string | 否 | std | 枚举 std / pro |
callback_url | string | 否 | — | 终态回调 URL |
external_task_id | string | 否 | — | 自定义任务 ID,账户内唯一 |
请求示例(TTS 驱动)
curl -X POST https://api.xzzgm.cn/api/v1/kling/v1/videos/avatar/image2video \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image": "https://example.com/portrait.jpg",
"audio_id": "825455158141661278",
"prompt": "人物面向镜头自然说话",
"mode": "std"
}'
请求示例(音频 URL 驱动)
{
"image": "https://example.com/portrait.jpg",
"sound_file": "https://example.com/speech.mp3",
"prompt": "人物面向镜头自然说话",
"mode": "pro"
}
响应示例(查询成功)
{
"code": 0,
"message": "SUCCEED",
"data": {
"task_id": "task_xxxxxxxx",
"task_status": "succeed",
"task_result": {
"videos": [
{ "id": "825455158141661278", "url": "https://...", "duration": "5.0" }
]
}
}
}
官方文档:TTS。同步接口:一次请求返回合成结果,成功即计费。task_result.audios[0].id 可作为 audio_id 用于数字人、对口型。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
text | string | 是 | — | 待合成文本,最长 1000 字符 |
voice_id | string | 是 | — | 音色 ID,须与 voice_language 匹配;系统预置或自定义音色 |
voice_language | string | 是 | — | 语种。枚举 zh、en |
voice_speed | float / string | 否 | 1.0 | 语速,范围 [0.8, 2.0] |
请求示例
curl -X POST https://api.xzzgm.cn/api/v1/kling/v1/audio/tts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "你好,欢迎使用 TokenFusion。",
"voice_id": "genshin_vindi2",
"voice_language": "zh",
"voice_speed": "1.0"
}'
响应示例
{
"code": 0,
"message": "SUCCEED",
"data": {
"task_id": "task_tts_xxxx",
"task_status": "succeed",
"task_result": {
"audios": [
{
"id": "825455158141661278",
"url": "https://...",
"duration": "3.2"
}
]
}
}
}
数字人、对口型等场景使用 task_result.audios[0].id 作为 audio_id。
官方文档:Text to Audio。异步:创建后轮询同路径 GET 直至 task_status 为 succeed。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
prompt | string | 是 | — | 音效文本描述(环境声、动作声等) |
duration | float / string | 是 | — | 目标时长(秒),范围 3.0–10.0,支持一位小数(如 7.0) |
external_task_id | string | 否 | — | 自定义任务 ID,账户内唯一 |
callback_url | string | 否 | — | 终态回调 URL |
请求示例
curl -X POST https://api.xzzgm.cn/api/v1/kling/v1/audio/text-to-audio \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "清晨鸟鸣与微风声",
"duration": 7.0
}'
响应示例(查询成功)
{
"code": 0,
"message": "SUCCEED",
"data": {
"task_id": "task_audio_xxxx",
"task_status": "succeed",
"task_result": {
"audios": [
{ "id": "...", "url": "https://...", "duration": "7.0" }
]
}
}
}
curl https://api.xzzgm.cn/api/v1/kling/v1/audio/text-to-audio/task_audio_xxxx \
-H "Authorization: Bearer YOUR_API_KEY"
官方文档:Video to Audio。为视频生成匹配音效/配乐(异步)。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
video_id | string | 二选一 | — | 可灵生成的视频 ID;时长 3–20s;与 video_url 互斥 |
video_url | string | 二选一 | — | 公网视频 URL。MP4/MOV,≤ 100MB,3–20s;与 video_id 互斥 |
sound_effect_prompt | string | 否 | — | 音效描述(环境声、动作声等) |
bgm_prompt | string | 否 | — | 背景音乐/配乐描述 |
asmr_mode | boolean | 否 | false | ASMR 增强模式 |
external_task_id | string | 否 | — | 自定义任务 ID |
callback_url | string | 否 | — | 终态回调 URL |
请求示例
curl -X POST https://api.xzzgm.cn/api/v1/kling/v1/audio/video-to-audio \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video_id": "825406034503692376",
"sound_effect_prompt": "与画面氛围匹配的环境音效",
"bgm_prompt": "轻柔的钢琴背景",
"asmr_mode": false
}'
响应示例(查询成功)
{
"code": 0,
"message": "SUCCEED",
"data": {
"task_status": "succeed",
"task_result": {
"audios": [
{ "url": "https://...", "duration": "5.0" }
]
}
}
}
curl https://api.xzzgm.cn/api/v1/kling/v1/audio/video-to-audio/task_v2a_xxxx \
-H "Authorization: Bearer YOUR_API_KEY"
官方文档:Custom Voices。从人声样本或历史视频提取音色(异步创建 + 轮询)。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
voice_name | string | 是 | — | 音色名称 |
voice_url | string | 二选一 | — | 人声样本 URL。mp3/wav/mp4/mov,干净单人人声 5–30s;与 video_id 互斥 |
video_id | string | 二选一 | — | 从可灵历史成片提取(有声视频、数字人、对口型等);与 voice_url 互斥 |
callback_url | string | 否 | — | 终态回调 URL |
external_task_id | string | 否 | — | 自定义任务 ID,可用于查询 |
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
voice_id | string | 是 | 待删除的音色 ID |
创建示例
curl -X POST https://api.xzzgm.cn/api/v1/kling/v1/general/custom-voices \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"voice_name": "my-brand-voice",
"voice_url": "https://example.com/clean-voice-sample.wav"
}'
查询成功响应(节选)
{
"code": 0,
"data": {
"task_status": "succeed",
"task_result": {
"voices": [
{ "voice_id": "829877809978941442", "voice_name": "my-brand-voice" }
]
}
}
}
删除音色(不计费)
curl -X POST https://api.xzzgm.cn/api/v1/kling/v1/general/delete-voices \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"voice_id": "829877809978941442"}'
删除接口 body 仅需 voice_id;创建类接口轮询路径为 GET /kling/v1/general/custom-voices/{id},{id} 为创建返回的 task/资源 ID。
客户可使用平台登录账号和密码查询账户余额。账号即注册邮箱。该接口不会创建登录会话,也不会返回 API Key 或访问令牌;请不要将密码放入 URL Query。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| account | string | 二选一 | 登录邮箱;与 email 等价,推荐用 account |
| string | 二选一 | account 的别名 | |
| password | string | 是 | 平台登录密码 |
| 字段 | 类型 | 说明 |
|---|---|---|
| account | string | 账户邮箱 |
| balance | number | 账户总余额(元),保留 4 位小数 |
| reserved_balance | number | 已冻结额度(元),如视频任务预冻结 |
| available_balance | number | 可用余额 = balance − reserved_balance |
请求
curl -X POST https://api.xzzgm.cn/api/v1/user/balance \
-H "Content-Type: application/json" \
-d '{
"account": "user@example.com",
"password": "YourLoginPassword1"
}'
结果返回示例
{
"account": "user@example.com",
"balance": 100.0,
"reserved_balance": 12.5,
"available_balance": 87.5
}
account + client_ip 在 10 分钟内连续 5 次密码错误将被锁定 15 分钟(429)。请使用 POST JSON 传递密码,切勿写入 URL。
下列列表展示当前账户在模型广场中可见的模型(未登录时展示平台已上架模型)。完整能力说明、参数约束与价格请前往模型广场查看;调用前请确认 Model ID 与您的账户授权一致。
| 显示名 | Model ID | 能力标签 |
|---|---|---|
| doubao-seed-2-1-pro-260628 | doubao-seed-2-1-pro-260628 |
深度思考、文本生成、多模态理解、工具调用 |
| doubao-seed-2-1-turbo-260628 | doubao-seed-2-1-turbo-260628 |
多模态理解、深度思考、工具调用、结构化输出、文本生成 |
| 显示名 | Model ID | 能力标签 |
|---|---|---|
| doubao-seedream-5-0-260128 | doubao-seedream-5-0-260128 |
文生图、图生图 |
| doubao-seedream-4-5-251128 | doubao-seedream-4-5-251128 |
文生组图、单图生组图、多参考图生组图 |
下列模型请使用 /video/generations,见 视频 · Seedance。
| 显示名 | Model ID | 能力标签 |
|---|---|---|
| Seedance 2.0 | doubao-seedance-2-0-260128 |
文生视频、图生视频、首尾帧、有声视频、联网搜索、多模态参考、视频编辑 |
| Seedance 2.0 Fast | doubao-seedance-2-0-fast-260128 |
文生视频、图生视频、首尾帧、有声视频、联网搜索、快速出片 |
| Seedance 1.5 Pro | doubao-seedance-1-5-pro-251215 |
文生视频、图生视频、首尾帧、有声视频、样片模式 |
| Seedance 1.0 Pro Fast | doubao-seedance-1-0-pro-fast-251015 |
文生视频、图生视频、快速出片 |
| doubao-seedance-2.0-mini | doubao-seedance-2-0-mini-260615 |
文生视频、图生视频、首尾帧、有声视频、联网搜索、多模态参考、视频编辑 |
下列模型请使用 /kling/v1/...,见 视频 · 可灵。
| 显示名 | Model ID | 能力标签 |
|---|
402。usage.total_tokens 与模型单价规则实扣。/kling/v1/... 调用时,预冻结按模型版本(mode)、时长(duration)、是否开声音(sound)等维度匹配平台计费规则。asset:// 引用参与 Seedance 生视频时,仍按对应 Seedance 模型规则预冻结与结算。管理接口返回的 available_balance 可用于判断视频任务是否可创建。
| HTTP 状态码 | 典型场景 | 响应体格式 |
|---|---|---|
200 | 请求成功(生文/生图业务失败时也可能为 HTTP 200 + error 字段) | 业务 JSON 或 SSE |
400 | 参数不合法、视频任务创建被模型服务拒绝 | {"detail": ...} |
401 | API Key 无效/缺失;余额查询账号或密码错误 | {"detail":"..."} |
402 | 视频任务创建时 TokenFusion 可用余额不足(需预冻结) | {"detail":"..."} |
403 | 账户已禁用;无权调用素材库;无权访问素材引用;模型 ACL 拒绝 | {"detail":"..."} |
404 | 视频任务不存在;素材组/素材不存在(或不属于当前用户) | {"detail":"..."} |
422 | 请求体 JSON Schema 校验失败(如缺少必填字段、类型错误) | {"detail":[...]} |
429 | 视频任务查询轮询过频;余额查询密码错误次数过多 | {"detail":"..."} |
502 / 504 | 平台服务、模型通道或素材库上游不可用/超时 | {"detail":"..."} 或上游原文 / OpenAI error |
503 | 素材库服务未配置;对应模型暂未开放;无可用模型通道(如 当前模型暂无可用接入点) | {"detail":"..."} |
stream: true,按 SSE 规范解析 data: 行;深度推理时同时监听 delta.reasoning_content 与 delta.content。assistant 消息填前缀,并设 continue_final_message: true、add_generation_prompt: false。doubao-seed-2-0-lite-260428,勿在 Chat 中使用 audio_url。stream: true 并传 Accept: text/event-stream;监听 image_generation.partial_succeeded 逐张渲染,以 data: [DONE] 结束。image 与 sequential_image_generation 组合切换;联网搜索须使用 Seedream 5.0(doubao-seedream-5-0-260128)。/video/generations,可灵用 /kling/v1/...;详见接口分类。429 时遵循 Retry-After 退避。CreateAsset 后轮询 GetAsset 至 Active,再在 content 中用 asset://;素材库用 PascalCase,生视频用小写字段。detail)与 OpenAI 兼容格式的模型业务错误(error 对象);生图 503 model_not_found 多为 Model ID 未在模型广场绑定渠道。