mcpField
V
video-generation-gateways

video-generation-gateways

github.com/calesthio开发219112 次安装15 周前更新
代码仓库

关于 video-generation-gateways

用于选择和运营 fal.ai、Replicate、WaveSpeed 等托管视频生成网关的技能。重点涵盖接入决策、异步任务、架构发现、版本管理、费用控制、故障切换及输出授权。

主要功能

  1. 01网关选择与请求路由
  2. 02异步任务和 Webhook 处理
  3. 03模型参数架构发现
  4. 04版本固定与弃用管理
  5. 05费用上限与故障切换
  6. 06输出授权考量

适用场景

  1. 01在多个视频模型间路由请求
  2. 02构建基于 Webhook 的生成流程
  3. 03提交前验证模型输入
  4. 04规划网关故障切换与费用控制

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/calesthio/generative-media-skills --skill video-generation-gateways

安装后在 Claude Code 中输入/video-generation-gateways确认已加载。

附带文件EVAL.md

详细介绍

视频生成网关

视频生成网关是一种托管式推理聚合服务,通过单一账户、单一 API 规范和单一账单转售许多第三方视频模型(Veo、Kling、Seedance、Hailuo/MiniMax、Luma、Wan、LTX-Video、Pika 等)。你向网关拥有的端点发送提示词和参数;网关在自己的基础设施上运行底层模型,并返回托管结果 URL。本技能涵盖 fal.ai、Replicate 和 WaveSpeed 这几个代表性网关,以及这类服务共通的生产决策。

本技能关注的是路由与运行,而非艺术指导。针对特定模型的提示词设计、镜头设计和动作指导,属于模型或创作类技能。这里要讨论的问题是:选择哪个网关、是否要通过网关、异步任务契约如何运作、如何发现模型的 Schema、如何固定版本、如何限制支出、如何故障切换,以及输出内容受谁的许可协议约束。

何时适合使用网关(何时不适合)

在以下情况下使用网关(生产实践经验):

  • 你需要通过一次集成使用多种视频模型,例如,用 Veo 制作高品质镜头、用 Kling/Seedance 档位满足大批量需求,并在同一工作流中使用音频或升频模型,而无需为每个供应商分别签约、维护独立的密钥、计费关系和 SDK。
  • 你希望使用统一的异步任务契约(提交 → 轮询/ webhook → 获取),而非逐一了解各供应商各自的长任务协议。
  • 你正在挑选模型或进行 A/B 测试,希望能更换模型 ID,而无需重新配置身份验证、存储和结果处理。
  • 你希望网关通过 CDN 托管输入上传内容和输出媒体,从而无需自行搭建相关服务。
  • 你的用量尚不足以支撑直接签订企业合同,或者该模型没有第一方公开 API,只能通过转售商访问。

在以下情况下直接使用供应商,或重新考虑是否使用网关:

  • 你需要网关未开放的第一方功能,例如转售商尚未提供的参数、分辨率、区域、私有模型托管或 SLA。网关只开放每个模型部分经过筛选的功能。
  • 你需要合同约定的数据处理条款、HIPAA/区域数据驻留或已签署的 DPA,而网关无法转接底层供应商提供的相应条款。
  • 你的用量非常大且稳定,直接签订承诺用量合同比按次付费的转售商加价更划算。
  • 你需要遵循供应商自身的内容审核策略,而非网关额外增加的审核层(见下文“内容安全”)。
  • 延迟主要受制于你无法调整的网关排队/冷启动开销,而直接 API 可提供预置吞吐量。

本技能不涵盖:模型供应商的直接 API(Google Vertex/Gemini Veo、Kling 自有 API、Runway 等)、本地/自托管推理、训练或微调,以及仅使用图像网关的场景。

三个参考网关一览

以下时效性信息已于 2026-07-10 核实;发布前请重新核实模型 ID、价格和 限制——目录和价目表经常变动。

