x-litellm-response-cost (en la respuesta de la ejecución cuando es síncrona, y en la recogida del resultado cuando está en cola), para los modelos que informan un precio en créditos de Comfy por ejecución (consulta Ejecuciones que no informan un costo). LiteLLM lee ese encabezado en cada respuesta pass-through y lo registra como el gasto de la solicitud, así que no tienes que mantener una tabla de precios para esos modelos.
El proveedor
fal_ai/ integrado de LiteLLM solo cubre la generación de imágenes. Para enrutar una carga de trabajo general a través de LiteLLM, usa un endpoint pass-through como el que se muestra aquí, no un proveedor nativo.Configurar el pass-through
1
Crear una clave API de Comfy
Crea una clave en tu espacio de trabajo de Comfy y ponla a disposición del proceso de LiteLLM Proxy:
2
Agregar Router a config.yaml
config.yaml
include_subpath: truereenvía/comfy/v2/models/{provider}/{model}ahttps://api.comfy.org/v2/models/{provider}/{model}, así que un solo par de entradas cubre todos los modelos de Router.- Mantén
pathytargetlimitados a/v2/models. Si apuntas el pass-through a la raíz de la API, cualquier cliente con una clave de LiteLLM podría usar tu clave de Comfy en todas las demás rutas de la API de Comfy, fuera del seguimiento de gasto de LiteLLM. methodssepara las dos entradas de la misma ruta. Necesita una versión de LiteLLM Proxy cuyos endpoints pass-through admitanmethods; esta página se comprobó con la v1.103.0.X-API-Keylleva tu clavecomfyui-. Router también acepta la misma clave comoAuthorization: Bearer comfyui-....- Deja
forward_headersdesactivado. Cuando está activado, LiteLLM reenvía a Router todos los encabezados entrantes, incluida la clave de LiteLLM de quien llama. Con él desactivado, los clientes envían unaIdempotency-Keycomox-pass-Idempotency-Key: LiteLLM quita el prefijox-pass-y la reenvía. Un encabezadoIdempotency-Keynormal no llega a Router, así que un reintento ejecutaría y cobraría una segunda generación. - Define
timeoutpor encima del plazo de ejecución de Router, para que Router pueda devolver su propio504y el ID de solicitud antes de que LiteLLM se rinda. El plazo es de 10 minutos de forma predeterminada, igual que el tiempo de espera predeterminado de 600 segundos del pass-through de LiteLLM.
3
Llamar a Router a través del proxy
Los clientes se autentican con su propia clave de LiteLLM. El cuerpo es la entrada nativa del modelo, exactamente como en la referencia de Comfy Router:
Cómo se registra el gasto
Una ejecución que informa un costo lleva estos encabezados de respuesta, en la respuesta de la ejecución cuando es síncrona y en la recogida del resultado cuando está en cola:X-Comfy-Credits-Used es el precio de la ejecución en créditos de Comfy, redondeado a dos decimales. X-Litellm-Response-Cost es ese mismo precio convertido a USD desde el importe en créditos sin redondear, así que dividir los créditos mostrados entre la tasa de conversión puede diferir de él en las últimas cifras. Los nombres de encabezado no distinguen mayúsculas de minúsculas, así que LiteLLM lo lee como x-litellm-response-cost. LiteLLM lo registra exactamente como se envía y lo usa en lugar de tu cost_per_request. x-litellm-total-tokens siempre es 0, porque las ejecuciones de medios no se miden en tokens.
Igual que con X-Comfy-Credits-Used, el encabezado informa un precio y no un cargo liquidado. Concilia con la facturación del espacio de trabajo, no con los totales de LiteLLM.
Ejecuciones que no informan un costo
Algunas ejecuciones no llevanx-litellm-response-cost. Falta en los mismos casos que X-Comfy-Credits-Used:
- una ejecución facturada a tu propia clave de proveedor y no a tus créditos de Comfy
- un modelo que todavía no está en la lista de Router de modelos que informan un precio en créditos por ejecución. Esa lista es conservadora, y algunos proveedores no aparecen en ella en absoluto
- un cargo que no llegó a la facturación de Comfy
- una respuesta de error
Idempotency-Key (enviada a través del proxy como x-pass-Idempotency-Key). Ese reintento no se cobra de nuevo, así que la reproducción no informa por segunda vez el costo exacto de la ejecución. Por la misma razón, solo una recogida del resultado de una ejecución en cola lo lleva, la primera después de que se registre el precio de la ejecución; recoger el mismo resultado otra vez sigue devolviendo X-Comfy-Credits-Used, pero no x-litellm-response-cost.
Cuando el encabezado falta, LiteLLM recurre al cost_per_request del endpoint. Eso se aplica a todos los casos anteriores. Las respuestas de error, las ejecuciones facturadas a tu propia clave de proveedor y las reproducciones idempotentes se registran por tanto con tu estimación, aunque Comfy no haya cobrado tus créditos por ellas. Defínelo con una estimación razonable de tu ejecución típica en lugar de 0, para que una ejecución que no informa un costo no aparezca como gratuita en tus informes de gasto, y cuenta con que esas filas empujen los totales de LiteLLM por encima de tu factura de Comfy. Una ejecución con precio que realmente no costó nada informa x-litellm-response-cost: 0, que LiteLLM registra como cero.
Entrega en cola
Con la entrega en cola, una generación llega a LiteLLM como varias solicitudes, y cada una es su propia fila de gasto:
El
status_url, el response_url y el cancel_url de la respuesta del envío son URL absolutas https://api.comfy.org/..., y LiteLLM no reescribe los cuerpos de las respuestas. Llámalas a través del proxy sustituyendo https://api.comfy.org por el prefijo /comfy de tu proxy, por ejemplo http://localhost:4000/comfy/v2/models/.... Enviada directamente a Comfy, tu clave de LiteLLM se rechaza.
La recogida del resultado lleva x-litellm-response-cost una sola vez, en la primera recogida después de que se registre el precio de la ejecución. En la mayoría de los modelos es la primera recogida. En algunos modelos el precio se registra después de que el resultado esté listo, así que una recogida temprana puede volver sin él, y una recogida posterior de la misma solicitud lo informa.
Router marca el precio como informado cuando responde a esa recogida. Si la respuesta no llega a LiteLLM, por ejemplo porque la solicitud agotó el tiempo de espera o la conexión se cortó, una recogida posterior tampoco lleva x-litellm-response-cost, y LiteLLM registra esa ejecución con el costo de la entrada GET.
La fila del envío sigue registrando tu estimación de cost_per_request, así que con la configuración anterior una ejecución en cola se cuenta dos veces: una por tu estimación y otra por su precio exacto. Si solo usas la entrega en cola, define el cost_per_request de la entrada POST en 0 para que cada ejecución en cola se registre una vez, a su precio exacto. Una ejecución cuyo resultado nunca recoges entonces no aparece en los totales de LiteLLM, aunque se te siga facturando en tu espacio de trabajo. Con ambas entradas en 0, una ejecución que no informa ningún costo se registra como 0. Eso incluye una ejecución cuyo precio se registra después de que su resultado esté listo, si recoges ese resultado una sola vez, antes de que llegue el precio, y los casos anteriores en que la recogida no lo informa. Si tu cliente recoge cada resultado una sola vez, en cuanto está listo, mantén la estimación del POST.
Notas
- LiteLLM registra el gasto, pero no cambia la facturación. Comfy factura a tu espacio de trabajo exactamente igual que si no usaras el proxy.
- Los esquemas completos de solicitud y respuesta de cada modelo están en la referencia de Comfy Router. Los plazos, los reintentos y otros límites están en Capacidades y límites.