curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "mai-image-2.6",
"prompt": "Poster fotorealistis kampus universitas saat matahari terbenam, pencahayaan sinematik",
"size": "16:9",
"resolution": "2K"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "mai-image-2.6",
"prompt": "Poster fotorealistis kampus universitas saat matahari terbenam, pencahayaan sinematik",
"size": "16:9",
"resolution": "2K"
}
)
response.raise_for_status()
print(response.json())
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: "mai-image-2.6",
prompt: "Poster fotorealistis kampus universitas saat matahari terbenam, pencahayaan sinematik",
size: "16:9",
resolution: "2K"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
MAI-Image-2.6
MAI-Image-2.6 Pembuatan Gambar
Teks ke gambar, pengeditan satu gambar, komposisi hingga 5 gambar referensi, dan pencarian web. Tersedia versi berkualitas tinggi dan Flash.
POST
/
v1
/
images
/
generations
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "mai-image-2.6",
"prompt": "Poster fotorealistis kampus universitas saat matahari terbenam, pencahayaan sinematik",
"size": "16:9",
"resolution": "2K"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "mai-image-2.6",
"prompt": "Poster fotorealistis kampus universitas saat matahari terbenam, pencahayaan sinematik",
"size": "16:9",
"resolution": "2K"
}
)
response.raise_for_status()
print(response.json())
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: "mai-image-2.6",
prompt: "Poster fotorealistis kampus universitas saat matahari terbenam, pencahayaan sinematik",
size: "16:9",
resolution: "2K"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Pemilihan model
| ID model | Karakteristik |
|---|---|
mai-image-2.6 | Versi berkualitas tinggi untuk kebutuhan yang mengutamakan kualitas visual |
mai-image-2.6-flash | Versi lebih cepat dan murah dengan kualitas sedikit lebih rendah |
Endpoint ini asinkron. Setelah pengiriman, ambil ID dari
data[0].task_id, lalu gunakan kueri tugas. Lakukan polling setiap 3–5 detik dengan batas waktu tunggu keseluruhan 3 menit. Hentikan saat status menjadi completed atau failed.curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "mai-image-2.6",
"prompt": "Poster fotorealistis kampus universitas saat matahari terbenam, pencahayaan sinematik",
"size": "16:9",
"resolution": "2K"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "mai-image-2.6",
"prompt": "Poster fotorealistis kampus universitas saat matahari terbenam, pencahayaan sinematik",
"size": "16:9",
"resolution": "2K"
}
)
response.raise_for_status()
print(response.json())
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: "mai-image-2.6",
prompt: "Poster fotorealistis kampus universitas saat matahari terbenam, pencahayaan sinematik",
size: "16:9",
resolution: "2K"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Header permintaan
string
wajib
Autentikasi Bearer dengan format
Bearer <token>, dengan <token> sebagai APIMart API Key Anda.Parameter permintaan
string
wajib
ID model:
mai-image-2.6 atau mai-image-2.6-flash.string
wajib
Deskripsi gambar atau instruksi pengeditan. Mendukung bahasa Mandarin dan Inggris, hingga sekitar 32.000 token (bukan karakter).
string
default:"1:1"
Menerima rasio aspek (seperti
16:9), dimensi piksel (seperti 1536x1024), atau auto.- Rasio aspek: rasio bilangan bulat apa pun dari
1:4hingga4:1, bersamaresolution. - Piksel: menerima
lebarxtinggi,lebar*tinggi, ataulebar×tinggi. Dalam mode ini,resolutiontidak menentukan dimensi. auto: model memilih rasio aspek berdasarkan prompt.
string
default:"1K"
Mendukung
1K dan 2K, termasuk huruf kecil. Tingkat lain seperti 4K tidak didukung dan mengembalikan HTTP 400.Menentukan tingkat ukuran pada teks ke gambar dengan rasio aspek. Tidak menghitung dimensi jika piksel persis digunakan. Tidak dapat mengatur dimensi keluaran gambar ke gambar.integer
Lebar piksel persis. Wajib diberikan bersama
height. Pasangan ini mengungguli size dan resolution untuk dimensi teks ke gambar.Lebar dan tinggi masing-masing minimal 768, dengan total maksimal 2.359.296 piksel. Gunakan kelipatan 32; jika tidak, tiap dimensi dibulatkan ke bawah ke kelipatan 32.Parameter ini tidak menentukan dimensi keluaran gambar ke gambar.integer
Tinggi piksel persis, wajib bersama
width dan mengikuti batas di atas. Tidak menentukan dimensi keluaran gambar ke gambar.string[]
Daftar hingga 5 gambar referensi. Hilangkan untuk teks ke gambar; satu gambar untuk pengeditan tunggal, beberapa untuk komposisi.Setiap item mendukung URL gambar HTTP(S) yang dapat diakses publik atau Data URL Base64 seperti
data:image/png;base64,....JPEG dan PNG didukung; WEBP dan GIF otomatis dikonversi ke PNG. URL harus dapat diakses publik atau tugas akan gagal.Dimensi keluaran gambar ke gambar ditentukan model berdasarkan referensi, sekitar 1 juta piksel dengan rasio serupa. size, resolution, width, dan height tidak dapat mengatur dimensi ini.boolean
default:"false"
Atur ke
true agar model memilih rasio berdasarkan prompt, setara dengan size: "auto".boolean
default:"false"
Atur ke
true untuk mencari informasi real-time sebelum pembuatan, berguna untuk orang, tempat, atau peristiwa nyata.integer
default:"1"
Hanya mendukung
1. Kirim tugas terpisah untuk beberapa gambar. Nilai di atas 1 mengembalikan HTTP 400.Dimensi teks ke gambar
| Kebutuhan | Parameter |
|---|---|
| Persegi default | Hilangkan parameter ukuran: 1:1 + 1K, keluaran 1024×1024 |
| Resolusi + rasio aspek | size: "16:9", resolution: "2K" |
| Piksel persis | size: "1536x1024", atau width: 1536, height: 1024 |
| Rasio otomatis | size: "auto" atau auto_aspect_ratio: true |
width / height → size dalam piksel → size sebagai rasio bersama resolution.
Tingkat resolusi dan rasio aspek
| Rasio aspek | 1K | 2K |
|---|---|---|
| 1:1 | 1024×1024 | 1536×1536 |
| 4:3 / 3:4 | 1152×864 / 864×1152 | 1760×1312 / 1312×1760 |
| 3:2 / 2:3 | 1248×832 / 832×1248 | 1856×1248 / 1248×1856 |
| 16:9 / 9:16 | 1344×768 / 768×1344 | 2048×1152 / 1152×2048 |
| 2:1 / 1:2 | 1536×768 / 768×1536 | 2144×1056 / 1056×2144 |
| 21:9 / 9:21 | 1792×768 / 768×1792 | 2336×992 / 992×2336 |
| 4:1 / 1:4 | 3072×768 / 768×3072 | 3072×768 / 768×3072 |
1K. Penagihan memakai jumlah token yang sesuai dengan piksel keluaran aktual.
Batas piksel persis
- Lebar dan tinggi masing-masing minimal 768.
- Lebar × tinggi tidak melebihi 2.359.296 (1536 × 1536).
- Tiap dimensi dibulatkan ke bawah ke kelipatan 32. Misalnya,
1000x1000menghasilkan992x992. Gunakan kelipatan 32 untuk dimensi persis.
1536x1024, 2048x1152, dan 3072x768 didukung. 512x512 ditolak karena sisi terlalu kecil; 2048x2048 melebihi batas total piksel.
Batas berlaku untuk total piksel, bukan maksimal 1536 per sisi. Jadi
2048x1152 dan 3072x768 valid, tetapi tingkat 4K tidak didukung. Pengaturan ini hanya berlaku untuk teks ke gambar.Contoh permintaan
Piksel persis dan pencarian web
{
"model": "mai-image-2.6-flash",
"prompt": "Menara Eiffel pada malam hari dengan kembang api, gaya poster perjalanan",
"width": 2048,
"height": 1152,
"web_grounding": true
}
Pengeditan satu gambar
{
"model": "mai-image-2.6",
"prompt": "Ubah sepeda menjadi biru dan tambahkan seekor anjing kecil di sampingnya",
"image_urls": ["https://example.com/bicycle.png"]
}
Komposisi beberapa gambar
{
"model": "mai-image-2.6-flash",
"prompt": "Gabungkan kedua gambar referensi menjadi foto produk yang bersih dan futuristis",
"image_urls": [
"https://example.com/first.png",
"https://example.com/second.jpg"
]
}
Parameter yang tidak didukung
quality, style, background, output_format, response_format, dan mask_url tidak didukung dan diabaikan jika dikirim. Keluaran selalu PNG. Pengeditan dengan mask tidak didukung.
Respons pengiriman
integer
Kode status respons.
200 menunjukkan keberhasilan.array
Memeriksa hasil tugas
curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01K... \
--header 'Authorization: Bearer <token>'
{
"code": 200,
"data": {
"id": "task_01K...",
"status": "completed",
"progress": 100,
"result": {
"images": [
{
"url": ["https://example.com/generated-image.png"]
}
]
}
}
}
| Status | Tindakan |
|---|---|
pending | Dalam antrean; lanjutkan polling |
processing | Sedang diproses; lanjutkan polling |
completed | Berhasil; ambil tautan dari array data.result.images[0].url |
failed | Gagal; baca data.error.message dan hentikan polling. Dana dikembalikan penuh |
Penagihan
Ditagih berdasarkan token masukan dan keluaran aktual. Lihat harga model untuk harga satuan.- Token keluaran gambar = lebar keluaran aktual × tinggi ÷ 1024. 1024×1024 setara dengan 1024 token, 1536×1536 dengan 2304 token.
- Token masukan per referensi kira-kira lebar × tinggi ÷ 1024. Prompt teks juga dihitung sebagai masukan.
- Biaya dipotong di awal berdasarkan tingkat resolusi, lalu disesuaikan setelah berhasil dengan penggunaan aktual melalui pengembalian dana atau biaya tambahan.
- Tugas gagal otomatis menerima pengembalian dana penuh. Kesalahan parameter yang ditolak saat pengiriman tidak membuat tugas dan tidak dikenai biaya.
Kesalahan umum
| HTTP | Penyebab dan tindakan |
|---|---|
| 400 | resolution tidak didukung, misalnya 4K; gunakan 1K atau 2K |
| 400 | Lebar atau tinggi di bawah 768, atau total melebihi 2.359.296 piksel |
| 400 | Hanya width atau height diberikan; keduanya wajib bersama |
| 400 | Rasio di luar 1:4 hingga 4:1, atau format size tidak dikenali |
| 400 | n di atas 1, atau lebih dari 5 referensi |