维度fal.aiReplicateWaveSpeed
定位以生成媒体为先(图像/视频/音频/3D),注重延迟通用模型市场(社区模型 + 精选的“官方”模型),目录最广针对媒体优化速度/延迟的推理服务
目录规模(自报)1,000+ 个模型100+ 个官方模型,加上大型社区目录700–1,000+ 个模型
提交端点https://queue.fal.run/{model-id}https://api.replicate.com/v1/predictions(社区模型)或 .../v1/models/{owner}/{name}/predictions(官方模型)https://api.wavespeed.ai/api/v3/{model-id}
异步任务状态IN_QUEUE → IN_PROGRESS → COMPLETEDstarting → processing → succeeded/failed/canceledcreated → processing → completed/failed
同步选项队列是主要方式;短时模型也提供运行端点使用 Prefer: wait 标头(默认 60s)实现同步调用轮询或 Webhook;结果端点
计费依据按输出计费(视频按秒或按条计费);也可按 GPU 使用秒数计费官方模型按输出计费;社区模型按 GPU 使用秒数计费按模型逐次运行计费,并随分辨率/时长/数量变化
余额模式预付费额度预付费额度(新账户余额硬上限为 $0)预付费额度(永不过期)
失败时收费?不收费——仅对成功输出收费社区模型即使模型出错,也会按 GPU 使用时间收费;官方模型按输出收费按使用量收费;请查看各模型的具体规则
Schema 发现方式使用 expand=openapi-3.0 的模型端点 API模型版本对象上的 openapi_schema各模型的 Playground/API 示例

来源:fal 队列和定价文档;Replicate HTTP API 和定价文档; WaveSpeed 预测和定价文档(见 Sources)。

表格解读: 三者在可调用的内容上高度重叠——Veo、Kling、Seedance 等热门模型都出现在三者中——因此差异主要体现在运行约定上:计费粒度、失败是否收费、Schema 的发现方式,以及版本如何固定。目录是必要条件,但并非充分条件;集成的成败取决于运行约定。

异步任务约定(所有网关的核心)

视频生成耗时较长(从数秒到数分钟),因此所有网关本质上都是异步任务队列。不要依赖会一直阻塞到视频完成的同步请求——你会遇到超时并丢失任务。通用流程如下:

  1. 提交任务 → 立即收到任务/请求 ID。
  2. 通过 Webhook(首选)或轮询(备用)等待完成。
  3. 获取结果(托管媒体 URL),并在过期前下载/持久化。
fal.ai 队列
  • 提交: 使用标头 Authorization: Key $FAL_KEY 向 POST https://queue.fal.run/{model-id} 发送请求。返回 request_id、response_url、status_url、cancel_url、queue_position。
  • 状态: GET https://queue.fal.run/{model-id}/requests/{request_id}/status(附加 ?logs=1 可查看运行器日志)。状态:IN_QUEUE、IN_PROGRESS、COMPLETED。
  • 结果: GET https://queue.fal.run/{model-id}/requests/{request_id}。
  • 取消: PUT .../requests/{request_id}/cancel——立即移除排队中的任务;对于正在处理的任务,则尽力发送取消信号。
  • 文档中的保证:“队列中的请求绝不会被丢弃。”
  • 已于 2026-07-10 根据 fal 队列文档核实。
Replicate 预测
  • 提交(社区版): POST https://api.replicate.com/v1/predictions 并包含 version 字段。提交(官方版): POST https://api.replicate.com/v1/models/{owner}/{name}/predictions (无需版本)。
  • 同步快捷方式: 添加 Prefer: wait(或 Prefer: wait=5),让 HTTP 连接最多保持 60s,并为速度快的模型直接返回输出——不适用于耗时数分钟的视频任务。
  • 截止时间: Cancel-After 请求头(5s–24h)会自动取消预测任务本身(不同于 Prefer: wait,后者只限制 HTTP 等待时间)。
  • 状态/结果: 轮询 urls.get 中的 URL,直到状态变为 succeeded 或 failed; 完成前 output 为 null。可在 urls.web 中查看网页调试页面。
  • 根据 Replicate HTTP/创建预测文档于 2026-07-10 核实。
