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

FieldWajibKeterangan
modelyaID model bertipe image.
promptyaDeskripsi gambar, maksimal 4.000 karakter.
ntidakJumlah gambar, bawaan 1. Batas per model ada di max_images_per_request.
sizetidakauto atau LEBARxTINGGI, misalnya 1024x1024. Model berharga token hanya menerima auto, 1024x1024, 1024x1536, dan 1536x1024.
qualitytidakUntuk model berharga token: low, medium, high, atau auto.
response_formattidakHanya 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

200 OK
{
  "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 gambar ditahan 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. Field param menunjukkan bidangnya.
  • 403 key_spend_limit_exceeded: batas belanja key tercapai, termasuk tahanan permintaan ini.