读取输入与输出 schema
每个模型都暴露一份独立的 OpenAPI 文档:requestBody 描述输入,而在已编写输出 schema 的情况下,200 响应描述输出。输入验证与输出文档是两回事:Router 会依据其输入 schema 进行验证,但不会依据输出 schema 验证返回的提供商结果。
不仅要检查输出媒体类型,还要检查它的字段。若输出 schema 尚未编写,其媒体类型可能是 */*,并且有些模型返回二进制数据而非 JSON。
缓存 schema
保存 schema 及其ETag。在之后获取 schema 时,通过 If-None-Match 传入该 ETag。304 没有响应体;保留缓存的文档即可。200 会提供一份替换的文档和 ETag。
Cache-Control: private, must-revalidate。请勿将需要认证的响应放入共享缓存。此 ETag/304 行为仅适用于 schema 端点。
验证与回退 schema
已编写的输入 schema 会在调用提供商之前,用422 和 detail[] 数组拒绝无效字段。请查看 loc 中的字段路径;参见验证错误。
有些 schema 接受任意 JSON 对象,并设置 x-comfy-input-schema-authored: false。Router 会转发这些请求而不做模型特定的验证,因此提供商仍可能拒绝它们。
读取结果
Router 返回每个模型的终端结果形状。并不存在通用的图像、视频或文本信封:BFL 的图像输出使用result.sample,而其他模型可能返回 URL 列表或内联字节。
部分资产 URL 由 Comfy 重新托管;其他则仍是提供商 URL 或内联字节。请查看结果资产,并及时下载会过期的资产。重放不会续期 URL。