> ## 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.

# Quickstart GPT Image API: hasilkan gambar dengan CometAPI

> Hasilkan gambar GPT melalui CometAPI, decode `b64_json`, dan simpan hasilnya dengan curl, Python, atau Node.js.

## Yang akan Anda buat

Anda akan memanggil `POST /v1/images/generations`, menghasilkan satu gambar dengan model gambar GPT, decode `b64_json` yang dikembalikan, dan menyimpannya sebagai file gambar.

## Prasyarat

* API key CometAPI yang disimpan di `COMETAPI_KEY`
* Python 3.10+ atau Node.js 18+ untuk contoh penyimpanan file
* Lingkungan server-side. Jangan panggil image generation dari kode frontend publik dengan secret key.

## API key, base URL, autentikasi

Gunakan endpoint gambar yang kompatibel dengan OpenAI:

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

Lakukan autentikasi dengan token Bearer:

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

## Contoh kode

Gunakan tab di bawah ini untuk contoh yang dapat disalin dalam cURL, Python, dan 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>

## Penjelasan alur

Pembuatan gambar GPT mengembalikan respons yang sudah selesai dalam satu request. Model gambar GPT mengembalikan data gambar base64 di `data[0].b64_json`. Decode nilai tersebut lalu tulis byte-nya ke file yang sesuai dengan `output_format`.

Jika Anda memerlukan output URL, periksa apakah model yang dipilih mendukung respons URL. Model gambar GPT menggunakan output base64 pada contoh referensi yang dipertahankan.

## Parameter umum

| Parameter       | Penggunaan                                                                          |
| --------------- | ----------------------------------------------------------------------------------- |
| `model`         | model ID gambar GPT. Contoh referensi menggunakan `gpt-image-2`.                    |
| `prompt`        | Deskripsi teks dari gambar yang akan dihasilkan.                                    |
| `size`          | Ukuran output yang diminta. Nilai yang didukung bergantung pada model yang dipilih. |
| `quality`       | Pengaturan kualitas untuk model yang mendukungnya.                                  |
| `output_format` | Jenis gambar terenkode untuk hasil gambar GPT, seperti `jpeg`, `png`, atau `webp`.  |

## Troubleshooting / FAQ

<AccordionGroup>
  <Accordion title="File yang disimpan tidak bisa dibuka">
    Pastikan Anda decode `b64_json` sebagai byte base64 dan menyimpan ekstensi file yang sesuai dengan `output_format`.
  </Accordion>

  <Accordion title="Model menolak sebuah parameter">
    Parameter gambar berbeda-beda menurut model. Mulailah dengan contoh referensi minimal, lalu tambahkan satu field opsional setiap kali.
  </Accordion>

  <Accordion title="Respons tidak memiliki URL">
    Gunakan `b64_json` untuk model gambar GPT. Output URL bersifat spesifik per model.
  </Accordion>
</AccordionGroup>

## Langkah berikutnya

* Baca [referensi API Create image](/api/image/openai/images).
* Temukan model ID gambar di [Models](/id/overview/models).
* Perkirakan biaya permintaan dengan [Memperkirakan biaya permintaan sebelum memanggil model](/id/guides/how-to-estimate-cost-before-calling-a-model).
* Tangani kegagalan dengan [Kode error dan strategi retry](/id/guides/error-codes-and-retry-strategy).
