From ef0a49971aeadd50401fb2e012379c4cbabc1b26 Mon Sep 17 00:00:00 2001 From: shrey kharbanda Date: Thu, 24 Sep 2026 00:19:45 +0000 Subject: [PATCH] feat(pricing): declare input_cost_per_reference_pixel across catalogs, schema and terraform --- litellm-rust/crates/model-catalog/src/model_info.rs | 2 ++ litellm/model_prices_and_context_window_backup.json | 3 ++- model_prices_and_context_window.json | 3 ++- model_prices_and_context_window.schema.json | 4 ++++ terraform/provider/docs/resources/model.md | 2 ++ terraform/provider/litellm/resource_model.go | 4 ++++ terraform/provider/litellm/resource_model_crud.go | 4 ++++ terraform/provider/litellm/types.go | 1 + ui/litellm-dashboard/src/lib/http/schema.d.ts | 6 ++++++ 9 files changed, 27 insertions(+), 2 deletions(-) diff --git a/litellm-rust/crates/model-catalog/src/model_info.rs b/litellm-rust/crates/model-catalog/src/model_info.rs index 77a8b768e38..bf01db55c27 100644 --- a/litellm-rust/crates/model-catalog/src/model_info.rs +++ b/litellm-rust/crates/model-catalog/src/model_info.rs @@ -345,6 +345,8 @@ pub struct ModelInfo { #[serde(default, skip_serializing_if = "Option::is_none")] pub input_cost_per_pixel: Option, #[serde(default, skip_serializing_if = "Option::is_none")] + pub input_cost_per_reference_pixel: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] pub input_cost_per_query: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub input_cost_per_request: Option, diff --git a/litellm/model_prices_and_context_window_backup.json b/litellm/model_prices_and_context_window_backup.json index ebea1a6044d..ae2978dabbd 100644 --- a/litellm/model_prices_and_context_window_backup.json +++ b/litellm/model_prices_and_context_window_backup.json @@ -10963,7 +10963,8 @@ ] }, "azure_ai/FLUX.2-flex": { - "input_cost_per_pixel": 5e-08, + "input_cost_per_pixel": 4.76837158203125e-08, + "input_cost_per_reference_pixel": 4.76837158203125e-08, "litellm_provider": "azure_ai", "max_input_tokens": 32000, "max_tokens": 32000, diff --git a/model_prices_and_context_window.json b/model_prices_and_context_window.json index ebea1a6044d..ae2978dabbd 100644 --- a/model_prices_and_context_window.json +++ b/model_prices_and_context_window.json @@ -10963,7 +10963,8 @@ ] }, "azure_ai/FLUX.2-flex": { - "input_cost_per_pixel": 5e-08, + "input_cost_per_pixel": 4.76837158203125e-08, + "input_cost_per_reference_pixel": 4.76837158203125e-08, "litellm_provider": "azure_ai", "max_input_tokens": 32000, "max_tokens": 32000, diff --git a/model_prices_and_context_window.schema.json b/model_prices_and_context_window.schema.json index 737a9b7fa60..6b8ce824f69 100644 --- a/model_prices_and_context_window.schema.json +++ b/model_prices_and_context_window.schema.json @@ -314,6 +314,10 @@ "type": "number", "minimum": 0 }, + "input_cost_per_reference_pixel": { + "type": "number", + "minimum": 0 + }, "input_cost_per_query": { "type": "number", "minimum": 0 diff --git a/terraform/provider/docs/resources/model.md b/terraform/provider/docs/resources/model.md index 0409b48b391..1400e294714 100644 --- a/terraform/provider/docs/resources/model.md +++ b/terraform/provider/docs/resources/model.md @@ -157,6 +157,8 @@ The following arguments are supported: * `input_cost_per_pixel` - (Optional) float. Cost applied per input pixel for models that charge by image size. +* `input_cost_per_reference_pixel` - (Optional) float. Cost applied per reference image pixel for image edit models that meter reference inputs. + * `output_cost_per_pixel` - (Optional) float. Cost applied per output pixel for image-generation models. * `input_cost_per_second` - (Optional) float. Cost applied per input second for audio/transcription models. diff --git a/terraform/provider/litellm/resource_model.go b/terraform/provider/litellm/resource_model.go index b0a7304718b..88f4bbe36f3 100644 --- a/terraform/provider/litellm/resource_model.go +++ b/terraform/provider/litellm/resource_model.go @@ -119,6 +119,10 @@ func resourceLiteLLMModel() *schema.Resource { Type: schema.TypeFloat, Optional: true, }, + "input_cost_per_reference_pixel": { + Type: schema.TypeFloat, + Optional: true, + }, "output_cost_per_pixel": { Type: schema.TypeFloat, Optional: true, diff --git a/terraform/provider/litellm/resource_model_crud.go b/terraform/provider/litellm/resource_model_crud.go index fc5d5b09dd5..b8354f38539 100644 --- a/terraform/provider/litellm/resource_model_crud.go +++ b/terraform/provider/litellm/resource_model_crud.go @@ -9,6 +9,7 @@ import ( "time" "github.com/google/uuid" + "github.com/hashicorp/go-cty/cty" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) @@ -124,6 +125,9 @@ func createOrUpdateModel(d *schema.ResourceData, m interface{}, isUpdate bool) e if inputCostPerPixel := d.Get("input_cost_per_pixel").(float64); inputCostPerPixel > 0 { litellmParams["input_cost_per_pixel"] = inputCostPerPixel } + if raw, err := d.GetRawConfigAt(cty.GetAttrPath("input_cost_per_reference_pixel")); err == nil && !raw.IsNull() && raw.Type() == cty.Number { + litellmParams["input_cost_per_reference_pixel"] = d.Get("input_cost_per_reference_pixel").(float64) + } if outputCostPerPixel := d.Get("output_cost_per_pixel").(float64); outputCostPerPixel > 0 { litellmParams["output_cost_per_pixel"] = outputCostPerPixel } diff --git a/terraform/provider/litellm/types.go b/terraform/provider/litellm/types.go index 8bcf7dc4fe3..33797dddf99 100644 --- a/terraform/provider/litellm/types.go +++ b/terraform/provider/litellm/types.go @@ -93,6 +93,7 @@ type LiteLLMParams struct { InputCostPerToken float64 `json:"input_cost_per_token,omitempty"` OutputCostPerToken float64 `json:"output_cost_per_token,omitempty"` InputCostPerPixel float64 `json:"input_cost_per_pixel,omitempty"` + InputCostPerReferencePixel float64 `json:"input_cost_per_reference_pixel,omitempty"` OutputCostPerPixel float64 `json:"output_cost_per_pixel,omitempty"` InputCostPerSecond float64 `json:"input_cost_per_second,omitempty"` OutputCostPerSecond float64 `json:"output_cost_per_second,omitempty"` diff --git a/ui/litellm-dashboard/src/lib/http/schema.d.ts b/ui/litellm-dashboard/src/lib/http/schema.d.ts index bdfd4aec316..b98be2b42eb 100644 --- a/ui/litellm-dashboard/src/lib/http/schema.d.ts +++ b/ui/litellm-dashboard/src/lib/http/schema.d.ts @@ -31409,6 +31409,8 @@ export interface components { input_cost_per_pixel?: number | null; /** Input Cost Per Query */ input_cost_per_query?: number | null; + /** Input Cost Per Reference Pixel */ + input_cost_per_reference_pixel?: number | null; /** Input Cost Per Second */ input_cost_per_second?: number | null; /** Input Cost Per Token */ @@ -33948,6 +33950,8 @@ export interface components { health_status?: string | null; /** Input Cost Per Pixel */ input_cost_per_pixel?: number | null; + /** Input Cost Per Reference Pixel */ + input_cost_per_reference_pixel?: number | null; /** Input Cost Per Token */ input_cost_per_token?: number | null; /** @@ -42304,6 +42308,8 @@ export interface components { input_cost_per_pixel?: number | null; /** Input Cost Per Query */ input_cost_per_query?: number | null; + /** Input Cost Per Reference Pixel */ + input_cost_per_reference_pixel?: number | null; /** Input Cost Per Second */ input_cost_per_second?: number | null; /** Input Cost Per Token */