# OpenAI

Invoke supports OpenAI’s image generation models — the GPT Image family and DALL·E 3 — through the OpenAI API.

## Getting an API Key

1. Open the [OpenAI API Platform](https://platform.openai.com/api-keys) and sign in.
2. Create a new secret API key.
3. Make sure your account has billing set up — image endpoints are paid per request.

## Configuration

Add your key to `api_keys.yaml` in your Invoke root directory:

```
external_openai_api_key: "sk-..."

# Optional — use this to point at a compatible proxy or Azure OpenAI deployment

external_openai_base_url: "https://api.openai.com"
```

Restart Invoke for the change to take effect.

## Available Models

| Model                  | Modes           | Aspect Ratios        | Batch      | Notes                                                  |
|------------------------|-----------------|----------------------|------------|--------------------------------------------------------|
| **GPT Image 1.5**     | txt2img, img2img| 1:1, 3:2, 2:3       | up to 10   | Fastest and cheapest GPT Image model.                |
| **GPT Image 1**       | txt2img, img2img| 1:1, 3:2, 2:3       | up to 10   | Highest quality of the GPT Image family.              |
| **GPT Image 1 Mini**  | txt2img, img2img| 1:1, 3:2, 2:3       | up to 10   | ~80% cheaper than GPT Image 1.                        |
| **DALL·E 3**          | txt2img only    | 1:1, 7:4, 4:7       | 1          | No reference-image / edit support.                     |

Inpainting (mask-based editing) is not currently supported for any OpenAI model in Invoke. img2img on the GPT Image family routes through the `/v1/images/edits` endpoint without a mask.

## Provider-Specific Options

For **GPT Image** models, Invoke surfaces two provider-specific options in the parameters panel:

- **Quality** — `low`, `medium`, `high`, or `auto`. Higher quality costs more and takes longer.
- **Background** — `auto`, `transparent`, or `opaque`. Use `transparent` for PNG output with an alpha channel.

DALL·E 2 and DALL·E 3 do not expose these options.

## How Requests Are Routed

- Pure text-to-image requests hit `/v1/images/generations`.
- Any request with an init image or reference images is sent to `/v1/images/edits` instead. This is done transparently — you don’t need to pick an endpoint.

## Tips

1. Batching on GPT Image tops out at 10 per request. Larger batches are split into multiple API calls.
2. Costs can climb quickly with high-quality GPT Image generations. Start with GPT Image 1 Mini when iterating on prompts.
3. Rate limits from OpenAI surface as failed invocations — retry after a short wait.
