将 Seed 2.0 Pro 260328 与 Comfy Router 搭配使用
通过 Comfy Router 调用 byteplus/seed-2-0-pro-260328:端点、请求结构以及 Router 返回的响应。
将 Seed 2.0 Pro 260328 与 Comfy Router 搭配使用
通过 Comfy Router 调用 byteplus/seed-2-0-pro-260328:端点、请求结构以及 Router 返回的响应。
byteplus/seed-2-0-pro-260328 的 API 参考,由 Comfy Router 从 BytePlus 提供。
输入: 文本, 图像 · 输出: 文本
快速开始
在你的 Comfy 工作区中创建一个密钥,并将其导出为 COMFY_API_KEY。Python 和 TypeScript 代码片段使用 Comfy SDK(pip install comfy-sdk 和 npm install @comfyorg/sdk);cURL 代码片段是通过原生 HTTP 发起的同一调用。
模型 ID: byteplus/seed-2-0-pro-260328
端点: POST https://api.comfy.org/v2/models/byteplus/seed-2-0-pro-260328
[tab] 等待结果 ``python Python theme={null} from comfy_sdk import Comfy # 从环境变量中读取 COMFY_API_KEY。 # SDK 会自动创建幂等键,并在自动重试时复用它。 with Comfy() as client: result = client.models.run( "byteplus/seed-2-0-pro-260328", { "input": "Reply with the single word: ok", }, ) print(result)``typescript TypeScript theme={null} import { comfy } from "@comfyorg/sdk"; // 从环境变量中读取 COMFY_API_KEY。 // SDK 会自动创建幂等键,并在自动重试时复用它。 const { data } = await comfy.models.run("byteplus/seed-2-0-pro-260328", { input: "Reply with the single word: ok", }); console.log(data);``bash cURL theme={null} curl https://api.comfy.org/v2/models/byteplus/seed-2-0-pro-260328 \ -H "X-API-Key: $COMFY_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d "{\"input\": \"Reply with the single word: ok\"}"``
[tab] 排队并稍后收集 将相同的请求体发送到POST https://api.comfy.org/v2/models/byteplus/seed-2-0-pro-260328/requests。运行一经受理,Router 就会立即以201和request_id作为响应;结果就绪后,可以从本进程或其他进程收集。队列投递 介绍了状态、取消与收集。 ``python Python theme={null} import asyncio from comfy_sdk import AsyncComfy # 从环境变量中读取 COMFY_API_KEY。 # 每次 submit() 调用都会生成自己的 Idempotency-Key,并在自动重试时复用它。 async def main(): async with AsyncComfy() as client: handle = await client.models.submit( "byteplus/seed-2-0-pro-260328", { "input": "Reply with the single word: ok", }, ) print("request_id:", handle.request_id) # 加上模型 ID,就是另一个进程所需的全部信息 # 轮询直到请求完成,按服务器指定的 Retry-After 等待。 async for update in handle.iter_events(): print(update.status, update.queue_position) # 提供商自身的负载,与 models.run() 返回的值相同。 # 失败或已取消的请求会在这里抛出带类型的 Router 错误。 result = await handle.get() print(result) asyncio.run(main())``typescript TypeScript theme={null} import { comfy } from "@comfyorg/sdk"; // 从环境变量中读取 COMFY_API_KEY。 // 每次 submit() 调用都会生成自己的 Idempotency-Key,并在自动重试时复用它。 const handle = await comfy.models.submit("byteplus/seed-2-0-pro-260328", { input: "Reply with the single word: ok", }); console.log("requestId:", handle.requestId); // 加上模型 ID,就是另一个进程所需的全部信息 // 轮询直到请求完成,按服务器指定的 Retry-After 等待。 for await (const update of handle.events()) { console.log(update.status, update.queuePosition); } // 与 models.run() 返回的结果相同。失败或已取消的请求会在这里被拒绝。 const result = await handle.get(); console.log(result.data);``bash cURL theme={null} # 1. 提交。Router 返回 201,以及 request_id、status_url、response_url 和 cancel_url。 curl https://api.comfy.org/v2/models/byteplus/seed-2-0-pro-260328/requests \ -H "X-API-Key: $COMFY_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d "{\"input\": \"Reply with the single word: ok\"}" # 2. 轮询直到状态为 COMPLETED,按每个响应指定的 Retry-After 秒数等待。 REQUEST_ID="<request_id from the 201 body>" curl -i https://api.comfy.org/v2/models/byteplus/seed-2-0-pro-260328/requests/$REQUEST_ID/status \ -H "X-API-Key: $COMFY_API_KEY" # 3. 收集。完成后返回 200 和模型的原始输出,模型仍在运行时返回 202 和状态正文。 curl https://api.comfy.org/v2/models/byteplus/seed-2-0-pro-260328/requests/$REQUEST_ID \ -H "X-API-Key: $COMFY_API_KEY"``
Schema
输入
caching object
上下文缓存配置。
caching.prefix boolean (default: false)
当为 true 时,仅创建公共前缀缓存;模型不会作出响应。
caching.type string
可选值:enabled、disabled
context\_management object
上下文管理策略(clear_thinking、clear_tool_uses),用于保持上下文窗口可控。
context\_management.edits object[]
单个上下文编辑策略,由 type 区分。
expire\_at integer
存储的响应与缓存的过期时间,Unix 时间戳(秒,UTC)。范围 (creation\_time, creation\_time + 604800]。默认:creation\_time + 259200(3 天)。
include string[]
需要额外包含的输出字段。当前支持:reasoning.encrypted_content(加密并压缩的推理内容,供手动多轮复用)。
input string | object[] required
提供给模型的文本内容或输入项列表。
instructions string
作为第一条指令前置的系统/开发者消息。与 caching 不兼容:如果 caching.type 为 enabled,设置 instructions 会返回错误。
max\_output\_tokens integer
最大输出 token 数(响应 + 思维链)。
max\_tool\_calls integer
范围:1 到 10
model string
模型 ID 或 Endpoint ID。模型列表见 https://docs.byteplus.com/en/docs/ModelArk/1330310,Endpoint ID 见 https://docs.byteplus.com/en/docs/ModelArk/1099522。直接对 POST /proxy/byteplus/api/v3/responses 发起 v1 调用时,必须提供该字段:代理会拒绝不在其自身允许列表中的任何值,缺省时则返回 400。它不在 Comfy Router 输入 schema 的 required 列表中,因为 Router 会从 /v2/models/byteplus/\{model} 的 {model} 路径段填充该字段,因此 Router 调用方会省略它。
previous\_response\_id string
上一个响应的 ID,用于继续多轮对话。请求之间插入约 100ms 的间隔可避免失败。
reasoning object
限制深度思考的工作量。
reasoning.effort string
minimal 会完全禁用思考。当 thinking.type = disabled 时,仅允许使用 minimal。
可选值:minimal、low、medium、high
store boolean (default: true)
当为 true 时,响应会被持久化,并可通过 ID 检索以用于多轮对话。
temperature number (default: 1)
范围:0 到 2
格式:float
text object
输出格式配置。
text.format object
由 type 区分的文本输出格式。text 返回自然语言,json_object 返回自由形式的 JSON 对象,json_schema 将输出约束为调用方提供的 JSON Schema。
thinking object
控制深度思考模式。
thinking.type string
enabled:始终先推理再响应。 disabled:不作额外推理直接响应。 auto:由模型按查询自行决定。
可选值:enabled、disabled、auto
tool\_choice \\none, auto, required | object
工具选择模式。仅 seed-1-6 模型支持该字段。
tools object[]
模型可以调用的工具。目前仅支持 function。
tools\[].description string
tools\[].name string required
tools\[].parameters object required
描述函数参数的 JSON Schema。
tools\[].type string required (default: "function")
可选值:function
top\_p number (default: 0.7)
范围:0 到 1
格式:float
本文档依据 Router 在 GET /v2/models/byteplus/seed-2-0-pro-260328/openapi.json 提供的 schema 生成,即请求到达提供商之前用于校验调用的同一份文档。
输出
caching object
caching.prefix boolean
caching.type string
可能的值:enabled、disabled
context\_management object
本次响应中实际应用的上下文管理策略。与请求侧的 BytePlusResponseContextManagement(用于配置策略)不同,此处回显的是服务器实际调用的策略,并附上被清理内容的数量。
context\_management.applied\_edits object[]
一条已应用的上下文编辑,通过 type 区分。
created\_at integer required
响应创建时的 Unix 时间戳(秒)。
error object
错误详情。响应成功时为 null。
error.code string required
error.message string required
expire\_at integer
所存储响应过期时的 Unix 时间戳(秒)。
id string required
响应的唯一 ID。可作为 previous_response_id 用于继续对话。
incomplete\_details object
当 status 为 incomplete 时填充。
incomplete\_details.reason string
例如 max_output_tokens、content_filter。
instructions string
请求中 instructions 字段的回显。
max\_output\_tokens integer
max\_tool\_calls integer
metadata object
model string required
生成该响应的模型 ID。
object string required (default: "response")
可能的值:response
output object[] required
模型按顺序产生的输出项。
previous\_response\_id string
reasoning object
reasoning.effort string
可能的值:minimal、low、medium、high
service\_tier string
TPM 保障包的使用情况。default 表示未使用。
可能的值:default
status string required
可能的值:in_progress、completed、incomplete、failed、cancelled
store boolean
stream boolean
temperature number
格式:float
text object
请求中 text 字段的回显。
text.format object
通过 type 区分的文本输出格式。text 返回自然语言,json_object 返回自由形式的 JSON 对象,json_schema 将输出约束为调用方提供的 JSON Schema。
thinking object
thinking.type string
可能的值:enabled、disabled、auto
tool\_choice \\none, auto, required | object
tools object[]
模型可调用的工具。目前仅支持 function。
tools\[].description string
tools\[].name string required
tools\[].parameters object required
描述该函数参数的 JSON Schema。
tools\[].type string required (default: "function")
可能的值:function
top\_p number
格式:float
usage object
用于计费和可观测性的 token 用量明细。
usage.input\_tokens integer required
请求中的 token 总数。
usage.input\_tokens\_details object
输入 token 的明细(缓存命中数等)。
usage.input\_tokens\_details.cached\_tokens integer
由上下文缓存提供的 token 数。
usage.output\_tokens integer required
模型生成的 token 总数。
usage.output\_tokens\_details object
输出 token 的明细(推理等)。
usage.output\_tokens\_details.reasoning\_tokens integer
思维链消耗的 token 数。
usage.tool\_usage object
各工具的调用次数。
usage.tool\_usage.image\_process integer
图像处理工具的调用次数。
usage.tool\_usage.mcp integer
MCP 工具的调用次数。
usage.tool\_usage.web\_search integer
web 搜索工具的调用次数。
usage.tool\_usage\_details object
各工具下子工具调用次数的明细。
usage.tool\_usage\_details.image\_process object
例如 {"zoom":1,"point":1,"grounding":1}。
usage.tool\_usage\_details.mcp object
例如 {"mcp_server_tos":1,"mcp_server_tls":1}。
usage.tool\_usage\_details.web\_search object
例如 {"toutiao":1,"moji":1,"search_engine":1}。
usage.total\_tokens integer required
input\_tokens + output\_tokens。
示例
输入
{
"input": "Reply with the single word: ok"
}
输出
{
"created_at": 1767225600,
"id": "resp_0a1b2c3d4e5f6a7b8c9d0e1f",
"model": "seed-2-0-pro-260328",
"object": "response",
"output": [
{
"content": [
{
"annotations": [],
"text": "ok",
"type": "output_text"
}
],
"id": "msg_0a1b2c3d4e5f6a7b8c9d0e1f",
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"status": "completed",
"usage": {
"input_tokens": 14,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 2,
"total_tokens": 16
}
}
发布前须知
SDK 会生成 Idempotency-Key 并在自动重试中复用它。手动重试时,请复用原始 key。Router 最长可保持连接 10 分钟。
请求失败时,Router 会发送 X-Comfy-Error-Type 响应头说明原因。422 表示 Router 在调用提供商之前就拒绝了输入,413 表示请求体超出了 Router 可接受的大小。已生成的资源请及时下载,因为结果 URL 会过期。
上文任何字段描述中提到的尺寸限制,都是提供商对该字段自身的限定,引自提供商的规范。Router 会对整个请求体另行设置上限,base64 编码的媒体内容也计入其中:参见请求体大小。
本页记录的是通过 Comfy Router 调用的某一个合作伙伴模型。同一个 comfy-sdk / @comfyorg/sdk 包还提供第二个客户端,用于在 Comfy Cloud 上运行完整的 ComfyUI 工作流图:Comfy(api_key=...) / new Comfy({ apiKey }),并带有 client.workflows、client.assets 和 client.jobs。请参阅 Comfy SDKs。
[card] 请求头 身份验证、幂等性、请求 ID、错误分类、重试节奏、消费限额。
[card] 使用 Router API 模型发现、验证错误、重试与计费。
[card] 限制 Router 目前不支持的功能,以及替代方案。