WaveSpeed 预测
  • 提交: POST https://api.wavespeed.ai/api/v3/{model-id} → 返回任务/预测 ID。
  • 结果: GET https://api.wavespeed.ai/api/v3/predictions/{id}/result。 状态包括:created、processing、completed、failed。outputs 保存 结果 URL;timings.inference 给出耗时(毫秒)。
  • 数据保留:预测结果可用 7 天(于 2026-07-10 核实); 请及时持久化输出。
  • 根据 WaveSpeed 获取结果文档于 2026-07-10 核实。
Webhook 与轮询(生产环境经验法则)

视频任务优先使用 Webhook:持续数分钟的轮询循环会浪费请求并增加触发速率限制的风险,而且保持连接打开并不可靠。只有在无法提供公开 HTTPS 端点时(本地开发、受限网络),才退而使用轮询。如果使用轮询,请增加间隔——图像任务约 2s,视频任务约 5s,然后逐步延长间隔(这是 WaveSpeed 文档中的建议,也是适用于所有场景的稳妥默认值)。切勿每秒多次轮询同一个任务。

每个 Webhook 处理程序都应设计为幂等:网关会重试投递,且同一任务 ID 的通知可能会重复送达。

Webhook 安全性与可靠性

Webhook 负载来自公共互联网——请验证其有效性。

fal.ai 使用 ED25519 对 Webhook 签名。验证步骤(于 2026-07-10 核实):

  1. 读取请求头 X-Fal-Webhook-Request-Id、X-Fal-Webhook-User-Id、 X-Fal-Webhook-Timestamp、X-Fal-Webhook-Signature(十六进制)。
  2. 从 https://rest.fal.ai/.well-known/jwks.json 获取 JWKS,并缓存 最多 24h。
  3. 如果时间戳与当前时间相差超过 ±300s(5 分钟),则拒绝请求。
  4. 重建签名消息(请求 ID + 用户 ID + 时间戳 + 原始正文的 SHA-256 哈希值,以换行符连接),并使用 JWKS 中的 ED25519 公钥验证签名。
  5. 也可使用 https://api.fal.ai/v1/meta 中的 webhook_ip_ranges 设置 IP 允许列表。

fal 投递/重试机制(于 2026-07-10 核实):首次投递超时时间为 15s; 失败时会在 2 小时内重试 10 次。成功负载包含 status: "OK"、结果和 seed;请求错误包含 status: "ERROR";序列化失败时,payload 会设为 null,并附带 payload_error。重试期间 request_id 保持不变;gateway_request_id 反映最近一次尝试。

Replicate 允许通过 webhook_events_filter 筛选触发的事件 (例如 ["completed"]);start 和 completed 始终会发送。Replicate 支持使用签名密钥验证 Webhook 签名——在信任负载前请先验证。(上线前请在 Replicate 的 Webhook 文档中确认当前机制;已于 2026-07-10 从概念层面核实。)

WaveSpeed 会发送包含 id、model、input、outputs(状态为 completed 时)、urls.get、status 和 error(失败时)的 POST 请求。在依赖相关机制前,请先在 WaveSpeed 的 Webhook 文档中确认当前签名详情。

按模型发现 Schema

每个模型提供的输入各不相同(分辨率枚举值、时长上限、图像/视频参考槽位、音频开关、种子、负面提示词)。切勿硬编码假设——发现 Schema,这样集成才能验证输入,并在模型更新时进行适配。

  • **fal.ai:**模型端点 API 接受 expand=openapi-3.0,并在 openapi 字段中返回端点的完整 OpenAPI 3.0 Schema。按 endpoint_id 查询(例如 fal-ai/veo3),即可获取每个输入参数的 JSON Schema。使用列表/搜索模式枚举目录。(已于 2026-07-10 验证。)
  • **Replicate:**获取 /v1/models/{owner}/{name}/versions/{version_id} 处的模型版本对象,并读取 openapi_schema.components.schemas 中的 Input 和 Output Schema。(已于 2026-07-10 验证。)
  • **WaveSpeed:**每个模型的页面/操作台都会展示参数集,并自动生成 Python/JS/cURL 示例;截至 2026-07-10,没有单一且有文档说明的跨目录 OpenAPI 导出——应以各模型的文档为准。

