Midjourney 没有通用公开 API,这决定了“中转”和“代理”的真实结构:它们不是把官方接口换个域名,而是在第三方账号池之上再加一层任务编排与计费。链路比文本接口长,出错位置也更多。

本文从实际链路出发,讲清任务状态、结果保留、计费对账、Key 与账号风险、服务商条款,以及迁移和验收。

说明:Midjourney 是 Midjourney, Inc. 的商标,文中其他产品名称均为其权利人商标。本文仅作技术说明,与 Midjourney 无隶属或合作关系;中转服务的接口、状态与计费以服务商文档和合同为准,本文不构成法律意见。

一、先分清四种“中转”

类型 做什么 主要风险 适合场景
账号池代理 服务商维护 Midjourney 账号,自动化代提交 账号风控、排队、条款风险 需要 API 形态的中小团队
聚合网关 统一入口,同时接入多家图像模型 状态映射、参数差异、中间层故障 多模型业务
分销/代充 转售订阅或额度 上游稳定性、余额与退款 小额试用、临时需求
自建自动化 自己维护账号与提交脚本 运维、封号、全部责任自担 有技术团队、要数据自控

你买的到底是“技术服务”还是“模型额度”,决定了出问题后谁负责。合同、发票和数据条款要按这个区别去问。

二、异步任务在中转链路里多出哪些环节

一条典型链路是:你的服务提交请求,中转做鉴权、限流和扣费;中转落库,建立业务单号与上游任务 ID 的映射;账号池排队提交,等待生成;中转轮询或接收结果,做状态映射;最后转存图片或透传临时链接。

每多一跳,就多一个可能丢状态的位置:

  • 中转重启或换实例,内存里的任务映射丢失。
  • 上游超时但任务已创建,中转返回失败,调用方重试后出两份图。
  • 审核拒绝被映射成普通失败,业务反复重试。
  • 结果链接过期,任务显示成功但图片下载失败。
  • webhook 没有幂等键,业务重复入库。

评估中转时,不要只问“支不支持 Midjourney”,要问任务 ID 如何持久化、状态如何映射、失败如何补偿。

三、任务状态与结果保留

常见状态包括排队、生成中、成功、失败、审核拒绝、超时或过期。名称不重要,重要的是映射关系:业务侧要能区分“可以重试”和“重试也没用”。

审核拒绝、参数错误和余额不足不应该自动重试;超时和 5xx 可以退避重试;成功但下载失败要单独补偿。每个任务都要有幂等键,避免重复扣费和重复出图。

结果保留要问四个问题:任务记录保存多久;是否代存图片,存在哪里;返回的是临时链接还是长期地址;过期后还能不能按业务单号查询。图片链接通常有时效,生成成功后应立即下载转存。

四、计费透明度怎么核对

图像任务计费更容易产生争议,因为一次需求可能包含想象、放大、变体和重试。签约前确认:

  • 计费单位是单次任务、单张成功图,还是按订阅额度折算。
  • 放大和变体是否单独计费。
  • 失败、超时、取消、审核拒绝分别是否计费。
  • 重复提交和重试是否重复计费,是否有幂等去重。
  • 是否有最低消费、预充值门槛、退款规则和发票类型。
  • 用量明细是否包含任务 ID、动作类型、状态和扣费金额。

不要只看宣传页的折扣。用二十到五十个真实任务跑一周,把成功图片数、任务数和账单对齐。出现差额时,要求按任务 ID 提供扣费明细,而不是只给总额。站内其他模型的费用以模型价格为准,价格会随上游调整。

五、Key、账号与上游风险

中转意味着提示词、参考图和成图都会经过第三方。至少要确认:

  • 提示词和图片是否落盘,保留多久,是否用于训练或服务改进。
  • Key 能否限制额度、IP 和过期时间,泄露后如何封禁。
  • 上游是单一账号池还是多通道,账号被封时如何切换。
  • 服务条款是否允许自动化访问和转售,责任边界如何划分。
  • 发生内容审核争议时,谁负责申诉和退款。

