> For the complete documentation index, see [llms.txt](https://docs.console.zenlayer.com/api-reference/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.console.zenlayer.com/api-reference/cn/compute/aig/image-generation/openai-image-generation.md).

# OpenAI

## 1. 概述

业界第一大语言模型。根据文字提示生成图片。

**模型列表：**

* `gpt-image-2`

## 2. 请求说明

* **请求方法**:`POST`
* **请求地址**:

  > `https://gateway.theturbo.ai/v1/images/generations`

***

## 3. 请求参数

### 3.1 Header 参数

| 参数名称            | 类型     | 必填 | 说明                                         | 示例值                    |
| --------------- | ------ | -- | ------------------------------------------ | ---------------------- |
| `Content-Type`  | string | 是  | 设置请求头类型，必须为 `application/json`             | `application/json`     |
| `Accept`        | string | 是  | 设置响应类型，建议统一为 `application/json`            | `application/json`     |
| `Authorization` | string | 是  | 身份验证所需的 API\_KEY，格式 `Bearer $YOUR_API_KEY` | `Bearer $YOUR_API_KEY` |

***

### 3.2 Body 参数 (application/json)

| 参数名称       | 类型     | 必填 | 说明                                                                                                                        | 示例                      |
| ---------- | ------ | -- | ------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| **model**  | string | 是  | 要使用的模型 ID。详见[概述](#1-概述)列出的可用版本，如 `gpt-image-2`。                                                                           | `gpt-image-2`           |
| **prompt** | string | 是  | 一段描述所需图像的文字`gpt-image-2`描述最大长度为 32000 字符。                                                                                 | `A cute baby sea otter` |
| n          | number | 否  | 生成图像的数量，必须在 1 到 10 之间。`gpt-image-2`仅支持 n=1。                                                                               | `1`                     |
| size       | string | 否  | 生成图像的尺寸。`gpt-image-2`支持任意分辨率，以`WIDTHxHEIGHT`字符串形式指定，`WIDTH`和`HEIGHT`都必须能被 16 整除，且请求的宽高比必须介于`1:3`和`3:1`之间，最大支持`3840x2160`。 | `1024x1024`             |
| quality    | string | 否  | 生成图像的质量选项。`gpt-image-2`支持`high`、`medium`、`low`。                                                                           | `high`                  |

***

## 4. 请求示例

{% tabs %}
{% tab title="HTTP" %}

```http
POST /v1/images/generations
Content-Type: application/json
Accept: application/json
Authorization: Bearer $YOUR_API_KEY

{
	"model": "gpt-image-2",
	"prompt": "A cute baby sea otter",
	"n": 1,
	"size": "1024x1024"
}
```

{% endtab %}

{% tab title="Shell" %}

```sh
curl https://gateway.theturbo.ai/v1/images/generations \
	-H "Content-Type: application/json" \
	-H "Accept: application/json" \
	-H "Authorization: Bearer $YOUR_API_KEY" \
	-d "{
	\"model\": \"gpt-image-2\",
	\"prompt\": \"A cute baby sea otter\",
	\"n\": 1,
	\"size\": \"1024x1024\"
}"
```

{% endtab %}

{% tab title="Go" %}

```go
package main

import (
	"context"
	"encoding/base64"
	"fmt"
	"os"

	"github.com/openai/openai-go"
	"github.com/openai/openai-go/option"
)

func main() {

	apiKey := "sk-123456789012345678901234567890123456789012345678"
	exampleFilePath := "example.png"

	client := openai.NewClient(
		option.WithAPIKey(apiKey),
		option.WithBaseURL("https://gateway.theturbo.ai/v1"),
	)

	resp, err := client.Images.Generate(
		context.Background(),
		openai.ImageGenerateParams{
			Model:          "gpt-image-2",
			Prompt:         "A cute baby sea otter",
			Size:           "1024x1024",
		},
	)

	if err != nil {
		fmt.Println("error:", err)
		return
	}

	if len(resp.Data) == 0 || resp.Data[0].B64JSON == "" {
		fmt.Println("error: empty b64_json")
		return
	}

	imageData, err := base64.StdEncoding.DecodeString(resp.Data[0].B64JSON)
	if err != nil {
		fmt.Println("error:", err)
		return
	}

	if err := os.WriteFile(exampleFilePath, imageData, 0644); err != nil {
		fmt.Println("error:", err)
		return
	}

	fmt.Println("success to write to file", exampleFilePath)
}

```

{% endtab %}

{% tab title="Python" %}

```python
#!/usr/bin/env python3

import base64
from openai import OpenAI

def main():
    api_key = "sk-123456789012345678901234567890123456789012345678"
    example_file_path = "example.png"

    client = OpenAI(
        api_key=api_key,
        base_url="https://gateway.theturbo.ai/v1"
    )

    response = client.images.generate(
        model="gpt-image-2",
        prompt="A cute baby sea otter",
        size="1024x1024",
    )

    if not response.data or not response.data[0].b64_json:
        print("error: empty b64_json")
        return

    image_data = base64.b64decode(response.data[0].b64_json)

    with open(example_file_path, "wb") as f:
        f.write(image_data)

    print("success to write to file", example_file_path)

if __name__ == "__main__":
    main()
```

{% endtab %}
{% endtabs %}

## 5. 响应示例

{% tabs %}
{% tab title="b64\_json" %}

```json
{
	"created": 1589478378,
	"data": [{
			"b64_json": "..."
		},
		{
			"b64_json": "..."
		}
	],
	"usage": {
		"input_tokens": 0,
		"input_tokens_details": {
			"image_tokens": 0,
			"text_tokens": 0
		},
		"output_tokens": 0,
		"total_tokens": 0,
		"output_tokens_details": {
			"image_tokens": 0,
			"text_tokens": 0
		}
	}
}
```

{% endtab %}
{% endtabs %}
