本文验证日期为 2026-08-17,对应接口为 POST https://api.sublyx.org/v1/images/edits/async,以及提交后使用的 GET https://api.sublyx.org/v1/images/tasks/:task_id。排错时先保存 HTTP 状态、响应 JSON 中的错误摘要和请求时间,不要只看客户端抛出的“请求失败”。

快速判断

400 多半是请求格式或参数问题,401 是鉴权问题,429 是限流问题。只有在确认请求没有创建任务后才重试提交;如果已经拿到 task_id,应该轮询任务而不是再次创建。

先确认请求基线

图片编辑接口接收 multipart 表单,而不是 JSON。最小请求如下:modelprompt 是文本字段,image 使用 @ 上传实际文件。不要手动设置 multipart boundary,也不要把图片路径当作字符串传给服务端。

curl https://api.sublyx.org/v1/images/edits/async \
  -H "Authorization: Bearer $SUBLYX_API_KEY" \
  -F "model=grok-imagine-edit" \
  -F "prompt=Make the sky warmer while keeping the building unchanged" \
  -F "image=@building.jpg"

400:请求不符合接口要求

先检查三项:model 是否为 grok-imagine-editprompt 是否非空,image 是否确实上传。常见原因包括误用 -d 发送 JSON、漏掉 image、把 image=@file 写成 image=file、文件路径错误,以及上传的文件类型或大小不符合要求。

400 也可能来自业务字段或图片内容校验。保留服务端返回的错误字段,逐项缩小变量:先用一张能正常打开的 PNG/JPG/WEBP 和最短 prompt 验证,再逐步加入复杂要求。参数的完整传法可参考 Grok 图片编辑参数详解

401:API Key 没有通过鉴权

确认请求头是 Authorization: Bearer $SUBLYX_API_KEY,环境变量没有为空、带多余引号或被换行截断,并且请求发往 api.sublyx.org。不要把控制台登录密码、其他服务的 Key 或带有错误前缀的 Token 当作 Sublyx API Key。

Key 必须保存在服务端环境变量或密钥管理系统中。不要把它硬编码到前端、提交到 Git 仓库、写入 URL 查询参数或打印到日志。可先查看 Sublyx 接入文档,确认当前账户的鉴权配置和权限。

429:请求过于频繁

429 表示当前请求受到限流,不能通过无限快速重试解决。对提交接口使用指数退避加抖动,例如等待 2、4、8 秒,并设置最大重试次数;若响应提供 Retry-After,优先遵循它。并发队列应设置上限,轮询请求也要有固定间隔,避免每 100 毫秒查询一次。

const delay = Math.min(30000, 2000 * 2 ** attempt) + Math.random() * 500;
await new Promise((resolve) => setTimeout(resolve, delay));

429 后不要盲目重新提交同一个编辑任务。提交请求可能已经在服务端排队,只是响应在网络中丢失。先检查是否已有 task_id,并查询:

curl "https://api.sublyx.org/v1/images/tasks/$TASK_ID" \
  -H "Authorization: Bearer $SUBLYX_API_KEY"

任务查询也要分类处理

拿到任务 ID 后轮询 GET /v1/images/tasks/:task_idcompleted 时读取结果,failedcancelled 时停止;短暂的网络错误可以按退避策略重试查询,但不要因此重新创建任务。为每个任务设置总超时,并保留任务 ID 以便人工核对。

重复提交与幂等风险

客户端超时只说明客户端没有及时收到响应,不证明服务端没有创建任务。把业务请求 ID、输入图片指纹和提交时间保存下来;同一业务请求在超时后先查本地记录和已有任务,再决定是否重新提交。这样可以避免用户连续点击、网关重试和 worker 重启共同制造重复编辑。

接口范围和验证边界

本文只把上述图片编辑异步提交和图片任务查询作为已验证范围。不要根据网上零散示例把视频 URL、视频返回字段或视频轮询方式当成稳定公共 API;如需其他媒体能力,应以 模型列表和当前文档为准。错误码的具体文案、可用模型和账户策略也可能变化。

按清单完成一次安全测试

用非敏感图片验证 multipart 提交、task_id 轮询、超时和退避,再逐步接入生产队列。

查看接入文档查看模型阅读 Grok API 总指南