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

# GPT-Image-2.6 Pembuatan Gambar

> Buat dan edit gambar secara asinkron dengan Flare dan Sunburst, termasuk anotasi, GIF animasi, dan keluaran SVG.

Pembuatan gambar, pengeditan, GIF, dan SVG menggunakan `POST /v1/images/generations`. Baca `data[0].task_id` dari respons pengiriman, lalu periksa tugas untuk mendapatkan URL berkas.

```bash cURL theme={null}
curl --request POST \
  --url https://api.apimart.ai/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "model": "gpt-image-2.6-flare",
  "prompt": "A cozy reading nook by a rainy window, warm lamp light",
  "size": "1:1",
  "resolution": "1k",
  "quality": "medium",
  "n": 1
}'
```

```python Python theme={null}
import requests

response = requests.post(
    "https://api.apimart.ai/v1/images/generations",
    headers={"Authorization": "Bearer <token>"},
    json={
        "model": "gpt-image-2.6-flare",
        "prompt": "A cozy reading nook by a rainy window, warm lamp light",
        "size": "1:1",
        "resolution": "1k",
        "quality": "medium",
        "n": 1
    },
)
response.raise_for_status()
print(response.json()["data"][0]["task_id"])
```

```javascript JavaScript theme={null}
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer <token>",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "model": "gpt-image-2.6-flare",
    "prompt": "A cozy reading nook by a rainy window, warm lamp light",
    "size": "1:1",
    "resolution": "1k",
    "quality": "medium",
    "n": 1
  }),
});
if (!response.ok) throw new Error(await response.text());
const result = await response.json();
console.log(result.data[0].task_id);
```

```json 200 theme={null}
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KXXXXXXXXXXXXXXX"
    }
  ]
}
```

## Autentikasi

**Authorization** `string` *required*

