x-litellm-response-cost 响应头中以美元为单位反馈一次同步运行的成本。LiteLLM 会在每个透传响应中读取该响应头,并将其记录为该请求的支出,因此你无需为这些模型维护价格表。
LiteLLM 内置的
fal_ai/ 提供商仅涵盖图像生成。若要通过 LiteLLM 路由常规工作负载,请使用此处所示的透传端点,而不是原生提供商。配置透传
1
创建 Comfy API 密钥
在你的 Comfy 工作区中创建密钥,并使其可供 LiteLLM Proxy 进程使用:
2
将 Router 添加到 config.yaml
config.yaml
include_subpath: true会将/comfy/v2/models/{provider}/{model}转发到https://api.comfy.org/v2/models/{provider}/{model},因此一对条目即可覆盖所有 Router 模型。- 请将
path和target限定在/v2/models范围内。若将透传指向 API 根路径,任何持有 LiteLLM 密钥的调用方都能在其他所有 Comfy API 路由上使用你的 Comfy 密钥,从而绕过 LiteLLM 的支出跟踪。 methods用于在同一路径上区分这两个条目。它需要 LiteLLM Proxy 的透传端点支持methods的版本;本页面是基于 v1.103.0 检查的。X-API-Key携带你的comfyui-密钥。Router 也接受以Authorization: Bearer comfyui-...形式提供的同一密钥。- 请勿开启
forward_headers。开启后,LiteLLM 会将所有传入的请求头转发给 Router,包括调用方的 LiteLLM 密钥。关闭时,调用方以x-pass-Idempotency-Key传递Idempotency-Key:LiteLLM 会去掉x-pass-前缀并将其转发。普通的Idempotency-Key请求头不会到达 Router,因此重试会再次运行并产生第二次生成的计费。 - 将
timeout设置得高于 Router 的运行截止时间,以便 Router 能在 LiteLLM 放弃之前返回自己的504和请求 ID。截止时间默认为 10 分钟,与 LiteLLM 默认的透传超时 600 秒相同。
3
通过代理调用 Router
调用方使用其 LiteLLM 密钥进行身份验证。请求体是模型自身的输入,与 Comfy Router 参考中完全相同:
支出如何记录
报告成本的同步运行会携带以下响应头:X-Comfy-Credits-Used 是该次运行以 Comfy 积分表示的价格,四舍五入到两位小数。X-Litellm-Response-Cost 是同一价格由未舍入的积分数量换算成的美元金额,因此用显示的积分数除以换算比率,结果可能与它在最后几位上有所不同。响应头名称不区分大小写,所以 LiteLLM 会将其读取为 x-litellm-response-cost。LiteLLM 会原样记录它,并用它替代你的 cost_per_request。x-litellm-total-tokens 始终为 0,因为媒体类运行不按 token 计量。
与 X-Comfy-Credits-Used 一样,该响应头报告的是价格,而不是已结算的扣费。请以工作区计费为准核对,而不是以 LiteLLM 的合计为准。
不报告成本的运行
有些运行不会携带x-litellm-response-cost。它与 X-Comfy-Credits-Used 在相同的情况下缺失:
- 计费到你自己提供商密钥而不是你的 Comfy 积分的运行
- 尚未列入 Router 的报告每次运行积分价格的模型列表的模型。该列表较为保守,有些提供商完全不在其中
- 没有到达 Comfy 计费的扣费
- 错误响应
Idempotency-Key(通过代理发送时为 x-pass-Idempotency-Key)的重试重放已存储的结果时,它也会缺失。该重试不会再次计费,因此这次重放不会第二次报告该次运行的确切成本。
当该响应头缺失时,LiteLLM 会回退到端点的 cost_per_request。这适用于上述所有情况。因此,错误响应、计费到你自己提供商密钥的运行以及幂等重放,都会按你的估值记录,即使 Comfy 并没有为此扣除你的积分。请把它设置为对典型运行的合理估值,而不是 0,这样不报告成本的运行就不会在你的支出报告中显示为免费,同时也要预期这些记录会使 LiteLLM 的合计高于你的 Comfy 账单。一次已被定价且确实没有任何花费的运行会报告 x-litellm-response-cost: 0,LiteLLM 会将其记录为零。
队列投递
使用队列投递时,一次生成会以多个请求的形式到达 LiteLLM,每个请求各自单独成行计入消费:
提交响应中的
status_url、response_url 和 cancel_url 都是绝对的 https://api.comfy.org/... URL,而 LiteLLM 不会重写响应体。要通过代理调用它们,请把 https://api.comfy.org 替换为代理的 /comfy 前缀,例如 http://localhost:4000/comfy/v2/models/...。如果直接发送给 Comfy,你的 LiteLLM 密钥会被拒绝。
队列响应目前还不包含 x-litellm-response-cost,因此一次排队生成会按你的估算值记录,而不是按它的确切价格。按方法拆分端点可以让该估算值只在提交时计一次,而不是每次轮询都计一次。如果要在 LiteLLM 中获得每次运行的精确消费,请使用同步路由。
说明
- LiteLLM 会记录消费额,但不会改变计费。无论是否使用该代理,Comfy 都按相同方式为你的工作区计费。
- 每个模型的完整请求与响应 schema 都在 Comfy Router 参考 中。截止时间、重试及其他限制见能力与限制。