One catalog
Use text, image and video models through one account.
Use text, image and video models through one account.
Keep OpenAI and Anthropic request formats where supported.
Compare ArgoLink and official prices before you send a request.
Review token usage, requests and cost from the console.
Model catalog
QUICK START
Open your user center to view only your own balance, access, and usage.
Name the key, set its limits, and use every enabled model.
Set the API Base URL in your client and keep its native protocol.
从注册到发出第一个请求,大约五分钟。
curl -sS https://54-151-42-83.sslip.io/v1/responses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"input": "Introduce yourself in one sentence",
"stream": false
}'
先确认 HTTP 状态码为 2xx,再按所用协议检查响应字段:Responses 看 output 或 output_text,Chat Completions 看 choices[0].message.content。模型 ID 必须来自实时目录;模型页会标出正确的请求格式。
所有请求发往同一个 Base URL,用 API Key 作为 Bearer 令牌认证。
| 协议 / 能力 | 端点 |
|---|---|
| OpenAI Responses 协议 | POST /v1/responses |
| OpenAI Chat Completions | POST /v1/chat/completions |
| Anthropic Messages 协议 | POST /v1/messages |
| 获取可用模型列表(无需鉴权,推荐) | GET /v1/models |
| 获取可用模型列表(无需鉴权,兼容路径) | GET /models |
| 获取可用模型列表(无需鉴权,Gemini 格式) | GET /v1beta/models |
| 图像生成与编辑 | POST /v1/images/generations · /v1/images/edits |
| 视频生成(异步) | POST /v1/videos/generations |
模型列表和定价页面以及下面三个模型发现接口都是公开资源,不需要登录态、Cookie 或 API Key。三个接口读取同一份 ArgoLink 模型目录,区别只在访问路径和返回的 JSON 协议格式。
| 端点 | 返回格式 | 适用场景 |
|---|---|---|
/v1/models | OpenAI 兼容的 object + data[] | 推荐;适用于大多数支持 OpenAI 接口的客户端 |
/models | 与 /v1/models 完全相同 | 兼容只请求根路径 /models 的客户端 |
/v1beta/models | Gemini 兼容的 models[] | 适用于按 Gemini ListModels 格式读取模型的客户端 |
这是默认的模型发现接口。返回 OpenAI 兼容列表;每个 data 元素代表一个可用模型。
curl -sS https://54-151-42-83.sslip.io/v1/models
{
"object": "list",
"data": [
{
"id": "gpt-5.6-sol",
"object": "model",
"created": 0,
"owned_by": "openai"
}
]
}
| 字段 | 含义 |
|---|---|
data[].id | 调用推理或媒体接口时填写的模型 ID |
data[].owned_by | 模型提供商 ID |
data[].object | 固定为 model |
data[].created | 兼容字段,当前固定为 0,不代表模型发布日期 |
这是 /v1/models 的精确别名。两者的响应体、状态码、模型顺序、ETag 和缓存行为完全一致;新接入应优先使用 /v1/models,只有客户端固定请求 /models 时才需要这个路径。
这个接口返回 Gemini 兼容的模型资源列表。模型 ID 在 name 中带有 models/ 前缀,不带前缀的原始 ID 位于 baseModelId。
curl -sS https://54-151-42-83.sslip.io/v1beta/models
{
"models": [
{
"name": "models/gpt-5.6-sol",
"baseModelId": "gpt-5.6-sol",
"version": "001",
"displayName": "gpt-5.6-sol",
"description": "..."
}
]
}
# OpenAI 兼容格式
curl -sS https://54-151-42-83.sslip.io/v1/models | jq -r '.data[].id'
# Gemini 格式;输出不带 models/ 前缀的原始模型 ID
curl -sS https://54-151-42-83.sslip.io/v1beta/models | jq -r '.models[].baseModelId'
公开列表表示 ArgoLink 当前对外展示和售卖的模型。发起推理、图片或视频请求时仍必须发送 Authorization: Bearer YOUR_API_KEY,并确保该 Key 所在分组有模型访问权限。也可以直接打开模型列表和定价浏览同一份目录。
各协议请求体与官方格式一致;媒体 API 的完整可运行示例见左侧对应章节。
先按客户端选择协议,再从实时目录选择模型。ArgoLink 公开三种文本协议、统一图片入口和异步视频任务;左侧模型页只记录模型特有差异。
公开模型目录是可用模型、厂商和推荐端点的唯一准确信息源。下面的命令按厂商顺序列出当前全部文本模型,不限定国内或国外厂商。
curl -sS 'https://54-151-42-83.sslip.io/api/catalog/v1/models?category=chat&sort=provider&page_size=100' \
| jq -r '.items[] | [.provider_id, .id, .endpoint] | @tsv'
GET /v1/models、GET /models 和 GET /v1beta/models 只负责用不同兼容格式列出公开目录。生成回答时,必须调用下面某一个需要鉴权的 HTTP 推理端点。
| 客户端协议 | 端点 | 网关行为 |
|---|---|---|
| OpenAI Responses | POST /v1/responses | Responses 请求格式;模型页会标出是否为该模型的推荐入口,上游需要时会转换成 Chat Completions |
| OpenAI Chat Completions | POST /v1/chat/completions | 可直接接收,并通过选中的供应商账号转发 |
| Anthropic Messages | POST /v1/messages | ArgoLink 负责桥接 Anthropic 请求与响应格式 |
ArgoLink 接收上面三种下游 HTTP 协议,并按账号能力转换到对应上游。模型是否支持视觉、推理强度、工具调用等可选字段,以当前模型专页和实时目录为准。
供应商的参数并不通用。需要精确控制时,优先调用 /v1/chat/completions,并按下表发送顶层 reasoning_effort 或 thinking。表中的“实际行为”同时考虑了供应商规则、ArgoLink 当前网关转换和真实请求结果。
| 模型 | 可以发送 | ArgoLink 当前实际行为 |
|---|---|---|
deepseek-v4-pro-0813deepseek-v4-flash-vision-exp | thinking.type: enabled / disabledreasoning_effort: low / medium / high / xhigh / max | low→low,medium/high/xhigh→high,max→max。未指定时默认开启思考,强度为 high。实验 Vision 型号的开关和 low/max 已通过当前上游实测。 |
glm-5.1 | thinking.type: enabled / disabled | 只使用思考开关;该型号的官方接口不支持 reasoning_effort。 |
glm-5.2 | 开启:thinking.type=enabled关闭:同时发送 thinking.type=disabled 与 reasoning_effort=none开启时可发送 low / medium / high / xhigh / max | low/medium/high→high,xhigh/max→max。当前上游只发送 none 仍可能继续思考,所以关闭时两个字段必须一起发送。 |
glm-5.3glm-5.3-flash | reasoning_effort: low / high / max | 思考不能关闭。当前网关会把 low 和 high 都转成上游 high,max 保持 max;因此当前真正可区分的是 high 与 max 两档。 |
kimi-k2.6 | thinking.type: enabled / disabled | 不支持 reasoning_effort。当前上游在关闭思考时会把响应模型报告为 auto;严格校验响应模型时建议保持开启。 |
kimi-k2.7-code | 省略 thinking;如需显式发送,只能使用 {"type":"enabled","keep":"all"} | 思考始终开启,不支持 reasoning_effort。不要发送 thinking.type=disabled;当前上游兼容层虽然可能返回 200,但响应模型会变成 auto,不再满足固定模型契约。 |
kimi-k3 | reasoning_effort: low / high / max | 默认值是 max,三档会原样转发。K3 始终思考;不要发送 thinking,实测 thinking.type=disabled 会被忽略。 |
低延迟场景应在第一轮就显式设置 reasoning_effort: "low",并开启 stream: true。不要在同一对话中途切换强度;Kimi 官方说明切换会使前缀缓存失效。上游对未知字段可能返回 200 但忽略它,因此“请求成功”不代表参数已经生效。
curl -N https://54-151-42-83.sslip.io/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kimi-k3",
"messages": [{"role": "user", "content": "用两句话解释 API 操作的幂等性"}],
"reasoning_effort": "low",
"stream": true
}'
对原生支持强度的模型,Responses 请求使用 reasoning.effort,网关会转换为 Chat Completions 的 reasoning_effort。DeepSeek 的 Responses 值为 none/low/high/max,其中 none 关闭思考。Kimi K2.6、K2.7 的精确思考开关不是强度字段,应使用上面的 Chat Completions 写法。
curl -sS https://54-151-42-83.sslip.io/v1/responses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro-0813",
"input": "用两句话解释 API 操作的幂等性"
}'
curl -sS https://54-151-42-83.sslip.io/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.3",
"messages": [
{"role": "user", "content": "用两句话解释 API 操作的幂等性"}
]
}'
curl -sS https://54-151-42-83.sslip.io/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "kimi-k2.7-code",
"max_tokens": 256,
"messages": [
{"role": "user", "content": "用两句话解释 API 操作的幂等性"}
]
}'
图片理解请使用 deepseek-v4-flash-vision-exp。把示例 URL 换成外网可以直接访问的图片地址。
curl -sS https://54-151-42-83.sslip.io/v1/responses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-flash-vision-exp",
"input": [{
"role": "user",
"content": [
{"type": "input_text", "text": "简要描述这张图片"},
{"type": "input_image", "image_url": "https://your-public-image.example/image.jpg"}
]
}]
}'
每个模型的输入、输出、缓存读取与缓存写入价格,以实时模型列表和定价页面为准。DeepSeek 工作日高峰价、GLM Flash 促销期限等时效信息也显示在对应模型卡片中;请求示例不构成报价。
ArgoLink 的 OpenAI Responses 请求格式,也是 Codex CLI / Desktop 手动接入时使用的协议。支持字符串或结构化输入、流式输出、工具调用和模型特定的推理控制;具体模型是否推荐此入口,以模型页为准。
Authorization: Bearer YOUR_API_KEY| 字段 | 必填 | 说明 |
|---|---|---|
model | 是 | 实时目录中的文本模型 ID。 |
input | 是 | 字符串,或包含角色、文本、图片和文件内容块的数组。 |
instructions | 否 | 本次请求的系统级说明。 |
stream | 否 | true 时返回 SSE 事件流。 |
max_output_tokens | 否 | 限制最大输出 Token;仍受模型自身上限约束。 |
tools / tool_choice | 否 | 声明工具和选择策略;实际工具能力取决于模型。 |
reasoning | 否 | 例如 {"effort":"low"};可用档位以模型专页为准。 |
curl -sS https://54-151-42-83.sslip.io/v1/responses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"input": "用一句话说明这个接口已经连接成功"
}'非流式响应的主要内容位于 output[];文本块使用 type=output_text。用量位于 usage。不要假设文本永远固定在某个数组下标,工具调用和推理块也可能出现在 output[] 中。
Codex 的 wire_api 必须是 responses,Base URL 必须以 /v1 结尾。完整配置见Codex CLI / Desktop。
面向 OpenAI 兼容客户端的消息数组接口。适合传统 SDK、Cherry Studio,以及需要直接控制 DeepSeek、GLM、Kimi 思考参数的调用。
Authorization: Bearer YOUR_API_KEY| 字段 | 必填 | 说明 |
|---|---|---|
model | 是 | 实时目录中的文本模型 ID。 |
messages | 是 | 按顺序排列的 system、user、assistant 或 tool 消息。 |
stream | 否 | true 时返回 SSE 增量块。 |
max_completion_tokens | 否 | 推荐的输出上限字段;兼容旧字段 max_tokens。 |
tools / tool_choice | 否 | 函数工具定义与选择策略。 |
reasoning_effort / thinking | 否 | 不是通用参数;必须按模型专页选择写法。 |
curl -sS https://54-151-42-83.sslip.io/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro-0813",
"messages": [{"role":"user","content":"用一句话说明连接成功"}],
"stream": false
}'非流式文本通常位于 choices[0].message.content,结束原因位于 choices[0].finish_reason,计费用量位于 usage。流式调用把 stream 设为 true,并从每个 SSE 块的 choices[].delta 累积文本和工具调用。
例如 Kimi K2.7 Code、Kimi K3 与 DeepSeek 的思考字段并不相同。请求能返回 200 也不代表未知字段生效;先看左侧对应模型页。
原生 Anthropic Messages 兼容接口,供 Claude Code 和 Anthropic SDK 使用。ArgoLink 会保留 Messages 的请求与响应结构,并按所选模型桥接到实际上游。
x-api-key: YOUR_API_KEY;也接受 Bearer。兼容版本头:anthropic-version: 2023-06-01| 字段 | 必填 | 说明 |
|---|---|---|
model | 是 | 实时目录中的文本模型 ID,不要求模型名称以 Claude 开头。 |
messages | 是 | user / assistant 消息数组;内容可为字符串或内容块数组。 |
max_tokens | 是 | 本次响应允许生成的最大 Token 数。 |
system | 否 | 顶层系统提示词;不要把 system 角色塞进 messages。 |
stream | 否 | true 时返回 Anthropic SSE 事件。 |
tools / tool_choice | 否 | Anthropic 工具定义与选择策略。 |
thinking / output_config | 否 | 模型特定的思考开关或强度;先查模型页。 |
curl -sS https://54-151-42-83.sslip.io/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "kimi-k2.7-code",
"max_tokens": 256,
"messages": [{"role":"user","content":"用一句话说明连接成功"}]
}'非流式响应的内容位于 content[];文本块的类型为 text,工具调用块为 tool_use。结束原因位于 stop_reason,用量位于 usage。流式响应依次发送 message_start、内容块事件、message_delta 和 message_stop。
Claude Code 只需要配置根地址和认证 Token,客户端会自动请求 /v1/messages。完整配置见Claude Code。
统一的 OpenAI Images 兼容入口。文生图使用 JSON,参考图编辑支持 JSON 图片引用或 multipart 文件上传;尺寸、比例、质量和参考图数量由具体模型决定。
Authorization: Bearer YOUR_API_KEY;建议客户端超时至少 600 秒。| 字段 | 说明 |
|---|---|
model | 必填;使用实时目录中 category=image 的模型 ID。 |
prompt | 必填;描述生成目标或编辑要求。 |
n | 可选;请求结果数量。允许范围和实际返回数取决于模型。 |
response_format | 可选;b64_json 或 url,以模型指南为准。 |
| 参考图编辑 | JSON 使用 images[].image_url 传入公网 HTTPS 地址或 data URL;multipart 则为每张参考图重复一个文件字段。具体数量上限以模型指南为准。 |
| 模型专属字段 | size、quality、aspect_ratio、resolution、output_format 等不能跨模型照搬。 |
不同平台可能按模型拆分大量图片子路径;ArgoLink 的公开路径统一,差异集中在模型参数。先选模型,再使用对应模型指南中的可运行示例。
异步视频任务接口。先提交生成任务并保存 request_id,再用同一把 Key 查询状态或从受保护的内容端点下载视频。
POST /v1/videos/generations 发送 model、prompt 和该模型支持的时长、比例、分辨率或参考图字段。request_id。它是后续查询和下载的唯一任务标识。pending 时继续等待;done 后下载;failed 或 expired 时读取完整错误。状态和内容查询会校验任务所有权。必须使用创建任务时同一用户的 Key;换 Key 或猜测 ID 都会得到找不到任务。
固定模型 ID: deepseek-v4-pro-0813。适合通用文本、编程与可控强度推理。
/v1/responses 与 /v1/messages;精确控制思考时推荐 Chat Completions。可发送顶层 thinking.type 为 enabled 或 disabled;强度可用 low、medium、high、xhigh、max。当前实际映射为 low→low、medium/high/xhigh→high、max→max;省略时默认开启并使用 high。
curl -sS https://54-151-42-83.sslip.io/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro-0813",
"messages": [{"role": "user", "content": "用两句话解释幂等 API"}],
"reasoning_effort": "low"
}'输入、输出、缓存和工作日高峰价格见实时模型列表和定价。
固定模型 ID: deepseek-v4-flash-vision-exp。用于图片理解与多模态问答。
思考开关与强度规则和 V4 Pro 相同。当前上游已经真实验证 thinking.type 开关以及 low、max 两端强度;这是实验模型,调用方应容忍版本与延迟变化。
curl -sS https://54-151-42-83.sslip.io/v1/responses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-flash-vision-exp",
"input": [{"role": "user", "content": [
{"type": "input_text", "text": "简要描述这张图片"},
{"type": "input_image", "image_url": "https://example.com/image.jpg"}
]}],
"reasoning": {"effort": "low"}
}'该模型同样存在工作日高峰价,以实时模型列表和定价为准。
固定模型 ID: glm-5.1。该型号只支持思考开关,不支持推理强度等级。
只发送顶层 thinking: {"type":"enabled"} 或 thinking: {"type":"disabled"};不要发送 reasoning_effort。
curl -sS https://54-151-42-83.sslip.io/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"model":"glm-5.1","messages":[{"role":"user","content":"解释一次数据库事务"}],"thinking":{"type":"enabled"}}'实际价格见模型列表和定价。
固定模型 ID: glm-5.2。支持思考开关与有限的强度映射。
开启时可发送 low、medium、high、xhigh、max;实际映射为 low/medium/high→high、xhigh/max→max。关闭时同时发送 thinking.type=disabled 与 reasoning_effort=none;只发送 none 仍可能继续思考。
curl -sS https://54-151-42-83.sslip.io/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"model":"glm-5.2","messages":[{"role":"user","content":"只回答 OK"}],"thinking":{"type":"disabled"},"reasoning_effort":"none"}'实际价格见模型列表和定价。
固定模型 ID: glm-5.3。思考始终开启。
可发送 low、high、max,但当前网关把 low 与 high 都映射为上游 high,max 保持 max。因此现在真正可区分的只有 high 与 max 两档,且不能关闭思考。
curl -sS https://54-151-42-83.sslip.io/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"model":"glm-5.3","messages":[{"role":"user","content":"比较悲观锁和乐观锁"}],"reasoning_effort":"max"}'实际价格见模型列表和定价。
固定模型 ID: glm-5.3-flash。低成本快速型号,思考始终开启。
可发送 low、high、max;当前有效档位是 high 与 max,不能关闭思考。价格可能有促销期限,不要从请求示例推断报价。
curl -sS https://54-151-42-83.sslip.io/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"model":"glm-5.3-flash","messages":[{"role":"user","content":"生成一个 SQL 分页查询"}],"reasoning_effort":"high"}'促销状态与实际价格见模型列表和定价。
固定模型 ID: kimi-k2.6。支持开关思考,不支持推理强度等级。
发送 thinking.type 为 enabled 或 disabled;不要发送 reasoning_effort。当前上游关闭思考时会把响应模型报告为 auto,严格校验响应模型 ID 时应保持开启。
curl -sS https://54-151-42-83.sslip.io/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"model":"kimi-k2.6","messages":[{"role":"user","content":"解释事件溯源"}],"thinking":{"type":"enabled"}}'实际价格见模型列表和定价。
固定模型 ID: kimi-k2.7-code。面向编程任务,思考始终开启。
不支持 reasoning_effort,也不能关闭思考。不要发送 thinking.type=disabled;当前兼容层可能仍返回 200,但响应模型会变成 auto,不再满足固定模型契约。
curl -sS https://54-151-42-83.sslip.io/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"model":"kimi-k2.7-code","messages":[{"role":"user","content":"重构这个 Go 函数并解释边界条件"}],"thinking":{"type":"enabled","keep":"all"}}'实际价格见模型列表和定价。
固定模型 ID: kimi-k3。始终思考,默认强度是最重的 max。
支持 low、high、max,三档原样转发。不要发送 thinking;实测 disabled 会被忽略。同一对话中途切换强度会使 Kimi 前缀缓存失效,因此应从首轮固定强度。K3 的 max 本来就慢;使用 low + stream 可明显降低首字等待,但总耗时仍取决于上游排队和输出长度。
curl -N https://54-151-42-83.sslip.io/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"model":"kimi-k3","messages":[{"role":"user","content":"用两句话解释幂等 API"}],"reasoning_effort":"low","stream":true}'实际价格见模型列表和定价。
通过图形界面管理 Provider,是 Codex 和 Claude Code 最简单的接入方式。
模型映射请使用目录中的精确模型 ID。/v1/models 返回公开模型 ID,不会自动追加 [1m]。在 Claude Code 中,[1m] 是客户端能力声明,不是上游模型名,Claude Code 发送请求前会去掉它。只有模型页或目录记录了扩展上下文时才启用 1M 声明。自动压缩仍会在有效上限之前触发,其他客户端可以使用不同的上下文和压缩策略。CC Switch 配置 Claude Code 时使用根地址,配置 Codex 时使用带 /v1 的地址。
不安装 CC Switch,直接把 ArgoLink 的地址、Key 和协议写入客户端配置。Codex 使用 Responses 协议,Claude Code 使用原生 Messages 协议。
~/.codex/config.toml/v1,协议填写 responses。~/.claude/settings.jsonANTHROPIC_BASE_URL 填根地址,不要追加 /v1。| 客户端 | Base URL | 协议 / 端点 | 完整步骤 |
|---|---|---|---|
| Codex CLI / Desktop | https://54-151-42-83.sslip.io/v1 | Responses · POST /v1/responses | 打开 Codex 配置 |
| Claude Code | https://54-151-42-83.sslip.io | Anthropic Messages · POST /v1/messages | 打开 Claude Code 配置 |
Codex 配置要带 /v1;Claude Code 配置只填域名根地址。不要把两个写法互换。保存后重启桌面客户端或新开终端会话。
Codex CLI 与 Codex Desktop 在系统用户和 CODEX_HOME 相同时,共用同一份用户级配置。保存后重启 Codex Desktop,或新开一个 Codex CLI 会话。
model = "gpt-5.6-sol"
model_provider = "luckyapi"
[model_providers.luckyapi]
name = "ArgoLink"
base_url = "https://54-151-42-83.sslip.io/v1"
wire_api = "responses"
requires_openai_auth = false
experimental_bearer_token = "YOUR_API_KEY"
在 Claude Code 用户配置中设置原生接口地址和认证 Token,一次配置即可持续使用。
{
"env": {
"ANTHROPIC_BASE_URL": "https://54-151-42-83.sslip.io",
"ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY"
}
}
保存配置后,请重启客户端。
把 ArgoLink 添加为自定义服务商,即可在 Cherry Studio 中使用实时目录里的对话和生图模型。视频模型请改用无限画布。
arm64.dmg,Windows 选择 setup.exe;不要安装 nightly,也不需要从源码运行。GitHub 授权只用于 Copilot。首次欢迎页请选择白色的“配置其他服务商”,不要点黑色的“连接 CherryIN”。ArgoLink 只需要你自己的 API Key。
| 字段 | 填写内容 |
|---|---|
| 提供商名称 | ArgoLink |
| API 密钥 | YOUR_API_KEY |
| 端点设置 → OpenAI | https://54-151-42-83.sslip.io/v1 |
填完后查看“请求路径”,应为 https://54-151-42-83.sslip.io/v1/chat/completions。这与无限画布只填根地址的规则不同。
打开“更多设置 / 添加端点”,按下表填写。四个 OpenAI 兼容端点使用同一个 Base URL,Gemini 保持空白。
| 字段 | 填写内容 |
|---|---|
| OpenAI(默认) | https://54-151-42-83.sslip.io/v1 |
| OpenAI Responses | https://54-151-42-83.sslip.io/v1 |
| 图像生成 Base URL | https://54-151-42-83.sslip.io/v1 |
| 图像编辑 Base URL | https://54-151-42-83.sslip.io/v1 |
| Gemini | 留空 |
点击“获取模型列表”。Cherry Studio 会读取公开接口 GET https://54-151-42-83.sslip.io/v1/models,无需携带 API Key。弹出列表后,必须点击模型右侧的“+”才会把它加入当前服务商。
| 目录分类 | 识别方式 | Cherry 端点类型 |
|---|---|---|
| 对话 | category=chat,或其余默认文本模型 | OpenAI |
| 生图 | category=image,或模型名含 image / imagine-image / banana | 图像生成(OpenAI) |
| 视频 | category=video,或模型名含 video / omni | Cherry 没有对应入口,不要当作对话模型测试 |
模型会增删或改名,不要保存一份固定名单。人看的目录在模型与定价,机器分类可查看 GET /api/catalog/v1/models?page_size=100。如果生图模型没有改为“图像生成(OpenAI)”,绘画页会显示没有可用模型。
1:1、16:9 或 9:16 直接写进提示词。一只切开的红苹果放在深色木桌上,清晨侧光,浅景深,1:1 构图,无文字无水印
Cherry Studio 的自定义服务商目前主要接入对话和 OpenAI 生图,没有与 ArgoLink 视频任务对应的入口。视频模型不要当作生图或对话模型测试;请使用无限画布,两边可以共用同一把 Key。
认证头为 Authorization: Bearer <API Key>。视频提交接口为 POST /v1/videos/generations,但需要在支持视频任务的客户端中调用。
如果希望自动完成安装和配置,可以把本页交给本机 Codex,明确要求它安装 GitHub Releases 的最新稳定版、添加 ArgoLink 自定义服务商、拉取实时模型目录,并只检测一个对话模型。仅在你确认可信的本机任务中提供 API Key;不要把完整密钥发到群聊、公开任务或截图里。
把 ArgoLink 添加为无限画布的 OpenAI 服务商,即可在画布中调用文本、图片和视频模型。
| 字段 | 填写内容 |
|---|---|
| 名称 | ArgoLink |
| 协议 | OpenAI |
| Base URL | https://54-151-42-83.sslip.io |
| API Key | YOUR_API_KEY |
无限画布会自动拼接 /v1。如果手动再加一次,请求路径会重复并导致连接失败。
保存后刷新模型列表。ArgoLink 的公开模型接口不需要 API Key;如果客户端仍显示旧列表,先重新加载服务商,再把模型 ID 手动填入作为缓存失效时的备用方式。
| 用途 | 推荐模型 ID |
|---|---|
| 文本 | gpt-5.6-sol |
| 图片生成 / 编辑 | gpt-image-2 |
| 快速 GPT Image 2.5 生成 / 编辑 | gpt-image-2.5-flare |
| 注重精度的 GPT Image 2.5 生成 / 编辑 | gpt-image-2.5-sunburst |
| 快速图片生成 / 编辑 | nano-banana-2-lite |
| 高质量图片生成 / 编辑 | nano-banana-2 |
| 专业图片生成 / 编辑 | nano-banana-pro |
| 快速 Grok 图片生成 | grok-imagine-image |
| 当前 Grok 图片生成 / 编辑 | grok-imagine-image-2.0 |
| 高质量 Grok 图片生成 / 编辑 | grok-imagine-image-quality |
| 视频 | gemini-omni-1.1 |
| 视频 | grok-imagine-video-1.5 |
同时支持 GPT Image 2、GPT Image 2.5 Flare 和 GPT Image 2.5 Sunburst 的文生图、图生图与参考图编辑。图片请求通常比文本请求更慢,请为客户端设置更长的超时时间。
curl -sS --max-time 600 \
https://54-151-42-83.sslip.io/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "A red apple on a wooden table, square 1:1 composition",
"quality": "auto",
"n": 1,
"response_format": "b64_json"
}' \
-o image-response.json
在 size 中填写实际像素尺寸,并在提示词中写明比例。计费按返回图片最长边判定:不超过 1024 为 1K,1025–2048 为 2K,超过 2048 为 4K。2K 和 4K 图片生成时间较长,请耐心等待。请使用以下符合计费档位的示例:
| 档位 | size 示例 | 比例 |
|---|---|---|
| 1K | 1024x1024 | 1:1 |
| 2K | 2048x1152 | 16:9 |
| 4K | 3840x2160 | 16:9 |
{
"model": "gpt-image-2",
"prompt": "A cinematic landscape, 16:9 composition",
"size": "3840x2160",
"quality": "auto",
"n": 1,
"response_format": "url"
}参考图是公网 HTTPS 地址或 data URL 时使用 JSON;本地文件使用 multipart。一次请求只选择一种请求体格式。
curl -sS --max-time 600 \
https://54-151-42-83.sslip.io/v1/images/edits \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=gpt-image-2" \
-F "prompt=Combine the references into one cyberpunk scene, keep the subjects and use a square 1:1 composition" \
-F "image[]=@./reference-1.png" \
-F "image[]=@./reference-2.png" \
-F "image[]=@./reference-3.png" \
-F "quality=auto" \
-F "n=1" \
-F "response_format=b64_json" \
-o image-edit-response.json
curl -sS --max-time 600 \
https://54-151-42-83.sslip.io/v1/images/edits \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"images": [
{"image_url": "https://example.com/reference-1.png"},
{"image_url": "https://example.com/reference-2.png"}
],
"prompt": "Keep the subjects and change the background",
"size": "1024x1024",
"quality": "auto",
"n": 1,
"response_format": "b64_json"
}' \
-o image-edit-json-response.json
images 数组,每张参考图对应一个 image_url 对象,值可以是公网 HTTPS 地址或 data URL。multipart 编辑则为每个本地文件重复一个 image[] 字段;不要把多个路径拼进一个字段。size 中填写实际像素尺寸,不要把 1K、2K、4K、ratio 做成值。当前已验证 1024x1024、2560x1440 和 3840x2160 请求,但 2560x1440 的最长边超过 2048,按 4K 计费。如果业务要求精确尺寸,仍请检查返回图片的实际像素。mask.image_url,multipart 使用 mask 文件。n 取值为 1–7,用于请求多张结果;请以响应中的实际结果数量为准。每张返回图片都会出现在 data[].b64_json 或 data[].url 中并分别计费,因此增大 n 也会增加耗时、响应体积和费用。auto、low、medium、high。三种模型使用同一套 OpenAI Images 兼容接口,支持文生图和单张参考图编辑。模型与价格以“模型列表和定价”页面的实时目录为准。
| 模型 ID | 定位 | 建议用途 |
|---|---|---|
nano-banana-2-lite | 快速、高性价比 | 预览、批量草图和日常编辑 |
nano-banana-2 | 高质量 | 正式图片生成和参考图编辑 |
nano-banana-pro | 专业级 | 对画面质量要求更高的成品 |
curl -sS --max-time 600 \
https://54-151-42-83.sslip.io/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2",
"prompt": "A cinematic product photo of a green glass bottle on stone",
"aspect_ratio": "4:3",
"n": 1,
"output_format": "jpeg"
}' \
-o nano-banana-response.json
curl -sS --max-time 600 \
https://54-151-42-83.sslip.io/v1/images/edits \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=nano-banana-2" \
-F "prompt=Keep the subject and replace the background with a quiet Japanese garden" \
-F "image[]=@./reference.png" \
-F "aspect_ratio=4:3" \
-F "n=1" \
-F "output_format=jpeg" \
-o nano-banana-edit-response.json
jq -r '.data[0].b64_json' nano-banana-response.json \
| base64 --decode > nano-banana.jpg
使用同一个 ArgoLink Key 完成 Grok 图片生成和参考图编辑。JSON 图生图最多接受 3 张参考图;当前 multipart 编辑每次接受 1 个本地文件。
curl -sS --fail-with-body --max-time 600 \
https://54-151-42-83.sslip.io/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-image-2.0",
"prompt": "A cinematic spacecraft leaving a Martian canyon",
"aspect_ratio": "16:9",
"resolution": "2k",
"n": 1,
"response_format": "url"
}' \
-o grok-image-response.json
RESPONSE=grok-image-response.json
jq . "$RESPONSE"
URL=$(jq -er '.data[0].url' "$RESPONSE") || exit 1
curl -fL "$URL" -o grok-image.png
curl -sS --fail-with-body --max-time 600 \
https://54-151-42-83.sslip.io/v1/images/edits \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-image-2.0",
"prompt": "Combine the subjects into one cinematic cyberpunk scene",
"images": [
{"type": "image_url", "image_url": {"url": "https://example.com/reference-1.png"}},
{"type": "image_url", "image_url": {"url": "https://example.com/reference-2.png"}},
{"type": "image_url", "image_url": {"url": "https://example.com/reference-3.png"}}
],
"aspect_ratio": "4:3",
"resolution": "2k",
"n": 1,
"response_format": "b64_json"
}' \
-o grok-image-edit-response.json
curl -sS --fail-with-body --max-time 600 \
https://54-151-42-83.sslip.io/v1/images/edits \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=grok-imagine-image-2.0" \
-F "prompt=Combine the subject into one cinematic cyberpunk scene" \
-F "image=@./reference-1.png" \
-o grok-image-edit-response.json
grok-imagine-image、grok-imagine-image-2.0、grok-imagine-image-quality 都提供 /v1/images/generations 和 /v1/images/edits。images[].image_url 对象,当前最多 3 张。multipart 编辑当前每次只接受 1 个本地 image 文件。aspect_ratio 支持 15 种比例加 auto;resolution 支持 1k 或 2k。n 支持 1–10,每张返回图片都会单独计费。quality 在 grok-imagine-image-2.0 上文档化,可填 low、medium、auto。grok-imagine-image-quality 通过模型 ID 选择质量路由。data[].url,请及时下载。需要内联图片数据时,使用 JSON 并将 response_format 设置为 b64_json。视频生成是异步任务:先提交任务,需要时查询状态,再通过受保护的内容端点自动等待并下载 MP4。
| 分辨率 | ArgoLink 价格 | 相对官方 |
|---|---|---|
| 480p | $0.064 / 秒 | 省 20% |
| 720p | $0.112 / 秒 | 省 20% |
| 1080p | $0.20 / 秒 | 省 20% |
只按成功生成视频的分辨率和输出秒数扣费。当前上传首帧图或参考图不另收图片附加费;任务 failed 或 expired 不产生视频费用。实时目录仍是最终价格来源。
API_KEY="YOUR_API_KEY"
BASE="https://54-151-42-83.sslip.io"
ID=$(curl -fsS "$BASE/v1/videos/generations" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-video-1.5",
"prompt": "A cinematic spacecraft leaving a Martian canyon",
"duration": 10,
"aspect_ratio": "16:9",
"resolution": "720p"
}' \
| jq -er '.request_id') || exit 1
printf 'Request ID: %s\n' "$ID"
curl -fsS "$BASE/v1/videos/$ID" \
-H "Authorization: Bearer $API_KEY" | jq .
curl -fSL --retry 120 --retry-delay 5 --retry-all-errors \
"$BASE/v1/videos/$ID/content" \
-H "Authorization: Bearer $API_KEY" \
-o grok-video.mp4
pending 表示仍在生成;done 表示视频已经完成;failed 或 expired 表示本次任务未完成,应查看完整状态响应中的上游错误。下载命令每 5 秒重试一次,最长约 10 分钟,并且不会把 HTTP 错误正文保存成 MP4。
base64 < ./reference.png | tr -d '\n' | \
jq -Rs '{
model: "grok-imagine-video-1.5",
prompt: "Animate this still image with a slow cinematic camera move",
image: {url: ("data:image/png;base64," + .)},
duration: 10,
resolution: "720p"
}' > grok-video-request.json
curl -sS --fail-with-body \
https://54-151-42-83.sslip.io/v1/videos/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @grok-video-request.json | jq .
image 接受 1 个公开 HTTPS 地址、base64 Data URI 或 file_id,并将其作为视频首帧。拿到 request_id 后,继续复用上方的状态查询与内容下载端点。
curl -sS --fail-with-body \
https://54-151-42-83.sslip.io/v1/videos/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-video-1.5",
"prompt": "Use the person from <IMAGE_0> and the clothing from <IMAGE_1>",
"reference_images": [
{"url": "https://example.com/person.png"},
{"url": "https://example.com/clothing.png"}
],
"duration": 10,
"aspect_ratio": "16:9",
"resolution": "720p"
}' | jq .
文生视频、首帧、首尾帧、全模态参考(用图片、视频、音频任意组合作参考)四种模式走同一个异步端点。本地文件先直传到对象存储,生成请求本身只携带 HTTPS 地址;提示词里用 图片1、视频1、音频1(或 @Image 1)点名素材。
| 模型 | 时长 | 分辨率 | 参考素材上限 | 适合 |
|---|---|---|---|---|
seedance-2.5 | 4–30 秒 | 480p · 720p · 1080p | 图片 ≤30、视频 ≤10、音频 ≤10,合计 ≤50;可以只传音频 | 最长片段、最多参考素材、一致性最好 |
seedance-2.0 | 4–15 秒 | 720p · 1080p · 4K | 图片 ≤9、视频 ≤3、音频 ≤3,合计 ≤12;至少 1 张图片或 1 条视频 | 2.0 系最高画质,唯一提供 4K |
seedance-2.0-mini | 4–15 秒 | 720p | 同 seedance-2.0 | 单价最低,适合批量与草稿 |
seedance-2.0-fast | 4–15 秒 | 720p | 同 seedance-2.0 | 出片最快,适合预览 |
输出为 24 fps H.264 MP4,带模型生成的 AAC 立体声音轨(44.1 kHz),目前无法关闭。每次请求只生成 1 条视频(n 必须为 1 或省略)。720p 下 16:9 出 1280×720,1:1 出 960×960。生成通常需要几分钟,排队较多时会更久,请始终轮询,不要按固定时限判断失败。2.0、2.0 Mini、2.0 Fast 不支持真实人脸:含真人面部的首帧或参考图可能生成失败。
| 模型 | 480p | 720p | 1080p | 4K | 相对官方 |
|---|---|---|---|---|---|
seedance-2.5 | $0.078 / 秒 | $0.17 / 秒 | $0.43 / 秒 | — | 省 25% |
seedance-2.0 | — | $0.11 / 秒 | $0.28 / 秒 | $0.58 / 秒 | 省 25% |
seedance-2.0-mini | — | $0.057 / 秒 | — | — | 省 25% |
seedance-2.0-fast | — | $0.091 / 秒 | — | — | 省 25% |
费用 = 该模型该分辨率的每秒单价 × 计费秒数。计费秒数 = 成片秒数(按成片实际时长四舍五入到整秒)+ 参考视频秒数(多段时长相加,不足 1 秒的部分不计),不带参考视频时就是成片秒数。"官方"指 BytePlus ModelArk 对 16:9、无视频输入片段的牌价折成每秒的金额,ArgoLink 按官方价的 75% 定价并取 2 位有效数字。输入模式(文本、首帧、首尾帧、参考图或音频)不改变单价,上传免费。参考视频的时长也按同一单价计费,参考图片和音频不收费。failed 或 expired 的任务不扣费。省略 duration 时按 5 秒生成并计费。例:seedance-2.0 720p 10 秒 = $1.10,seedance-2.0-mini 720p 4 秒 = $0.228,seedance-2.0 720p 5 秒带一段 3 秒参考视频 = 8 × $0.11 = $0.88。模型页的实时目录仍是最终价格来源。
| 字段 | 类型 | 规则 |
|---|---|---|
model | string,必填 | seedance-2.5、seedance-2.0、seedance-2.0-mini 或 seedance-2.0-fast |
prompt | string | UTF-8,最多 40,000 字节。文生视频必填;带图片、视频或音频时可省略。写清镜头运动、主体动作和氛围。全模态参考时,提示词里用“素材类型+序号”点名素材,和 Seedance 官方提示词写法一致:图片1 是 reference_images 里的第 1 张,图片2 是第 2 张;视频1、音频1 同理,三类各自从 1 开始数。图片1、@图片1、<图片1>、@Image 1、image 1 都能识别,其他语言的写法(如 imagen 1、Bild 1、画像1、이미지1)也一样。例如传了两张参考图,可以写“图片1 里的人物走进图片2 的场景”。点名不是必须的,没点到的素材也会用作参考;带 @ 或括号的写法,序号超过该数组的素材数量会被 400 拒绝。 |
duration | integer | 整数秒。2.0 系 4–15,2.5 为 4–30。默认 5。 |
resolution | string | 720p(默认)。seedance-2.0 另接受 1080p 和 4k;seedance-2.5 接受 480p、720p、1080p。其余组合会被拒绝。 |
aspect_ratio | string | 16:9(默认)、9:16、1:1、4:3、3:4 或 21:9,用于文生视频和全模态参考,这两种模式传 adaptive 会被拒绝。首帧、首尾帧模式下成片比例由首帧决定:取上面六种里与首帧最接近的一个,首帧裁切最少;这两种模式可以省略本字段,传 adaptive 或任一上列值也会被接受但不生效。ratio 是等价别名,二者不能同时出现。 |
size | string | 用像素代替 resolution + aspect_ratio,写成 宽x高:短边决定分辨率(480 → 480p、720 → 720p、1080 → 1080p、2160 → 4k),宽高比决定画面比例(与六种比例之一相差不超过 3%)。1280x720 是 720p 16:9,720x1280 是 720p 9:16,720x720 是 720p 1:1。它选的是档位和比例,不是精确像素:成片按该档位、该比例的尺寸输出(720p 1:1 输出 960×960)。同时传 resolution 或 aspect_ratio 时必须一致,否则返回 400。也可以直接写档位,如 720p。 |
start_image | object | {"url": "https://…"},作为视频首帧。不能与任何参考列表同时使用。 |
end_image | object | 尾帧,必须同时提供 start_image,且须与首帧落在同一比例,否则任务以 invalid_input 失败,不扣费。 |
reference_images | object 数组 | [{"url": "https://…"}, …]。主体、风格或场景参考(全模态参考),不锁定首帧。 |
reference_videos | object 数组 | 动作、运镜或场景参考。2.0 系每段 2–15.4 秒、合计 ≤15.4 秒,2.5 每段 1.8–30.2 秒、合计 ≤30.2 秒;时长计入计费秒数。 |
reference_audios | object 数组 | 节奏与口型参考。2.0 系必须搭配至少 1 张图片或 1 条视频,2.5 可以单独使用。 |
n | integer | 只能为 1。 |
seed、watermark、generate_audio | — | 不支持:传任何 seed、watermark: true 或 generate_audio: true 都会被拒绝。成片总是带音轨,传 generate_audio: false 也不会得到无声视频。 |
每个 url 都必须是公网可访问的 https:// 地址。此端点拒绝 base64 Data URI、multipart 上传和 file_id。本地文件请先走下方的 POST /v1/media/uploads,再把返回的 media_url 放进请求。单个素材的格式、时长和大小见下方“参考素材限制”。整个 JSON 请求体不得超过 1 MiB。
按 fal 或 OpenRouter 格式写的请求可以直接发:右列每种写法都等同于左列字段。同一个素材只用一种写法;同一素材写了两种且取值不同,或 frame_images、input_references 与它们对应的字段同时出现,会返回 400。
| 字段 | 也接受 |
|---|---|
start_image | image_url(URL 字符串),或 frame_images 里 "frame_type": "first_frame" 的项 |
end_image | end_image_url,或 frame_images 里 "frame_type": "last_frame" 的项 |
reference_images | image_urls(URL 字符串数组),或 input_references 里 type 为 image_url 的项 |
reference_videos | video_urls,或 input_references 里 type 为 video_url 的项 |
reference_audios | audio_urls,或 input_references 里 type 为 audio_url 的项 |
resolution + aspect_ratio | 像素写法的 size,如 1280x720 |
duration · aspect_ratio | seconds · ratio |
{
"model": "seedance-2.5",
"prompt": "图片1 里的人物走进视频1 的场景",
"size": "1280x720",
"duration": 5,
"input_references": [
{"type": "image_url", "image_url": {"url": "https://example.com/person.png"}},
{"type": "video_url", "video_url": {"url": "https://example.com/scene.mp4"}}
]
}
input_references 里的图片、视频、音频各自按出现顺序编号:第一个 image_url 项是 图片1,第一个 video_url 项是 视频1。
模式由请求里出现了哪些媒体字段推断,没有单独的模式参数:
| 模式 | 传什么 | 说明 |
|---|---|---|
| 首尾帧 | start_image + end_image | 成片比例由首帧决定,尾帧须落在同一比例 |
| 首帧 | start_image | 成片比例由首帧决定 |
| 全模态参考 | reference_images、reference_videos、reference_audios 任意组合 | 只传图片、只传视频、图片 + 视频 + 音频都是这一种;在提示词里用 图片N、视频N、音频N 点名(也可写 @图片N、@Image N) |
| 文生视频 | 不带媒体 | prompt 必填 |
start_image/end_image 与三个参考列表互斥。素材数量超过模型上限、@ 引用越界、分辨率或时长不在该模型范围内,都会在提交时被 400 拒绝,不会开始生成。
三种参考素材可以任意组合,只要不超过该模型的单类上限和合计上限。
| 模型 | 图片 | 视频 | 音频 | 合计 | 只传音频 |
|---|---|---|---|---|---|
seedance-2.0 · 2.0-mini · 2.0-fast | ≤9 | ≤3 | ≤3 | ≤12 | 不支持:必须同时有图片或视频 |
seedance-2.5 | ≤30 | ≤10 | ≤10 | ≤50 | 支持 |
2.0 系可以 9 图 + 3 视频,或 9 图 + 3 音频;9 图 + 3 视频 + 3 音频共 15 个,超过合计上限,会被 400 拒绝。
| 单个素材 | 2.0 · 2.0 Mini · 2.0 Fast | 2.5 |
|---|---|---|
| 图片 | JPEG 或 PNG,≤20 MiB | JPEG 或 PNG,≤20 MiB;边长 300–6000 px;宽高比 0.4–2.5 |
| 视频 | 每条 2–15.4 秒、合计 ≤15.4 秒;边长 200–2160 px;≤50 MB | MP4 或 MOV;每条 1.8–30.2 秒、合计 ≤30.2 秒;边长 300–6000 px,总像素 409,600–8,295,044;宽高比 0.4–2.5;24–60 fps;≤100 MiB |
| 音频 | 每条 2–15 秒、合计 ≤15 秒;≤15 MB | WAV 或 MP3;每条 1.8–30.2 秒、合计 ≤30.2 秒;≤15 MB |
提交时检查素材数量和类型;参考视频和音频的时长在上传后、开始生成前检查,超出范围的任务以 invalid_input 失败,不扣费。尺寸或格式超出范围的素材可能导致任务失败。
先申请上传票据,把文件字节直接 PUT 到返回的存储地址,再把 media_url 放进生成请求。Sub2API 不中转文件字节,因此大视频不受 1 MiB JSON 限制。
type | content_type | 单文件上限 |
|---|---|---|
image | image/jpeg、image/png(票据也接受 image/webp,但 Seedance 生成只接受 JPEG 和 PNG) | 20 MiB |
video | video/mp4、video/quicktime、video/webm | 票据 500 MiB;用于 Seedance 的上限见“参考素材限制” |
audio | audio/mpeg、audio/wav、audio/mp4(m4a)、audio/aac | 20 MiB |
API_KEY="YOUR_API_KEY"
BASE="https://54-151-42-83.sslip.io"
FILE=./first-frame.jpg
TICKET=$(curl -fsS "$BASE/v1/media/uploads" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model\":\"seedance-2.5\",\"type\":\"image\",\"content_type\":\"image/jpeg\",\"size_bytes\":$(stat -f%z "$FILE")}")
curl -fsS -X PUT "$(jq -r .upload_url <<<"$TICKET")" \
-H "Content-Type: image/jpeg" --data-binary @"$FILE"
MEDIA_URL=$(jq -r .media_url <<<"$TICKET")
票据返回 upload_url(15 分钟内有效,PUT 时必须带与申报一致的 Content-Type)、media_url(7 天内可读)以及对应的 upload_expires_at / expires_at。size_bytes 必须等于真实文件大小。申请票据免费,也不会创建任务。Linux 下用 stat -c%s。
ID=$(curl -fsS "$BASE/v1/videos/generations" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"prompt": "A golden retriever runs along a sunlit beach, slow-motion, camera tracking sideways, cinematic",
"duration": 8,
"aspect_ratio": "16:9",
"resolution": "720p"
}' \
| jq -er '.request_id') || exit 1
printf 'Request ID: %s\n' "$ID"
提交成功返回 HTTP 202 和 {"request_id": "…"}。请保存它,这是查询状态、下载和账单记录的唯一标识。
curl -fsS "$BASE/v1/videos/$ID" \
-H "Authorization: Bearer $API_KEY" | jq .
{
"request_id": "e9a36267-5a81-46ee-87a1-baf62bec7e9a",
"status": "pending",
"model": "seedance-2.5",
"created_at": 1789379975,
"progress": 37,
"estimated_seconds_remaining": 128
}
{
"created_at": 1789379975,
"model": "seedance-2.5",
"progress": 100,
"request_id": "e9a36267-5a81-46ee-87a1-baf62bec7e9a",
"status": "done",
"usage": { "billed_seconds": 8, "output_seconds": 8, "reference_video_seconds": 0 },
"video": { "duration": 8, "url": "https://54-151-42-83.sslip.io/v1/videos/e9a36267-5a81-46ee-87a1-baf62bec7e9a/content" }
}
建议每 10–15 秒轮询一次。pending 表示仍在生成:progress(0–99)是估算的完成进度,estimated_seconds_remaining 是预计还要多少秒,都按任务排队和生成的预估时长推算。还没有预估时 progress 为 0、不返回 estimated_seconds_remaining;实际耗时超过预估时停在 99,直到完成。created_at 是提交时间(Unix 秒)。done 表示 MP4 已就绪:progress 为 100,video.url 是完整下载地址,即步骤 3 的内容端点,用同一个 Key 请求;usage 给出成片秒数、参考视频秒数和两者之和 billed_seconds;failed 或 expired 表示没有产出且不扣费。failed 时 error 对象说明原因和能否直接重试,见下方“任务失败”。排队 10 分钟仍没有可用资源会以 capacity_unavailable 结束;生成一旦开始,就一直等到出结果,超过 24 小时仍未完成才以 generation_timeout 结束。计费只发生一次:首次查询到 done 时按 usage.billed_seconds 结算。
curl -fSL --retry 120 --retry-delay 5 --retry-all-errors \
"$BASE/v1/videos/$ID/content" \
-H "Authorization: Bearer $API_KEY" \
-o seedance.mp4
内容端点直接流式返回成片(video/mp4,支持 Range);任务未完成时返回错误状态码,所以上面的重试循环会等待最长约 10 分钟,且不会把错误正文存成视频。
curl -fsS "$BASE/v1/videos/generations" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0-mini",
"prompt": "The logo floats in space; a green lightning bolt strikes it, sparks burst, camera pushes in slowly",
"start_image": {"url": "'"$MEDIA_URL"'"},
"duration": 5,
"resolution": "720p"
}' | jq .
成片比例由首帧决定,不需要传 aspect_ratio:正方形首帧出 960×960。这条请求的费用是 5 × $0.057 = $0.285。
curl -fsS "$BASE/v1/videos/generations" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0",
"prompt": "Day turns into night over the same skyline, clouds roll by, lights come on",
"start_image": {"url": "https://example.com/day.jpg"},
"end_image": {"url": "https://example.com/night.jpg"},
"duration": 6,
"resolution": "4k"
}' | jq .
两张图须落在同一比例,成片也用这个比例;比例不一致时任务以 invalid_input 失败(field 为 end_image),不扣费。这条 6 秒 4K 请求的费用是 6 × $0.58 = $3.48。
curl -fsS "$BASE/v1/videos/generations" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"prompt": "The woman in @Image 1 speaks warmly to the camera in time with @Audio 1, moving the way @Video 1 does, natural lip movement, soft studio light",
"reference_images": [{"url": "https://example.com/portrait.jpg"}],
"reference_videos": [{"url": "https://example.com/motion.mp4"}],
"reference_audios": [{"url": "https://example.com/voice.mp3"}],
"duration": 4,
"aspect_ratio": "9:16",
"resolution": "720p"
}' | jq .
reference_images 或只传 reference_videos 也是全模态参考,规则相同。提交、查询、下载时的错误以 HTTP 状态码返回,响应体为 {"error": {"type": "…", "code": "…", "param": "…", "message": "…"}}:message 是可以直接展示的原因,param 是出错的请求字段,code 是稳定的错误码。
| HTTP | error.type | error.code | 原因 |
|---|---|---|---|
| 400 | invalid_request_error | field_invalid、json_invalid 等 | 请求本身不合法:字段类型不对、prompt 与媒体都缺失、只有 end_image、首帧字段与参考列表混用、非 HTTPS 媒体地址等。不扣费。 |
| 400 | invalid_request_error | request_unsupported | 该模型不接受这组参数:分辨率、时长、比例、seed、generate_audio: true、素材数量、2.0 系只传音频或 @ 引用越界。message 说明是哪一项,例如 seedance-2.0-mini accepts resolution 720p.。不扣费。 |
| 401 | authentication_error | — | API Key 缺失或无效。 |
| 402 / 403 | — | — | 余额不足,或该 Key 所在分组没有视频权限。 |
| 404 | not_found_error | video_request_not_found | 用未知的 request_id,或用另一位用户的 Key 查询状态/下载。 |
| 409 | invalid_request_error | job_video_not_ready | 下载时视频还没生成完,稍后再请求同一地址。 |
| 424 | invalid_request_error | job_failed | 下载的任务已经失败,失败原因见查询状态返回的 error。 |
| 429 | rate_limit_error | — | 达到并发或频率上限,等运行中的任务完成后重试。 |
| 503 | overloaded_error | no_capacity | 暂时没有可用容量,按 Retry-After 稍后重试。不扣费。 |
| 503 | api_error | — | 服务暂时不可用,稍后重试。不扣费。 |
提交成功之后,生成仍可能失败。这时查询状态返回 "status": "failed" 和 error 对象:code 是稳定的失败码,message 写明确切原因,retryable 为 true 表示这次失败没有产生任何生成费用、可以放心直接重新提交,为 false 表示同样的请求再提交也不会成功,或这次的结果无法确认;输入问题还会带 field。失败的任务不扣费。
{
"request_id": "639e6b9e-26eb-43a6-917a-958adcf4bca2",
"status": "failed",
"model": "seedance-2.0-mini",
"error": {
"code": "invalid_input",
"message": "start_image is 1920x1080, which renders at 16:9, but end_image is 1024x1024, which renders at 1:1. Both frames must render at the same aspect ratio.",
"retryable": false,
"field": "end_image"
}
}
error.code | retryable | 含义与处理 |
|---|---|---|
invalid_input | false | 某个输入无法使用,message 写明是哪一项、为什么:素材下载不到(附 HTTP 状态码)、不是声明的类型、不是 PNG/JPEG、超过大小上限,或首尾帧落在不同比例(写出两张图的尺寸和比例)。按 field 改好后重新提交。 |
content_policy_violation | false | 请求或生成结果没有通过内容审核,修改提示词或参考素材后再提交。 |
copyright_violation | true | 生成结果(例如成片音轨)命中受版权保护的内容而被拦截;这次没有产生费用,直接重新提交或改写提示词通常可以成功。 |
generation_failed | true / false | 生成失败。确认失败或请求没有送达生成时为 true,可以直接重新提交;结果无法确认时为 false。 |
generation_timeout | false | 生成开始后超过 24 小时仍没有结果,任务被结束。 |
capacity_unavailable | true | 排队 10 分钟仍没有可用资源,稍后重新提交。 |
internal_error | true | 服务在开始生成前处理失败,重新提交即可。 |
cancelled | false | 任务已取消。 |
ArgoLink 的公开模型 ID 是 gemini-omni-1.1。这是稳定的 Google Flow 路由名称;其他 Omni 或 preview 名称属于不同供应商接口,不能混用参数。
API_KEY="YOUR_API_KEY"
BASE="https://54-151-42-83.sslip.io"
ID=$(curl -fsS "$BASE/v1/videos/generations" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-1.1",
"prompt": "A cinematic sunrise over the ocean with a slow camera push",
"duration": 8,
"aspect_ratio": "16:9",
"resolution": "720p"
}' \
| jq -er '.request_id') || exit 1
printf 'Request ID: %s\n' "$ID"
curl -fsS "$BASE/v1/videos/$ID" \
-H "Authorization: Bearer $API_KEY" | jq .
curl -fSL --retry 120 --retry-delay 5 --retry-all-errors \
"$BASE/v1/videos/$ID/content" \
-H "Authorization: Bearer $API_KEY" \
-o gemini-omni.mp4
pending 表示仍在生成;done 表示 MP4 已经完成;failed 表示本次生成未完成,应查看完整状态响应中的上游错误。下载命令每 5 秒重试一次,最长约 10 分钟。
curl -sS --fail-with-body \
https://54-151-42-83.sslip.io/v1/videos/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=gemini-omni-1.1" \
-F "prompt=Animate this first frame with a slow cinematic camera move" \
-F "duration=8" \
-F "aspect_ratio=16:9" \
-F "resolution=720p" \
-F "image=@./first-frame.jpg;type=image/jpeg" | jq .
image 只接受 1 张本地 PNG 或 JPEG,并将其固定为视频首帧。拿到 request_id 后,继续复用上方的状态查询与内容下载端点。
curl -sS --fail-with-body \
https://54-151-42-83.sslip.io/v1/videos/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=gemini-omni-1.1" \
-F "prompt=Use the person and wardrobe from the reference images" \
-F "duration=8" \
-F "aspect_ratio=9:16" \
-F "resolution=720p" \
-F "reference_images=@./person.png;type=image/png" \
-F "reference_images=@./wardrobe.jpg;type=image/jpeg" | jq .
Workspace
Balance, API activity and recent account status in one place.
API Keys
Issue keys, set quotas and revoke access immediately.
Top-ups & Ledger
Create a secure checkout and review every top-up status.
Usage & Billing
Review requests, tokens, model distribution and settled cost.
Revocation and deletion take effect immediately. Historical usage and billing remain available.
| Name | Status | Quota | Expiration | Last Used | Actions |
|---|