Generate gambar
POST /v1/images/generations membuat gambar dari deskripsi teks dan mengembalikannya sebagai base64. Model gambar tampil di GET /v1/models dengan type: "image".
Permintaan
| Field | Wajib | Keterangan |
|---|---|---|
model | ya | ID model bertipe image. |
prompt | ya | Deskripsi gambar, maksimal 4.000 karakter. |
n | tidak | Jumlah gambar, bawaan 1. Batas per model ada di max_images_per_request. |
size | tidak | auto atau LEBARxTINGGI, misalnya 1024x1024. Model berharga token hanya menerima auto, 1024x1024, 1024x1536, dan 1536x1024. |
quality | tidak | Untuk model berharga token: low, medium, high, atau auto. |
response_format | tidak | Hanya b64_json (bawaan). Nilai lain ditolak 400. |
Field lain diabaikan. Body permintaan media maksimal 64 KiB.
Contoh
curl https://api.markas.ai.id/v1/images/generations \
-H "Authorization: Bearer $MARKASAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "IMAGE_MODEL_ID", "prompt": "kucing oranye tidur di sofa", "n": 1}'
import base64, os
from openai import OpenAI
client = OpenAI(base_url="https://api.markas.ai.id/v1", api_key=os.environ["MARKASAI_API_KEY"])
img = client.images.generate(model="IMAGE_MODEL_ID", prompt="kucing oranye tidur di sofa", n=1, response_format="b64_json")
with open("image.png", "wb") as f:
f.write(base64.b64decode(img.data[0].b64_json))
import { writeFile } from "node:fs/promises";
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.markas.ai.id/v1", apiKey: process.env.MARKASAI_API_KEY });
const img = await client.images.generate({
model: "IMAGE_MODEL_ID",
prompt: "kucing oranye tidur di sofa",
n: 1,
response_format: "b64_json",
});
await writeFile("image.png", Buffer.from(img.data[0].b64_json, "base64"));
Respons
{
"created": 1790000000,
"data": [{"b64_json": "/9j/4AAQSkZJRg..."}]
}
Gambar dikembalikan di data[].b64_json, tidak ada URL gambar. revised_prompt ikut bila model mengirimnya. Satu permintaan biasanya selesai dalam hitungan detik sampai puluhan detik.
Penagihan
- Model per gambar: saldo
n × harga per gambarditahan di awal, dan yang ditagih hanya gambar yang benar-benar sampai. - Model berharga token: ditagih dari token masukan dan token keluaran gambar yang dilaporkan model, dengan harga per 1 juta token.
- Permintaan yang gagal tidak ditagih.
- Memutus koneksi di tengah jalan tidak membatalkan pembuatan gambar: gambar tetap dibuat dan ditagih.
Galat yang umum
402 insufficient_balance: saldo kurang dari tahanan permintaan.404 model_not_found: ID salah atau bukan model gambar.400 invalid_request: parameter atau deskripsi ditolak. Fieldparammenunjukkan bidangnya.403 key_spend_limit_exceeded: batas belanja key tercapai, termasuk tahanan permintaan ini.