Gunakan autentikasi Bearer Token. Dapatkan kunci di [halaman kunci API](https://apimart.ai/keys).

```text theme={null}
Authorization: Bearer YOUR_API_KEY
```

## Memilih model

| Model | Penggunaan |
| - | - |
| `gpt-image-2.6-flare` | Mengutamakan kecepatan untuk iterasi cepat; pilihan bawaan yang direkomendasikan. |
| `gpt-image-2.6-sunburst` | Mengutamakan detail dan konsistensi edit berulang, terutama pada kualitas `medium` / `high`. |

Keduanya memiliki tarif token dan konsumsi yang sama pada pengaturan identik. Pilih berdasarkan kebutuhan kecepatan dan detail.

## Parameter permintaan

**model** `string` *required*

Nama model: `gpt-image-2.6-flare` atau `gpt-image-2.6-sunburst`.

**prompt** `string` *required*

Instruksi pembuatan atau pengeditan, maksimal 32.000 karakter. Jelaskan subjek, komposisi, serta hal yang ingin diubah atau dipertahankan.

**size** `string` (default: auto)

Gambar statis dan SVG mendukung 15 rasio, ukuran piksel seperti `1600x1200`, atau `auto`. Nilai `auto` eksplisit menyerahkan pilihan ke penyedia. Jika dihilangkan saat mengedit, ukuran dipilih dari rasio gambar pertama dan `resolution`. GIF mengikuti aturan terpisah di bawah.

**resolution** `string` (default: 1k)

`1k` / `2k` / `4k`, huruf kecil. Menentukan piksel bersama `size` berupa rasio; diabaikan jika ukuran piksel pasti diberikan.

**quality** `string` (default: auto)

`low` / `medium` / `high` / `xhigh` / `max` / `auto`. Nilai lain mengembalikan HTTP 400 saat pengiriman. Jika parameter dihilangkan atau bernilai `auto`, model memilih tingkat kualitas secara otomatis. Tingkat yang dipilih dapat berubah dan tidak selalu `low`. Tentukan tingkat secara eksplisit jika memerlukan pengaturan tetap.

Jika parameter dihilangkan atau bernilai `auto`, dana dicadangkan berdasarkan tingkat `max`, lalu biaya akhir dihitung sesuai tingkat kualitas yang benar-benar dipilih.

**n** `integer` (default: 1)

Bilangan bulat `1`–`4`; untuk GIF, jumlah animasi. SVG harus `1`. Nilai eksplisit `0`, negatif, atau lebih dari `4` mengembalikan HTTP 400, bukan diganti dengan nilai bawaan.

**output\_format** `string` (default: png)

`png` / `jpeg` / `webp` / `gif` / `svg`. GIF dan SVG hanya mendukung pembuatan dari teks. Nilai lain mengembalikan HTTP 400 saat pengiriman.

**output\_compression** `integer`

Bilangan bulat `0`–`100`, hanya untuk `jpeg` / `webp`. Nilai di luar rentang atau penggunaan dengan `png` / `gif` / `svg` mengembalikan HTTP 400 saat pengiriman.

**background** `string`

`transparent` / `opaque` / `auto`; jika dihilangkan, memakai nilai bawaan penyedia. `transparent` eksplisit hanya boleh dengan `png` / `webp`. SVG memiliki latar transparan secara bawaan; hilangkan parameter ini untuk SVG.

**moderation** `string` (default: low)

Tingkat moderasi konten: `auto` / `low`. Nilai lain mengembalikan HTTP 400 saat pengiriman.

**image\_urls** `string[]`

Maksimal 16 gambar referensi; menyertakannya mengaktifkan mode edit. Gunakan URL gambar HTTP(S) yang dapat diakses publik. Unggah berkas lokal melalui [API unggah gambar](https://docs.apimart.ai/id/api-reference/uploads/images.md), lalu gunakan `url` yang dikembalikan.

**mask\_url** `string`

Masker edit lokal; memerlukan `image_urls`. Gunakan PNG dengan kanal alfa dan ukuran sama dengan gambar pertama; area transparan sepenuhnya menandai bagian yang diedit. Mendukung URL gambar atau PNG Data URL. Tidak dapat digabungkan dengan anotasi; piksel di luar masker tidak dijamin tetap identik.

**complexity** `string`

Intensitas perencanaan: `low` / `medium` / `high`, bawaan penyedia `high`, terpisah dari `quality`. Gunakan `low` untuk perubahan terarah dan `high` untuk teks padat, tata letak atau hubungan objek rumit; dapat memperlambat proses atau menambah perubahan. Tidak ada biaya terpisah; hanya didukung 2.6.

**safety\_identifier** `string`

Identitas pengguna akhir yang stabil dan opsional, maksimal 128 karakter; disarankan hash nama pengguna atau email. Secara bawaan APIMart tidak meneruskannya ke penyedia, kecuali kanal mengizinkan. Boleh dihilangkan.

## Ukuran gambar statis dan SVG

Ukuran piksel pasti harus kelipatan 16 pada kedua sumbu, setiap sisi maksimal 3840, rasio sisi panjang terhadap pendek maksimal 3:1, dan total 655.360–8.294.400 piksel. Resolusi di atas 2560×1440 bersifat eksperimental. Tabel sama dengan GPT-Image-2.5; jangan terapkan batas gambar statis ini langsung pada tiap frame GIF.

| `size` | `1k` | `2k` | `4k` |
| - | - | - | - |
| `1:1` | 1024×1024 | 2048×2048 | 2880×2880 |
| `3:2` | 1536×1024 | 2048×1360 | 3520×2336 |
| `2:3` | 1024×1536 | 1360×2048 | 2336×3520 |
| `4:3` | 1024×768 | 2048×1536 | 3312×2480 |
| `3:4` | 768×1024 | 1536×2048 | 2480×3312 |
| `5:4` | 1280×1024 | 2560×2048 | 3216×2576 |
| `4:5` | 1024×1280 | 2048×2560 | 2576×3216 |
| `16:9` | 1536×864 | 2048×1152 | 3840×2160 |
| `9:16` | 864×1536 | 1152×2048 | 2160×3840 |
| `2:1` | 2048×1024 | 2688×1344 | 3840×1920 |
| `1:2` | 1024×2048 | 1344×2688 | 1920×3840 |
| `21:9` | 2016×864 | 2688×1152 | 3840×1648 |
| `9:21` | 864×2016 | 1152×2688 | 1648×3840 |
| `3:1` | 1536×512 | 3072×1024 | 3840×1280 |
| `1:3` | 512×1536 | 1024×3072 | 1280×3840 |

## Pengeditan dan masker

Permintaan ini mengedit area pada gambar pertama. Hilangkan `mask_url` untuk mengedit seluruh gambar sesuai prompt; hilangkan `size` untuk memilih ukuran dari rasio gambar pertama dan `resolution`. Ganti URL contoh dengan berkas yang dapat diakses.

```json theme={null}
{
  "model": "gpt-image-2.6-sunburst",
  "prompt": "Replace the fully transparent masked area with a gold ribbon. Preserve the product and the rest of the background.",
  "image_urls": [
    "https://example.com/product.png"
  ],
  "mask_url": "https://example.com/product-mask.png",
  "resolution": "2k",
  "quality": "high",
  "complexity": "low"
}
```

## Edit dengan panduan anotasi

Berikan `markup_url` sebagai URL HTTPS atau Base64 Data URL. Alias `markup` menerima string atau objek `{"image_url":"..."}`. `file_id` tidak didukung.

* Sertakan `image_urls`. Anotasi diterapkan pada gambar pertama; gambar lain menjadi referensi.
* Gunakan lapisan PNG transparan terpisah dengan ukuran persis sama dengan gambar pertama. Jangan gabungkan anotasi ke gambar asli.
* Gambar pertama dan lapisan masing-masing maksimal 16.777.216 piksel; berkas lapisan maksimal 50 MB.
* Jangan gabungkan dengan `mask_url`. Lapisan tidak memakai token gambar, tetapi permintaan dapat memakai token teks tambahan.

```json theme={null}
{
  "model": "gpt-image-2.6-flare",
  "prompt": "Recolor the striped vase inside the red circle to solid cobalt blue ceramic. Keep everything else unchanged. Remove the red circle.",
  "image_urls": [
    "https://example.com/kitchen.webp"
  ],
  "markup_url": "https://example.com/vase-circle-overlay.png",
  "quality": "medium"
}
```

## GIF animasi

Tetapkan `output_format: "gif"`. Hanya pembuatan dari teks: jangan sertakan `image_urls`, `mask_url`, `markup_url`, `markup`, atau `output_compression`.

| Parameter | Bawaan | Keterangan |
| - | - | - |
| `frame_count` | `9` | Bilangan bulat **2–16**. Batas APIMart saat ini 16 frame, bukan 64 seperti panduan penyedia. |
| `frame_duration_ms` | `200` | Durasi tiap frame dalam milidetik bulat, minimal 20, dibulatkan ke kelipatan 10 ms. |
| `size` | `auto` | Ukuran piksel **tiap frame**, kedua sisinya kelipatan 16. Jika dihilangkan atau `auto`, saat ini memakai 512×512. Nama rasio seperti `1:1` tidak didukung. |

Penyedia menyusun frame pada satu lembar: 4×2 untuk 2–8 frame, 3×3 untuk 9, 4×3 untuk 10–12, dan 4×4 untuk 13–16. Baris dan kolom dapat ditukar agar mendekati persegi. Seluruh lembar harus memiliki sisi maksimal 3840, total maksimal 8.294.400 piksel, dan rasio maksimal 3:1; jika tidak, pengiriman mengembalikan 400.

> [!WARNING]
>
> `512x512` mendukung semua 2–16 frame; `768x768` maksimal 12. Bahkan 2 frame `1024x1024` melebihi batas sisi lembar. Setiap animasi ditagihkan berdasarkan seluruh lembar; `n > 1` membuat dan menagihkan beberapa animasi.

```json theme={null}
{
  "model": "gpt-image-2.6-sunburst",
  "prompt": "A paper lantern swaying gently in the night breeze, seamless loop",
  "output_format": "gif",
  "frame_count": 9,
  "frame_duration_ms": 200,
  "quality": "low"
}
```

## Keluaran SVG

**svg** `object`

Tetapkan `output_format: "svg"`. Model gambar membuat referensi terlebih dahulu, lalu model teks pada `svg.model` menulis SVG.

**svg**

**model** `string` *required*

Wajib. Pilih model dengan tarif token teks di platform, misalnya `gpt-5.4-mini` atau `gpt-5.6-sol`.

**reasoning** `object`

**reasoning**

**effort** `string`

Opsional: `none` / `minimal` / `low` / `medium` / `high` / `xhigh` / `max`. Nilai yang didukung bergantung pada model teks. Disarankan menghilangkan parameter ini untuk memakai nilai bawaan model.

* Hanya pembuatan dari teks dengan `n` bernilai 1. Jangan berikan gambar referensi, masker, anotasi, atau `output_compression`.
* `quality` dan `complexity` berlaku pada gambar referensi perantara. Hasilnya `.svg` statis tanpa skrip, sumber eksternal, atau bitmap tertanam.
* Penggunaan teks `svg.model` dikenakan biaya selain pembuatan gambar. Akun dengan kontrak harga tetap per gambar belum mendukung SVG; pengiriman mengembalikan 400.

```json theme={null}
{
  "model": "gpt-image-2.6-flare",
  "prompt": "A minimalist bakery logo with a wheat stalk, flat colors",
  "output_format": "svg",
  "svg": {
    "model": "gpt-5.4-mini"
  },
  "size": "1:1",
  "quality": "low",
  "n": 1
}
```

## Memeriksa hasil tugas

Periksa [API status tugas](https://docs.apimart.ai/id/api-reference/tasks/status.md) setiap 2–5 detik hingga `completed` atau `failed`. Jangan kirim ulang permintaan pembuatan saat menunggu.

```bash theme={null}
curl --request GET \
  --url https://api.apimart.ai/v1/tasks/task_01KXXXXXXXXXXXXXXX \
  --header 'Authorization: Bearer <token>'
```

Setelah selesai, baca URL dari `data.result.images[].url[]` dan segera unduh berkas. Contoh hanya menampilkan kolom utama; jika `failed`, periksa `data.error.message`. Gunakan `POST /v1/tasks/batch` untuk memeriksa beberapa tugas.

```json theme={null}
{
  "code": 200,
  "data": {
    "id": "task_01KXXXXXXXXXXXXXXX",
    "status": "completed",
    "progress": 100,
    "result": {
      "images": [
        {
          "url": [
            "https://upload.apimart.ai/f/image/example.png"
          ]
        }
      ]
    }
  }
}
```

### Penggunaan token SVG dan contoh respons

Pada respons pemeriksaan tugas, `data.usage.svg_usage` melaporkan penggunaan model teks yang menulis SVG. Kolom token lain di `data.usage` merupakan penggunaan model gambar yang membuat referensi. Hitung setiap bagian sesuai aturan penagihan model terkait.

| Kolom | Tipe | Keterangan |
| - | - | - |
| `model` | string | Model teks yang benar-benar digunakan untuk menulis SVG. |
| `input_tokens` | integer | Token masukan model teks. |
| `output_tokens` | integer | Token keluaran model teks, termasuk token penalaran. |
| `reasoning_tokens` | integer | Bagian token keluaran yang digunakan untuk penalaran; jangan tambahkan lagi ke `output_tokens`. |

Contoh berikut menampilkan kolom utama respons tugas SVG. Nilai token menggambarkan hubungan antarkolom dan bukan konsumsi tetap.

```json theme={null}
{
  "code": 200,
  "data": {
    "id": "task_01KXXXXXXXXXXXXXXX",
    "status": "completed",
    "progress": 100,
    "result": {
      "images": [
        {
          "url": [
            "https://upload.apimart.ai/f/image/example.svg"
          ]
        }
      ]
    },
    "usage": {
      "input_tokens": 40,
      "output_tokens": 1800,
      "total_tokens": 1840,
      "svg_usage": {
        "model": "gpt-5.4-mini",
        "input_tokens": 1200,
        "output_tokens": 800,
        "reasoning_tokens": 200
      }
    }
  }
}
```

## Kesalahan parameter umum

Kesalahan validasi parameter berikut mengembalikan HTTP 400 secara sinkron saat pengiriman. Tugas tidak dibuat dan tidak ada biaya yang dikenakan. Perbaiki parameter sebelum mengirim ulang.

| Kesalahan | Solusi |
| - | - |
| `quality "ultra" is not supported by gpt-image-2.6-flare` | Gunakan `low` / `medium` / `high` / `xhigh` / `max` / `auto`; nilai lain seperti `ultra` tidak didukung. |
| `` `n` must be an integer from 1 to 4 `` | Tetapkan `n` sebagai bilangan bulat 1–4; `0`, nilai negatif, dan nilai di atas 4 tidak valid. |
| `output_compression must be an integer from 0 to 100` | Tetapkan `output_compression` sebagai bilangan bulat 0–100. |
| `output_compression is only supported with output_format jpeg or webp` | Gunakan kompresi hanya untuk JPEG / WebP; hapus parameter untuk PNG / GIF / SVG. |
| `moderation "xxx" is not supported` | Tetapkan `moderation` ke `low` atau `auto`. |
| `markup requires image_urls` | Sertakan `image_urls` dan sesuaikan lapisan dengan gambar pertama. |
| `markup cannot be combined with mask` | Pilih anotasi atau masker, jangan keduanya. |
| `frame_count must be an integer from 2 to 16` | Tetapkan `frame_count` sebagai bilangan bulat dari 2 sampai 16. |
| `no supported sheet fits N GIF frames at size WxH` | Kurangi ukuran atau jumlah frame; jangan gunakan nama rasio. |
| `output_format=svg requires svg.model` | Sertakan objek `svg` dengan model teks yang didukung. |
| `output_format=svg requires n=1` | Gunakan `n: 1` untuk SVG. |
| `background=transparent requires an alpha-capable output_format` | Transparansi eksplisit memerlukan PNG / WebP; hilangkan parameter untuk SVG. |

## Parameter yang tidak didukung dan penagihan

Jangan kirim `stream`, `partial_images`, `input_fidelity`, `prompt_rewriter`, atau `response_format`. Endpoint ini mengembalikan tugas asinkron dan URL CDN, bukan gambar parsial streaming atau respons gambar Base64. `frame_count` / `frame_duration_ms` hanya untuk GIF; konfigurasi `svg` hanya untuk SVG.

Flare dan Sunburst memakai tarif yang sama. GPT-Image-2.6 mengonsumsi lebih banyak token pada `low` / `medium` dibanding 2.5; jangan memakai estimasi lama tanpa penyesuaian. Tarif terbaru tersedia di [halaman harga APIMart](https://apimart.ai/pricing) atau `/api/pricing`. Halaman ini tidak mencantumkan harga tetap.

Lihat [panduan pembuatan gambar OpenAI](https://developers.openai.com/api/docs/guides/image-generation) untuk fitur penyedia. Untuk APIMart, gunakan endpoint, respons asinkron, dan batas pada halaman ini.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.