Skip to content

[Feat] Add gpt-image-1 cost tracking #10241

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Apr 23, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions docs/my-website/docs/image_generation.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ print(f"response: {response}")

```yaml
model_list:
- model_name: dall-e-2 ### RECEIVED MODEL NAME ###
- model_name: gpt-image-1 ### RECEIVED MODEL NAME ###
litellm_params: # all params accepted by litellm.image_generation()
model: azure/dall-e-2 ### MODEL NAME sent to `litellm.image_generation()` ###
model: azure/gpt-image-1 ### MODEL NAME sent to `litellm.image_generation()` ###
api_base: https://my-endpoint-europe-berri-992.openai.azure.com/
api_key: "os.environ/AZURE_API_KEY_EU" # does os.getenv("AZURE_API_KEY_EU")
rpm: 6 # [OPTIONAL] Rate limit for this deployment: in requests per minute (rpm)
Expand All @@ -47,7 +47,7 @@ curl -X POST 'http://0.0.0.0:4000/v1/images/generations' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-1234' \
-D '{
"model": "dall-e-2",
"model": "gpt-image-1",
"prompt": "A cute baby sea otter",
"n": 1,
"size": "1024x1024"
Expand Down Expand Up @@ -104,15 +104,15 @@ Any non-openai params, will be treated as provider-specific params, and sent in
litellm_logging_obj=None,
custom_llm_provider=None,

- `model`: *string (optional)* The model to use for image generation. Defaults to openai/dall-e-2
- `model`: *string (optional)* The model to use for image generation. Defaults to openai/gpt-image-1

- `n`: *int (optional)* The number of images to generate. Must be between 1 and 10. For dall-e-3, only n=1 is supported.

- `quality`: *string (optional)* The quality of the image that will be generated. hd creates images with finer details and greater consistency across the image. This param is only supported for dall-e-3.

- `response_format`: *string (optional)* The format in which the generated images are returned. Must be one of url or b64_json.

- `size`: *string (optional)* The size of the generated images. Must be one of 256x256, 512x512, or 1024x1024 for dall-e-2. Must be one of 1024x1024, 1792x1024, or 1024x1792 for dall-e-3 models.
- `size`: *string (optional)* The size of the generated images. Must be one of 256x256, 512x512, or 1024x1024 for gpt-image-1. Must be one of 1024x1024, 1792x1024, or 1024x1792 for dall-e-3 models.

- `timeout`: *integer* - The maximum time, in seconds, to wait for the API to respond. Defaults to 600 seconds (10 minutes).

Expand Down Expand Up @@ -148,13 +148,14 @@ Any non-openai params, will be treated as provider-specific params, and sent in
from litellm import image_generation
import os
os.environ['OPENAI_API_KEY'] = ""
response = image_generation(model='dall-e-2', prompt="cute baby otter")
response = image_generation(model='gpt-image-1', prompt="cute baby otter")
```

| Model Name | Function Call | Required OS Variables |
|----------------------|---------------------------------------------|--------------------------------------|
| dall-e-2 | `image_generation(model='dall-e-2', prompt="cute baby otter")` | `os.environ['OPENAI_API_KEY']` |
| gpt-image-1 | `image_generation(model='gpt-image-1', prompt="cute baby otter")` | `os.environ['OPENAI_API_KEY']` |
| dall-e-3 | `image_generation(model='dall-e-3', prompt="cute baby otter")` | `os.environ['OPENAI_API_KEY']` |
| dall-e-2 | `image_generation(model='dall-e-2', prompt="cute baby otter")` | `os.environ['OPENAI_API_KEY']` |

## Azure OpenAI Image Generation Models

Expand Down Expand Up @@ -182,8 +183,9 @@ print(response)

| Model Name | Function Call |
|----------------------|---------------------------------------------|
| dall-e-2 | `image_generation(model="azure/<your deployment name>", prompt="cute baby otter")` |
| gpt-image-1 | `image_generation(model="azure/<your deployment name>", prompt="cute baby otter")` |
| dall-e-3 | `image_generation(model="azure/<your deployment name>", prompt="cute baby otter")` |
| dall-e-2 | `image_generation(model="azure/<your deployment name>", prompt="cute baby otter")` |


## OpenAI Compatible Image Generation Models
Expand Down
70 changes: 70 additions & 0 deletions litellm/model_prices_and_context_window_backup.json
Original file line number Diff line number Diff line change
Expand Up @@ -1437,6 +1437,76 @@
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai"
},
"gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 4.0054321e-8,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"low/1024-x-1024/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 1.0490417e-8,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"medium/1024-x-1024/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 4.0054321e-8,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"high/1024-x-1024/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 1.59263611e-7,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"low/1024-x-1536/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 1.0172526e-8,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"medium/1024-x-1536/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 4.0054321e-8,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"high/1024-x-1536/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 1.58945719e-7,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"low/1536-x-1024/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 1.0172526e-8,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"medium/1536-x-1024/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 4.0054321e-8,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"high/1536-x-1024/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 1.58945719e-7,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"gpt-4o-transcribe": {
"mode": "audio_transcription",
"input_cost_per_token": 0.0000025,
Expand Down
70 changes: 70 additions & 0 deletions model_prices_and_context_window.json
Original file line number Diff line number Diff line change
Expand Up @@ -1437,6 +1437,76 @@
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai"
},
"gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 4.0054321e-8,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"low/1024-x-1024/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 1.0490417e-8,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"medium/1024-x-1024/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 4.0054321e-8,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"high/1024-x-1024/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 1.59263611e-7,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"low/1024-x-1536/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 1.0172526e-8,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"medium/1024-x-1536/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 4.0054321e-8,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"high/1024-x-1536/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 1.58945719e-7,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"low/1536-x-1024/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 1.0172526e-8,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"medium/1536-x-1024/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 4.0054321e-8,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"high/1536-x-1024/gpt-image-1": {
"mode": "image_generation",
"input_cost_per_pixel": 1.58945719e-7,
"output_cost_per_pixel": 0.0,
"litellm_provider": "openai",
"supported_endpoints": ["/v1/images/generations"]
},
"gpt-4o-transcribe": {
"mode": "audio_transcription",
"input_cost_per_token": 0.0000025,
Expand Down
Loading