Yearly Pay yearly and get 2 months free on every paid plan. See plans
登录 免费开始

模型接受的每一种参考素材,都真正传了出去

一个视频模型接受的不只是提示词。有些接受第一帧和最后一帧。有些接受少量参考图片。有些接受一段参考片段,然后因此表现出不同的行为——静音自己的原声轨,或者把片段时长当作输出结果的时长。有些接受一段参考音频。每个模型描述这个接口规格的方式都不一样,而我们的大多数模型此前只发送了其中的一部分。 现在有了一个统一的地方来描述每个模型的接口规格:接受多少张图片、是否允许上传片段以及最多多少秒、是否接受音频、音频是否需要配一张图片、片段是否会静音模…

一个视频模型接受的不只是提示词。有些接受第一帧和最后一帧。有些接受少量参考图片。有些接受一段参考片段,然后因此表现出不同的行为——静音自己的原声轨,或者把片段时长当作输出结果的时长。有些接受一段参考音频。每个模型描述这个接口规格的方式都不一样,而我们的大多数模型此前只发送了其中的一部分。

现在有了一个统一的地方来描述每个模型的接口规格:接受多少张图片、是否允许上传片段以及最多多少秒、是否接受音频、音频是否需要配一张图片、片段是否会静音模型自身的音效、片段是否会决定时长。这些信息是从服务商自己的文档中读取的,然后在同一天用真实的密钥进行了真实渲染测试——正是这样才发现了以下两个问题。

一个没有扩展名的文件

通过链接把一段片段交给模型,是最直接的做法。但在其中几个模型上,它会以一种极难猜到的方式失败:文件抵达时没有扩展名,而模型是按扩展名来校验的,于是它会拒绝一个完全正常的mp4,理由是它「不是」mp4。同样的字节以内联方式发送时,在各处都被接受了。因此现在每段片段都会先被重新编码成标准格式,再以内联方式发送,同时设有一个大小上限,超过上限时仍会走链接路径,并附带一条警告。

一个没人真正拿到过的档位

第二个问题一直在让客户白花钱。其中一个视频模型完全没有分辨率字段——它的画质档位要通过一个换了名字的字段来设置——而它前面的平台会悄悄丢弃它无法识别的字段。于是这个模型自从上线以来的每一次渲染,都会回落到默认档位,而客户明明为更高档位付了钱。没有任何环节报错,视频照常送达,只是不是客户被收费的那个版本。

档位现在会根据实际计价的分辨率来推导,并通过探测确认。

Seedance转到了直连通道

同一时期,整个Seedance系列从聚合平台迁移到了服务商自己的API,聚合平台被保留为回退方案。一行模型记录,一个名字,两套费率——无论主通道是否失败、回退方案是否启用,报给你的价格就是你实际支付的价格,账本会记录到底是哪条通道真正完成了工作,这样我们自己的利润核算读到的就是事实,而不是报价。

作为用户需要知道的一点是:当你在这条通道上附加一段参考片段时,服务商会把片段的秒数计入费用,叠加在输出结果的秒数之上。表单中的预估会说明这一点,运行前显示的数字就是最终被收取的数字。

沿途发现的问题

三个API客户端都缺少一个关键属性,正是这个属性能让以服务商命名的类在我们的容器中被识别到。其中两个是文字转语音客户端,从被添加的那天起就一直不可见——这也是为什么目录里种下的两个语音一直无法真正被提供服务。现在一个反射测试会在下一次出现这类遗漏时直接让构建失败,而不是等着有人注意到某个语音什么都不做。

而我们前一天刚发布的网页搜索页面,在网页端和移动端的每个档位上都返回了403错误。它被一个父级权限锁住了;两个角色种子都只授予了它的三个子权限,而任何地方都不会从子权限反推出父权限。此前已有四个其他功能各自手动打过这类补丁。现在有了一项检查,会遍历整个权限树,并在某个服务被一个没有任何角色拥有的权限锁住时报错。

分享 LinkedIn X 电子邮件
用你自己的工作试试每条回复都会显示它的费用。从免费方案开始。 免费开始
Get product updates, not noise New models, features, and changelog highlights - a short email when something actually ships.
订阅即表示你同意接收 ToRun 的产品更新邮件。你可以随时退订。 隐私政策