Skip to main content
如果你已经使用 LiteLLM Proxy 跟踪支出,就可以把 Comfy Router 作为又一个透传端点添加进来。调用方继续使用自己的 LiteLLM 密钥,而你的 Comfy API 密钥则保留在代理上。 对于会反馈每次运行 Comfy 点数价格的模型(参见不反馈成本的运行),Router 会在 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 计费的扣费
  • 错误响应
当 Router 针对使用相同 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 参考 中。截止时间、重试及其他限制见能力与限制。