**经验法则:**按 (model-id, version) 缓存发现的 Schema,并在版本变更或首次出现 422/验证错误时重新获取。在网关前增加一个小型 Schema 验证层,可在你为失败的任务付费之前捕获参数结构变更。

版本固定与弃用

版本之所以重要,是因为它关系到可复现性:对于悄然更新的模型,相同提示词可能产生不同的运动效果、构图或质量。

  • Replicate 提供最明确的模型:社区模型通过 {owner}/{model}:{64-char-version-hash} 指定。固定哈希可保证行为长期一致;省略哈希(或使用不带哈希、以 {owner}/{model} 指定的官方模型)则意味着 Replicate 会让你使用最新维护版本。**权衡:**固定哈希可确保可复现性并避免行为意外变化;若希望自动升级并减少维护工作,则使用不固定版本的官方模型格式。Replicate 将固定版本列为可复现性的最佳实践。(已于 2026-07-10 验证。)
  • fal.ai 和 WaveSpeed 通过稳定的字符串 ID 指定模型(例如 fal-ai/veo3,或 fal-ai/kling-video/v2/... 这类带版本的 ID)。版本粒度编码在供应商发布的 ID 中;请留意更新日志,关注新 ID 和旧 ID 的弃用情况。

弃用是网关中真实存在的运维风险,并非假设。 底层模型会退役或被替代(例如推出新版 Kling/Veo/Seedance,旧端点则停止服务)。缓解措施(经验法则):

  • 跟踪各网关的更新日志,并在可用时固定到明确标注版本的 ID。
  • 维护一份由配置驱动的模型映射(使用环境变量/配置,而非内联字符串),这样弃用 ID 时只需改一行,而不必在代码中搜索。
  • 在 CI 中添加目录/健康探测,解析你依赖的每个模型 ID,并在某个 ID 无法解析或其 Schema 发生变化时发出提醒。
  • 为每个能力等级维护一个具名备用模型,这样端点停止服务时可降级到替代模型,而非导致流水线失败。

支出控制

视频是单次调用成本最高的生成模态,重试或循环异常都可能导致网关支出迅速失控。各平台的控制方式差异很大:

  • fal.ai:主要通过预付额度设定上限——支出不会超过余额。你只需为成功生成的结果付费;服务器错误(HTTP 500+)和排队时间均不收费。截至 2026-07-10,fal 的官方文档未提及按项目设置预算提醒——请通过账单/平台 API 自行构建支出核算。
  • Replicate:****月度支出限额已弃用(2025 年 7 月 1 日);现在由预付额度作为硬性上限——余额为 $0 时任务会停止(自 2025 年 7 月 16 日起,新账户使用预付额度)。弃用后不再提供原生预算提醒;低余额提醒需自行处理或使用第三方工具。请注意失败计费上的差异:社区模型即使运行出错,也会按 GPU 秒数收费,因此反复崩溃的社区模型仍会产生费用;官方模型按输出计费。(已于 2026-07-10 核实。)
  • **WaveSpeed:**预付额度永不过期;按模型用量计费,费用随分辨率、时长和输出数量变化。运行前会显示费用估算,也可以通过定价 API 查询。经批准的账户/企业账户可使用月度额度。(已于 2026-07-10 核实。)

