> ## Documentation Index
> Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Hướng dẫn nhanh GPT Image API: Tạo ảnh với CometAPI

> Tạo ảnh GPT thông qua CometAPI, giải mã `b64_json`, và lưu kết quả bằng curl, Python, hoặc Node.js.

## Những gì bạn sẽ xây dựng

Bạn sẽ gọi `POST /v1/images/generations`, tạo một ảnh bằng model ảnh GPT, giải mã `b64_json` được trả về, và lưu nó thành một tệp ảnh.

## Điều kiện tiên quyết

* Một API key CometAPI được lưu trong `COMETAPI_KEY`
* Python 3.10+ hoặc Node.js 18+ cho các ví dụ lưu tệp
* Môi trường phía máy chủ. Không gọi chức năng tạo ảnh từ mã frontend công khai với secret key.

## API key, base URL, xác thực

Sử dụng endpoint ảnh tương thích OpenAI:

```text theme={null}
https://api.cometapi.com/v1/images/generations
```

Xác thực bằng Bearer token:

```text theme={null}
Authorization: Bearer $COMETAPI_KEY
```

## Ví dụ mã

Sử dụng các tab bên dưới để xem các ví dụ có thể sao chép cho cURL, Python, và Node.js.

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.cometapi.com/v1/images/generations \
    -H "Authorization: Bearer $COMETAPI_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "gpt-image-2",
      "prompt": "A paper boat floating on calm water at sunrise.",
      "quality": "low",
      "size": "1024x1024",
      "output_format": "jpeg"
    }'
  ```

  ```python Python theme={null}
  import base64
  import os
  from openai import OpenAI

  client = OpenAI(
      api_key=os.environ["COMETAPI_KEY"],
      base_url="https://api.cometapi.com/v1",
  )

  image = client.images.generate(
      model="gpt-image-2",
      prompt="A paper boat floating on calm water at sunrise.",
      quality="low",
      size="1024x1024",
      output_format="jpeg",
  )

  image_base64 = image.data[0].b64_json
  with open("cometapi-gpt-image.jpeg", "wb") as file:
      file.write(base64.b64decode(image_base64))
  ```

  ```javascript Node.js theme={null}
  import fs from "node:fs/promises";
  import OpenAI from "openai";

  const client = new OpenAI({
    apiKey: process.env.COMETAPI_KEY,
    baseURL: "https://api.cometapi.com/v1",
  });

  const image = await client.images.generate({
    model: "gpt-image-2",
    prompt: "A paper boat floating on calm water at sunrise.",
    quality: "low",
    size: "1024x1024",
    output_format: "jpeg",
  });

  const imageBase64 = image.data[0].b64_json;
  await fs.writeFile("cometapi-gpt-image.jpeg", Buffer.from(imageBase64, "base64"));
  ```
</CodeGroup>

## Giải thích quy trình

Tính năng tạo ảnh GPT trả về phản hồi hoàn chỉnh trong một request. Các model ảnh GPT trả về dữ liệu ảnh base64 trong `data[0].b64_json`. Hãy giải mã giá trị đó và ghi các byte vào một tệp khớp với `output_format`.

Nếu bạn cần đầu ra URL, hãy kiểm tra xem model đã chọn có hỗ trợ phản hồi URL hay không. Các model ảnh GPT sử dụng đầu ra base64 trong ví dụ tham chiếu được duy trì.

## Các tham số phổ biến

| Parameter       | Use                                                                                  |
| --------------- | ------------------------------------------------------------------------------------ |
| `model`         | model ID của ảnh GPT. Ví dụ tham chiếu sử dụng `gpt-image-2`.                        |
| `prompt`        | Mô tả văn bản của ảnh cần tạo.                                                       |
| `size`          | Kích thước đầu ra được yêu cầu. Các giá trị được hỗ trợ phụ thuộc vào model đã chọn. |
| `quality`       | Thiết lập chất lượng cho các model hỗ trợ tham số này.                               |
| `output_format` | Loại ảnh được mã hóa cho kết quả ảnh GPT, chẳng hạn như `jpeg`, `png`, hoặc `webp`.  |

## Khắc phục sự cố / Câu hỏi thường gặp

<AccordionGroup>
  <Accordion title="Tệp đã lưu không mở được">
    Hãy xác nhận rằng bạn đã giải mã `b64_json` thành các byte base64 và lưu phần mở rộng tệp khớp với `output_format`.
  </Accordion>

  <Accordion title="Model từ chối một tham số">
    Các tham số ảnh khác nhau tùy theo model. Hãy bắt đầu với ví dụ tham chiếu tối giản, sau đó thêm từng trường tùy chọn một.
  </Accordion>

  <Accordion title="Phản hồi không có URL">
    Sử dụng `b64_json` cho các model ảnh GPT. Đầu ra URL là đặc thù theo từng model.
  </Accordion>
</AccordionGroup>

## Các bước tiếp theo

* Đọc [tài liệu tham chiếu API Create image](/api/image/openai/images).
* Tìm model ID của image trong [Models](/vi/overview/models).
* Ước tính chi phí request với [Ước tính chi phí request trước khi gọi một model](/vi/guides/how-to-estimate-cost-before-calling-a-model).
* Xử lý lỗi với [Mã lỗi và chiến lược thử lại](/vi/guides/error-codes-and-retry-strategy).
