Vidu Studio 把视频生成 API 收进一条可计费、可恢复的多用户任务链。
问题与定位
单次调用视频生成 API 只能证明“接口能返回任务”,不能解决多人使用时的身份归属、素材可读性、额度超卖、任务长时间运行和失败后的下一步。
Vidu Studio 以 Sites 与 Vidu API 为基础,把这些问题收敛为多用户视频生成工作台:用户登录后上传素材,选择 Reference to Video、人物替换或 Motion Sync,系统校验输入与额度,提交异步任务并持续轮询,最后按结果展示和实际消耗结算。
统一任务链是“身份 → 素材 → 额度 → 上游任务 → 轮询 → 结算 → 结果”。三种能力共享产品骨架,差异集中在输入限制、Vidu 端点、模型参数和人物替换的回退策略,避免为每种能力维护互不相干的页面状态。
核心方案
身份、素材与业务事实
生产身份只接受 Sites 注入的 ChatGPT 登录身份,浏览器不接触模型密钥。
D1 保存用户、额度流水、任务和媒体索引,R2 的 MEDIA 绑定保存输入图片与视频;大对象与业务事实分离。
前端/Server 逻辑负责表单、身份、任务提交、轮询和结果展示,部署与回滚由 Sites/Cloudflare Worker 配置和 runbook 管理。
先预留、后结算
额度采用“先预留、后结算”而不是提交即永久扣除。
提交前检查可用余额与并发上限,预留额度后创建任务;上游成功时按实际消耗结算,最终失败时返还,任务和账本状态一起保留审计线索。
这样异步等待期间不会因为重复提交、上游失败或轮询异常造成不可解释的余额变化。
关键工程实现
三类任务与输入边界
| 能力 | 输入与边界 |
|---|---|
| Reference to Video | 使用图片、短视频参考和提示词;单个参考视频最长 8 秒,两个视频时每个最长 5 秒,使用视频参考时最多搭配 4 张图片。 |
| 人物替换 | 同时支持 V16 稳定方案与专用 Replacement Beta。Beta 原视频需至少 2 秒且短于 10 秒,提交时预留 100 credits。 |
| Motion Sync | 使用角色图片和动作参考视频,重点校验素材可读性、并发、上游失败和结果过期。 |
当 Replacement Beta 返回 404 且素材不超过 8 秒时,系统才允许回退 V16;更长素材提示裁剪并退回预留额度。
任务记录必须保留实际使用的引擎和 credits 口径,不能把替代引擎的消耗继续记成 Beta。回退是有条件的状态转移,不是无条件重试。
轮询、媒体与可恢复性
任务提交后按 queued / processing / success / failed 等状态轮询 Vidu,更新 D1 任务与媒体索引,再向用户展示可播放结果或可操作错误。
排障顺序也围绕事实源展开:先查 Sites 身份头,再查 R2 对象和公共媒体路由,随后核对预留流水、Vidu task id、轮询超时、最终状态和实际消耗/退款分支。
当前一个重要风险是 Vidu 结果 URL 只短期有效,成功视频归档到 R2 仍属于后续路线;D1 的媒体索引不能替代真正的对象归档。
管理员发放额度、团队工作区、共享素材库、用量报表以及完整取消/重试策略也不在当前 MVP 事实范围内。
边界与验证
项目资料确认 Vidu Studio 已由企业内部团队使用落地,但没有公开用户数、收入、成功率、成本或延迟指标。
仓库静态核验基于提交 e119c40,README、package.json、部署 runbook、Roadmap 和渲染 HTML 回归测试入口均已记录。
对应资料明确说明当时未运行本地构建、渲染测试或真实 Vidu 任务,也未验证当前 Sites 生产版本、D1 数据和 R2 媒体路由。
- “内部使用”不等于公网开放,也不能推出生产规模或容量结论。
- Vidu API、Sites、ChatGPT 登录和模型能力属于第三方,文章只描述接入与边界设计。
- 真实任务流水、额度结算样例、R2 可读性和 404 回退日志仍需在授权环境补证。
总结
Vidu Studio 的重点不是增加一个生成按钮,而是把外部视频 API 纳入可解释的产品状态机:身份决定归属,R2 管理素材,D1 记录任务与账本,轮询连接异步世界,预留/结算保护额度,条件回退降低上游接口波动的影响。
它体现了将模型能力包装成多用户产品时,对数据所有权、补偿逻辑和验证边界的工程判断。
评论