生产环境的成本安全经验:

  • 保持较小的可用余额,并有计划地充值——在这三个平台上,预付余额都是实际的断路器。
  • 提交前先估算费用:视频成本随**时长 × 分辨率 × 输出数量(部分模型还要乘以音频因素)**变化。带音频的 8s 1080p Veo 视频片段,价格远高于 5s 720p Kling 视频片段——请了解单位价格。示例(fal,已于 2026-07-10 核实):Veo 3.1 在 720p/1080p 下,不带音频约为 $0.20/s,带音频约为 $0.40/s;Kling 2.5 Turbo Pro 约为 $0.07/s。价格会变化,请重新核实。
  • 在自己的代码中限制并发和重试次数;在任何预付费网关上,对失败模型进行无限重试都是典型的支出失控诱因。
  • 实验时优先选择失败不收费的网关/模型;如果任务延迟难以预测,优先选择按输出而非按 GPU 秒数计费的模型。
  • 记录每项任务的费用(任务 ID → 模型 → 参数 → 费用),以便追踪归因和触发提醒;不要依赖网关主动警告你。

重试与跨网关故障转移

重试。 预期会出现暂时性故障(429 速率限制、5xx、容量不足或冷启动超时)。重试时使用指数退避和抖动、由你控制的幂等键,以及上限(包括尝试次数和总支出)。由于已提交但处理缓慢的任务并不等同于失败任务,应区分“提交失败”(可以安全重试)和“任务运行缓慢”(轮询/等待,不要重新提交——重新提交会导致重复扣费)。如果存在 Retry-After,请遵守该值。

跨网关故障转移。 由于多个网关提供相同的热门模型,网关是一条可替换的路由,这是采用聚合器模式最有力的运维理由。要实现故障转移:

  • 在能力接口(generateVideo(prompt, tier, constraints))后进行抽象,而不是调用特定网关的接口,这样路由器就能选择提供商和模型。
  • 为每个能力层级维护覆盖 ≥2 个网关的模型映射(例如“高端电影级” → fal 或 Replicate 上的 Veo;“批量” → WaveSpeed 上的 Seedance 或 fal 上的 Kling)。
  • 在接口边界进行规范化:每个网关都有各自的身份验证方式、提交格式、状态词汇、参数名称和结果 JSON。只有将输入/输出转换为规范形式,故障转移才能奏效。
  • 留意输出差异: 同一模型在两个网关上的参数、默认分辨率、审核方式,甚至细微的处理流程都可能不同。故障转移保障的是可用性,不一定是输出完全相同——应将故障转移结果视为近似替代,而非逐位相同的结果;对质量要求关键的镜头要重新验证。
  • 确保每个网关都有单独的预付余额和密钥,以免备用网关因余额为零而无法接管。

各网关的内容安全行为有所不同

两层审核会叠加:底层模型自身的安全行为,以及网关额外实施的审核。不同网关的审核并不相同,因此,同一模型上的同一提示词可能在一个网关上通过,却在另一个网关上被拦截。

  • fal.ai 集成了用于实时过滤的 OpenAI Omni 审核 API,制定了 NSFW 内容政策,并与 NCMEC/Thorn(CSAM)和 StopNCII(NCII)合作。部分图像模型提供 enable_safety_checker 开关(默认开启);视频模型的审核策略取决于具体模型。用户仍须遵守 fal 的《可接受使用政策》。 (已于 2026-07-10 核实。)
  • Replicate 执行其条款以及底层模型的限制;审核严格程度主要取决于具体模型。
  • WaveSpeed 在各模型自身的条款之上,另行执行其可接受使用条款。

经验法则:(1)按网关测试审核行为,而不是只测试一次——主用网关放行的提示词可能会被故障转移路由拒绝,从而破坏可用性预期。(2)将审核拒绝与暂时性错误区别处理——审核拒绝是确定性的,因此对同一提示词进行重试或故障转移往往只会失败或重复扣费;应改为向用户说明情况、调整提示词,或路由到采用不同政策的模型。(3)不要假定网关会像直连 API 一样移除或添加水印、C2PA/来源信号或安全过滤器——请进行验证。