生产 Key 不要写进前端、公开仓库或日志。高敏感素材优先选择支持数据不落盘、可签数据协议的服务方;无法确认时先脱敏再上传。

六、服务商条款与责任边界

中转服务卖的可能是“技术服务”,也可能是“模型额度”,两者责任不同。技术服务方应对可用性、任务丢失和响应时限负责;额度转售方往往只能承诺“尽力转发”,上游一变就很难补救。

合同里建议写明:服务等级与故障通知、失败任务的补偿方式、上游规则变化时的提前通知、数据处理与删除义务、终止合作后的数据导出和余额处理。不要接受只有聊天记录、没有合同主体的长期合作。

七、从直连或自建迁移到中转的步骤

  1. 盘点现有调用:模型、参数、并发、平均出图时间和失败类型。
  2. 确认中转的接口路径、鉴权方式和字段差异,列出映射表。
  3. 在测试环境跑通提交、查询、取消和下载四条路径。
  4. 用同一批提示词做影子运行,原链路与中转各跑一份,只比较不切换。
  5. 对比成功率、排队时间、P95 耗时、图片可下载率和单张可用成本。
  6. 按百分之五到二十的流量灰度切换,保留原链路回退开关。
  7. 观察三到七天,确认账单、任务明细和业务单号能对上。
  8. 全量后保留一段双通道兜底,稳定后再简化架构。

迁移期间不要删除原账号或旧 Key,也不要把两套任务写进同一个业务单号,否则对账时无法区分。

八、怎么验证一个中转

# 提交最小任务,记录 task_id 和提交时间;路径与字段以服务商文档为准
curl -sS -X POST "$RELAY_BASE_URL/v1/images/generations" \
  -H "Authorization: Bearer $RELAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"一只猫在窗边打哈欠,自然光","async":true}'

# 轮询状态,记录完整流转
curl -sS "$RELAY_BASE_URL/v1/tasks/$TASK_ID" \
  -H "Authorization: Bearer $RELAY_API_KEY"

测试时制造异常:提交后立即取消、传错参数、并发提交、下载中断。观察状态、错误信息和账单是否一致。再隔二十四小时访问结果地址,隔七天查任务记录。能过这三关,才值得灰度。

九、迁移后的监控与回退

  • 按状态统计任务数,重点看失败、审核拒绝、超时和取消的占比。
  • 分别记录排队时间与生成时间,定位瓶颈在账号池还是上游。
  • 监控图片下载成功率,失败任务进入补偿队列。
  • 统计 401、404、429、5xx,区分 Key、参数、限流和上游故障。
  • 计算“每个成功出图任务”的成本,而不是只看单次调用价格。
  • 设定回退阈值,例如连续两小时成功率明显低于基线就切回原链路。

常见问题

中转和直接订阅 Midjourney 有什么区别?

直接订阅是官方产品,面向人工操作;中转是 API 形态的封装,方便自动化。两者在参数、并发和任务可见性上可能不同,中转还额外承担账号池和条款风险。

中转会保存我的提示词和图片吗?

不同服务不同。问清楚是否落盘、保存多久、存在哪里、谁能访问、是否用于训练,以及删除机制。涉及客户素材时优先选择条款清晰的服务方。

任务在中转侧丢了怎么办?

先按业务单号查本地记录,再查中转日志和上游任务。无法恢复时只能重新提交,因此迁移前要确认中转是否持久化任务映射。

为什么账单和出图数对不上?

常见原因是重复提交、失败重试、放大和变体单独计费、审核拒绝规则不同、最低消费或余额过期。要求按任务 ID 提供明细,逐条核对。

迁移需要改代码吗?

如果中转兼容现有接口,通常只需改 Base URL、Key 和少量字段;如果状态映射或回调格式不同,就要改轮询和入库逻辑。先做影子运行,大部分差异可以提前发现。

下一步

先在中商起航 AI 网关创建测试 Key,用最小任务验证提交、轮询、下载和对账四条链路,再按灰度迁移;可用模型与费用以模型价格为准,价格会调整。

相关阅读: