ai修图api接入账本:一千张图的成本、超时和重试
先交代背景:上个月客户扔来一千二百张商品图要统一换白底,我头一回正经接了修图API。扣掉限流、超时和重试,真实单张成本是官方标价的一点三倍。这笔账怎么算出来的,逐项写在下面。
ai修图api这个东西,官方页面上永远只写「每张低至几分钱」,等你真把脚本跑起来,限流、超时、失败重试全冒出来,最后结算的数字比标价高一截。我用一千二百张商品图的完整批处理拿到了第一手数据,从下单到交付一共十一个小时,文中所有数字都来自这次真实跑批的记录。
单张成本怎么算才不会被打脸
官方标价乘张数只是理论值,真实成本要乘一点二到一点五的折损系数。折损来自重试和质检废片。
标价是每次成功调用收费,听着合理,问题在于失败的那部分。我这次跑批,首轮成功率只有百分之九十五点三,失败的四十七张要重新排队再调一次,重试消耗照样计费。另外质检环节我抽掉了三十一张边缘发毛的废片,补修等于再次计费。摊下来,一千二百张图的真实单张成本是标价的一点三倍左右。这个系数你接之前就要加进报价里,不然客户按标价砍价,你按真实成本干活,中间的差价全从你利润里出。
还有个容易漏的:测试阶段的消耗。我调试参数用了六十多张样图,这个钱不多,几十块,但很多人接完接口才发现测试也计费,心态会崩。预算里单列一行「调参损耗」,心里就踏实了。
折损系数怎么测?跑批前先拿五十张真图小规模试一轮,统计首轮成功率,我的经验是九成五上下算正常,低于九成就要先查原图质量再谈报价。那批一千二百张里有张图是客户拿聊天截图翻拍的,七十二分辨率,接口怎么调都是废片,这种图提前筛出来,比混进批里烧钱强。
限流和超时,参数这样设才稳
并发数宁少勿多,超时设二十秒加重试两次,这是我跑废一批图换来的组合。照抄能用。
我第一版脚本贪快,开了十六并发,跑了两分钟就被服务端限流,返回排队超时的错误码,一批请求全废。降到四并发之后整晚没再触发。服务端承诺的并发上限是弹性的,你按它标的上限去跑,吃亏的是自己。四并发跑一千张,耗时六小时,反而比反复触发限流的十六并发快。
超时我设二十秒。修图接口的正常响应在四到九秒之间,偶尔碰上队列拥堵会拖到十五秒以上,设短了误杀正常请求,设长了干等。重试次数两次封顶,重试之间间隔从五秒起指数退避——第一次等五秒,第二次等十秒。我数过,两次重试之后还失败的,基本是原图本身有问题,多半是格式损坏或者体积为零,重试一百次也没用,这类图该直接转人工。
指数退避这段是跟平台技术支持聊出来的。我最初写死五秒固定间隔,赶上服务端抖动,两次重试全撞在同一个拥堵窗口上,白烧两轮钱。改成递增之后,重试成功率从六成提到了九成,一行代码的事。
提示词和质检,机器管不了的部分
批量接口里提示词要写成模板变量,质检必须留人工抽检,比例一成起步。这两处偷懒,返工翻倍。
一千二百张图里有上衣、裤子、配饰三个类目,我给每个类目写了一版提示词模板,我把SKU信息塞进变量。白底要求和阴影保留程度也按类目区分,服装类要留自然投影,配饰类要纯白。这套模板的写法跟单张交互时不一样,讲究稳定压过灵活,之前写过的ai修图提示词写法:跟AI说话的语法里讲的指令结构,套到批量场景要做减法,指令越短,批量输出的一致性越高。
质检千万别全信接口返回的成功状态。成功只代表服务器处理完了,不代表效果达标。我按一成比例抽检,一百二十张里揪出三十一张废片,主要是发丝和细金属链这类边缘。抽检发现废片比例超过百分之五,就整批加严抽到两成。机器出错的分布是有规律的,盯着边缘看,十秒钟一张,一成抽检花掉的四十分钟,换回来的是客户验收零扯皮。
这一批做完,我把参数整理成一张表贴在工位上:四并发、二十秒超时、两次重试、一成抽检。第二个月客户又来一批八百张,这次从头到尾七个半小时,一次没触发限流。接api这件事,门槛不在写代码,在于愿不愿意把第一次跑批的失败数据老老实实记下来。你现在要是有批量修图的单子在路上,先把折损系数加进报价,再去写第一行脚本。
常见问题
不会写代码,能用修图api吗?
能用,现在主流平台都提供现成的批处理插件或者低代码工作台,把图丢进网盘文件夹就能触发。代价是灵活性差,类目模板这种需求得靠平台预设,实现不了就还是得找人写几十行脚本。
不同平台的接口返回图质量差别大吗?
大方向差不多,细节差异集中在边缘处理和光影还原。我的做法是每家先拿三十张自己业务里的真实图试跑,别用官方演示图,演示图都是挑过的,测不出你的场景里的短板。
接口修图和手动一张张修,什么量级以下不划算?
我的分界线在五十张。低于这个量,写脚本加调试的时间已经超过手动修的时间,直接手动或者用现成app批量功能更划算。量级上去了,接口的成本优势才显出来。
批量跑批一般安排在什么时间段?
避开工作日白天。我实测晚十点后到早八点之间跑,超时率比下午低一半以上,高峰期的排队拥堵是超时的最大来源。赶交付的单子,宁可晚上挂机跑,也别白天盯着进度干着急。