数据治理与商业权利传递

**两个独立的问题:**你的数据存储在哪里,以及谁可以将输出用于商业用途。

数据保留/驻留:

  • **fal.ai:**输入上传内容和输出媒体会存储在 fal 的 CDN (v3.fal.media/...)中。可通过 X-Fal-Object-Lifecycle-Preference 标头控制保留时间(expiration_duration_seconds,或 使用 null 表示永不过期)。请求/响应 JSON 默认存储 30 天。 请在输出过期前下载——过期文件无法恢复。 (已于 2026-07-10 验证。)
  • **Replicate:**对于通过 API 创建的预测,输入参数、输出和日志默认会在 约 1 小时后自动删除——你必须自行保存输出。 (已于 2026-07-10 验证。)
  • **WaveSpeed:**预测保留 7 天。(已于 2026-07-10 验证。)

由于输出是临时的,请务必下载并自行托管所有需要的内容;切勿将网关 CDN URL 直接提供给终端用户,用作持久内容链接。 对于受监管的数据,请确认网关是否能提供 DPA 或区域化处理服务——大多数转售流程都会将你的输入发送到第三方模型基础设施。

**商业权利传递(关键的治理要点):**网关授予你对其服务输出的权利,并不意味着可以凌驾于底层模型的许可证之上。权利取决于模型,而不是网关。

  • Replicate 的条款授予你对输出的“全部权利、所有权和权益”,包括商业使用权——**但明确规定这受你所用模型所确定的第三方条款约束。**某些模型(例如 Stable Diffusion 这类宽松许可的模型)不主张所有权;其他模型则会限制商业使用。 (已于 2026-07-10 验证。)
  • 同样的逻辑也适用于 fal 和 WaveSpeed:模型卡/底层供应商许可证决定你是否可以将视频片段用于商业用途、是否需要署名,以及供应商是否主张对你的输入享有训练或使用权。

经验法则:将网关生成的视频用于商业用途前,请先确认底层模型的许可证和模型提供方的条款,而不只是网关的服务条款。高级模型(Veo、Kling)通常附带提供方特定的商业条款和单个视频片段的使用限制;网关转售这些模型并不会放宽相关条款。请记录你所部署的每个模型用于商业用途的许可依据,以便日后发生争议或更换模型时进行审计。

故障排查

症状可能原因处理方法
提交很快返回,但没有视频这是预期行为——该流程是异步的;你拿到的是作业 ID,而不是结果轮询 status/result,或等待 webhook;不要把提交响应当作输出
webhook 始终未到达端点不是公开的 HTTPS 地址、处理程序运行缓慢(在 fal 上超过 15 秒),或签名检查拒绝了有效负载确认端点可访问,快速响应后再异步处理,并检查签名逻辑;必要时改用轮询
重复处理结果网关重试了交付让处理程序基于作业 ID/请求 ID 实现幂等
422/验证错误此模型/版本的参数格式错误重新获取模型架构(fal 的 openapi-3.0、Replicate 的 openapi_schema);提交前验证输入
已扣费,但没有可用输出社区模型在出错时仍按 GPU 使用时间计费(Replicate),或输出在下载前已过期对不稳定的作业优先选择按输出付费的模型;立即下载输出;检查保留期限
模型 ID 不再解析版本已弃用/停止服务将由配置驱动的模型映射更新为新的带版本 ID,或切换到该层级的备用方案
提示词在一个网关上被拦截,在另一个网关上却可以通过各网关叠加的审核层不同将此视为确定性行为;调整提示词,或路由到策略不同的模型——不要盲目重试
费用失控重试次数不受限制,或预付余额上的循环异常限制重试次数/并发数,保持较小的余额,并记录每个作业的费用
一次“无操作”更改后输出看起来不同未固定的版本已在后台更新固定明确的版本哈希/ID;在 CI 中添加架构/行为探测
结果 URL 后来返回 404网关 CDN 的保留期限已过将需要长期保留的内容重新托管;绝不要向最终用户提供原始网关 URL

完整示例(仅供说明——使用前请核实 ID/价格)

示例 A — 为一批简短社交短视频选择路由

目标: 每天生成 500 个五秒的 720p 竖屏短视频,注重成本, 部分提示词接近内容政策边界,且不得超过固定的每日预算。

分析: 处理量和成本敏感性意味着应选择按秒/按次计费的模型, 并使用满足以下条件的网关:(a) 失败时不收费,(b) 支持严格的预付额度上限。 选择中端模型(例如 Kling/Seedance 的 turbo 层级),而不是 Veo。 在相同能力层级后配置一个备用网关用于故障切换,因为在每天 500 个作业的情况下, 无法保证单个网关上的单个模型始终可用。

方案: 主路由 = fal queue.fal.run 提交 + 经 ED25519 验证的 webhook, 预付余额按每日预算设置,作为断路器;备用路由 = WaveSpeed 上相同层级的模型,并为其单独充值。路由器根据 健康状态和队列深度进行选择。记录每个作业的费用(作业 ID → 模型 → 参数 → 费用)。 审核拒绝结果会转交至审核队列,不会重试。

预期结果: 短视频通过异步方式交付,预算受预付余额限制, 某条路由停止服务或发生故障时,会切换到另一条路由。故障模式: 忘记为备用余额充值(故障切换会静默失败);盲目重试审核拒绝结果(浪费费用); 提供原始 CDN URL,导致其后来返回 404。

示例 B — 在 Replicate 上固定一个可复现的电影级模型

**意图:**营销工作流中的主视觉镜头必须数月如一地渲染;并且必须支持商业用途。

计划:

  1. 确认确切版本:调用 GET /v1/models/{owner}/{name}/versions 并选择哈希;在配置中存储 {owner}/{name}:{version_hash}。
  2. 调用 POST /v1/predictions 提交请求,并指定固定的 version、webhook 和 webhook_events_filter: ["completed"];设置 Cancel-After 截止时间以控制支出。
  3. 提交前,根据 openapi_schema.components.schemas.Input 发现并验证输入。
  4. 完成后,在约 1 小时的保留时限内下载并重新托管视频。
  5. **版权检查:**确认底层模型的第三方条款允许商业用途,并在发布前记录许可依据。

**这样设计的原因:**固定哈希可锁定可复现性;架构检查可防止参数变化悄然改变输出;考虑保留时限并及时下载可避免结果丢失;版权检查可避免发布许可证禁止商业用途的片段。**失败模式:**使用未固定版本的官方模型形式(自动升级会破坏可复现性);误以为 Replicate 的所有权授予会凌驾于模型的限制性许可证之上。

示例 C — 在集成模型前发现其架构(fal)

**意图:**集成一个你尚未使用过的视频模型;你不知道它的时长上限、分辨率枚举值,也不知道它是否接受图像参考。

**计划:**调用 fal 模型端点 API,将 endpoint_id 设为该模型(例如 fal-ai/veo3),并设置 expand=openapi-3.0;读取返回的 openapi 字段中的输入对象 JSON Schema。根据该架构生成请求类型和验证层;以模型 ID 为键缓存架构;首次收到 422 或变更日志公告版本更新时重新获取。

**原因:**这样可以让集成具备自描述能力,并能适应模型新增或重命名参数,而不是硬编码猜测的请求体,导致下一次模型更新时集成出错。**失败模式:**跳过发现步骤,硬编码从博客文章复制的参数,而文章中的信息已落后于当前架构。

来源

所有 URL 均于 2026-07-10 核实。

模型特定价格(Veo 3.1 约 $0.20–0.60/秒,具体取决于分辨率和音频;Kling 2.5 Turbo Pro 约 $0.07/秒)来自 fal 的定价页面,于 2026-07-10 核实,且可能变动——请务必对照实时费率表再次核实。

评论

支持 Markdown