curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-3-image",
"prompt": "Bidikan sinematik ultralebar jalan pesisir berkabut saat fajar, satu mobil antik dengan lampu depan menyala",
"aspect_ratio": "21:9",
"resolution": "2k"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "flux-3-image",
"prompt": "Bidikan sinematik ultralebar jalan pesisir berkabut saat fajar, satu mobil antik dengan lampu depan menyala",
"aspect_ratio": "21:9",
"resolution": "2k"
}
)
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: "flux-3-image",
prompt: "Bidikan sinematik ultralebar jalan pesisir berkabut saat fajar, satu mobil antik dengan lampu depan menyala",
aspect_ratio: "21:9",
resolution: "2k"
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
FLUX 3 Image
FLUX 3 Image Pembuatan Gambar
Pembuatan teks ke gambar, pengeditan satu gambar, dan hingga 10 gambar referensi, dengan beragam rasio aspek serta resolusi hingga 4k.
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": "flux-3-image",
"prompt": "Bidikan sinematik ultralebar jalan pesisir berkabut saat fajar, satu mobil antik dengan lampu depan menyala",
"aspect_ratio": "21:9",
"resolution": "2k"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "flux-3-image",
"prompt": "Bidikan sinematik ultralebar jalan pesisir berkabut saat fajar, satu mobil antik dengan lampu depan menyala",
"aspect_ratio": "21:9",
"resolution": "2k"
}
)
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: "flux-3-image",
prompt: "Bidikan sinematik ultralebar jalan pesisir berkabut saat fajar, satu mobil antik dengan lampu depan menyala",
aspect_ratio: "21:9",
resolution: "2k"
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Endpoint ini bersifat asinkron. Pengiriman yang berhasil mengembalikan
task_id. Gunakan kueri tugas untuk mengambil status dan gambar. Hentikan polling saat status menjadi completed atau failed. Pembuatan pada 4k dapat memerlukan beberapa menit; batas waktu tunggu keseluruhan 10 menit disarankan.curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-3-image",
"prompt": "Bidikan sinematik ultralebar jalan pesisir berkabut saat fajar, satu mobil antik dengan lampu depan menyala",
"aspect_ratio": "21:9",
"resolution": "2k"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "flux-3-image",
"prompt": "Bidikan sinematik ultralebar jalan pesisir berkabut saat fajar, satu mobil antik dengan lampu depan menyala",
"aspect_ratio": "21:9",
"resolution": "2k"
}
)
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: "flux-3-image",
prompt: "Bidikan sinematik ultralebar jalan pesisir berkabut saat fajar, satu mobil antik dengan lampu depan menyala",
aspect_ratio: "21:9",
resolution: "2k"
})
});
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
Harus
flux-3-image.string
wajib
Deskripsi adegan untuk teks ke gambar atau instruksi pengeditan gambar. Prompt negatif tidak didukung; jelaskan gambar yang ingin Anda hasilkan.Gunakan tag dan JSON bbox dalam
prompt untuk menentukan tata letak atau area pengeditan lokal. Lihat contoh di bawah.string[]
Daftar gambar referensi, maksimal 10 gambar. Mendukung URL HTTP(S) yang dapat diakses publik atau masukan Base64.Hilangkan untuk teks ke gambar. Sertakan satu gambar untuk pengeditan tunggal atau beberapa gambar sebagai referensi.
string
default:"auto"
Rasio aspek keluaran. Nilai yang didukung:
21:9, 2:1, 16:9, 3:2, 7:5, 4:3, 5:4, 1:1, 4:5, 3:4, 5:7, 2:3, 9:16, 1:2, 9:21, atau auto.Format rasio seperti 16x9 juga diterima. Dengan auto:- Pengeditan atau beberapa gambar referensi: mengikuti rasio aspek gambar referensi pertama.
- Teks ke gambar: ditentukan oleh prompt; menggunakan
1:1jika rasio tidak ditentukan.
string
Parameter kompatibilitas untuk rasio aspek. Dapat menggantikan
aspect_ratio dan menerima nilai yang sama. Disarankan menggunakan hanya salah satu bidang.Dimensi piksel seperti 1024x1024 tidak didukung dan mengembalikan HTTP 400. Gunakan resolution untuk memilih resolusi keluaran.string
default:"1k"
Tingkat resolusi keluaran. Mendukung
768sq, 1k, 1.5k, 2k, dan 4k, tanpa membedakan huruf besar dan kecil. 768 setara dengan 768sq.Parameter ini menentukan tingkat penagihan. Jika dihilangkan, pembuatan dan penagihan menggunakan 1k. Nilai yang tidak didukung, seperti 3k, mengembalikan HTTP 400.integer
default:"2"
Toleransi keamanan konten, dari 0–4. 0 adalah yang paling ketat.
boolean
default:"true"
Apakah pencarian web atau gambar diizinkan sebelum pembuatan. Atur ke
false untuk menonaktifkan.Harus berupa boolean, bukan string "false" atau "true".integer
default:"1"
Setiap permintaan menghasilkan 1 gambar; hanya
1 yang didukung. Kirim tugas terpisah untuk beberapa gambar. Nilai di atas 1 mengembalikan HTTP 400.Parameter yang tidak didukung
Parameter berikut mengembalikan HTTP 400 jika disertakan; tidak diabaikan begitu saja:width,height- Dimensi piksel pada
size, seperti1024x1024 seed,steps,guidanceoutput_format,negative_prompt,prompt_upsampling,mask_url
resolution untuk resolusi lebih tinggi dan aspect_ratio untuk rasio aspek tertentu.
Mengedit gambar referensi
{
"model": "flux-3-image",
"prompt": "Ubah mobil dalam gambar menjadi merah sambil mempertahankan jalan, latar belakang, dan pencahayaan aslinya",
"image_urls": ["https://example.com/car.jpg"],
"aspect_ratio": "auto",
"resolution": "2k"
}
image_urls, maksimal 10 gambar secara keseluruhan.
Beberapa gambar referensi
Pengeditan, pengeditan lokal, dan tata letak menggunakan endpoint serta model yang sama pada halaman ini, dengan penagihan berdasarkanresolution. Referensi diberi nomor berurutan: ref_image_0 untuk gambar pertama dan ref_image_1 untuk gambar kedua. Anda juga dapat memakai Image 1 / Image 2 dalam prompt.
{
"model": "flux-3-image",
"prompt": "Ubah Image 1 menjadi gaya Image 2.",
"image_urls": [
"https://example.com/subject.jpg",
"https://example.com/style.jpg"
],
"aspect_ratio": "auto"
}
Pengeditan lokal (bounding box)
Awaliprompt dengan instruksi bahasa alami dan gunakan <tag>, seperti <car_1>, untuk merujuk elemen. Tambahkan array JSON dalam string yang sama, dengan satu objek per kotak. bbox bukan parameter permintaan terpisah.
| Bidang | Keterangan |
|---|---|
id | Sesuai dengan tag elemen dalam prompt, tanpa tanda kurung sudut. |
from | Asal elemen, misalnya ref_image_0; gunakan null untuk elemen baru atau yang digambar ulang. |
src_bbox | Kotak dalam gambar sumber; juga harus null jika from bernilai null. |
tgt_bbox | Kotak dalam gambar keluaran; sama dengan src_bbox berarti tetap di posisi semula, berbeda berarti dipindahkan. |
desc | Menjelaskan perubahan pada elemen atau bagian yang harus dipertahankan. |
src_bbox, tgt_bbox, bbox) memakai [atas, kiri, bawah, kanan], yaitu [y1, x1, y2, x2], pada grid ternormalisasi 0–1000: kiri atas [0,0] dan kanan bawah [1000,1000]. Ini bukan koordinat piksel.
Contoh ini mengubah mobil dalam kotak menjadi merah dan menjelaskan latar yang dipertahankan. URL serta posisi kotak hanya ilustrasi; sesuaikan dengan gambar Anda.
{
"model": "flux-3-image",
"prompt": "Dalam <ref_image_0>, ubah mobil <car_1> menjadi merah dan pertahankan latar <background_1>. [{\"id\":\"car_1\",\"from\":null,\"src_bbox\":null,\"tgt_bbox\":[250,300,750,800],\"desc\":\"Mobil merah dengan bentuk dan arah asli tetap dipertahankan.\"},{\"id\":\"background_1\",\"from\":\"ref_image_0\",\"src_bbox\":[0,0,1000,1000],\"tgt_bbox\":[0,0,1000,1000],\"desc\":\"Pertahankan jalan, latar belakang, dan pencahayaan asli.\"}]",
"image_urls": [
"https://example.com/car.jpg"
],
"aspect_ratio": "auto",
"resolution": "2k"
}
Memindahkan elemen
Letakkan objek berikut dalam array bbox di akhir prompt.from menunjukkan gambar sumber, src_bbox posisi asli, dan tgt_bbox posisi baru. Gunakan juga tag <knight_1> yang sesuai dalam instruksi bahasa alami.
{
"id": "knight_1",
"from": "ref_image_0",
"src_bbox": [
500,
150,
850,
350
],
"tgt_bbox": [
194,
55,
544,
255
],
"desc": "Figur ksatria amigurumi kecil berwarna abu-abu."
}
Tata letak teks ke gambar
Tata letak juga dapat digunakan tanpa gambar referensi. Setiap kotak memakaiid, bbox, dan desc. Tentukan aspect_ratio secara eksplisit karena grid koordinat meregang mengikuti rasio aspek.
{
"model": "flux-3-image",
"aspect_ratio": "1:1",
"prompt": "Ilustrasi minimalis siluet hitam orang berlari <silhouette_1> di atas latar hijau kekuningan polos <background_1>. [{\"id\":\"background_1\",\"bbox\":[0,0,1000,1000],\"desc\":\"Latar hijau kekuningan neon dengan tekstur kertas halus.\"},{\"id\":\"silhouette_1\",\"bbox\":[150,150,850,850],\"desc\":\"Siluet hitam orang berlari dengan tekstur titik-titik.\"}]"
}
Catatan penggunaan
-
JSON bbox adalah bagian dari string
prompt. Saat menulis JSON permintaan secara manual, escape tanda kutip ganda di dalamnya menjadi\". SDK atau metode serialisasi JSON dapat melakukannya secara otomatis. -
Daftarkan juga area yang harus tetap sama dan jelaskan apa yang harus dipertahankan dalam
desc. -
Tag elemen dalam prompt harus sesuai satu per satu dengan nilai
idJSON. Pengenal referensi seperti<ref_image_0>merujuk ke gambar masukan. -
Model ini tidak memiliki parameter
maskdan tidak mendukungmask_url; menyertakanmask_urlmengembalikan HTTP 400. Pengeditan bbox tidak menggunakan parameter unggahan mask.
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": {
"status": "completed",
"result": {
"images": [
{
"url": ["https://example.com/generated-image.jpg"]
}
]
}
}
}
data.result.images[0].url. Jika status tugas adalah failed, periksa pesan kesalahan yang dikembalikan dan jangan terus menunggu gambar.
Resolusi dan penagihan
Ditagih per gambar. Harga satuan hanya ditentukan olehresolution, bukan rasio aspek atau jumlah gambar referensi. Gambar referensi tidak dikenai biaya tambahan.
| Tingkat resolusi | Perkiraan ukuran keluaran |
|---|---|
768sq | Sekitar 768×768 |
1k (default) | Sekitar 1MP |
1.5k | Sekitar 2MP |
2k | Sekitar 4MP |
4k | Sekitar 16MP |
Kesalahan parameter umum
| Permintaan | Hasil dan tindakan |
|---|---|
resolution: "3k" | HTTP 400; gunakan salah satu dari 5 tingkat yang didukung |
size: "1024x1024" | HTTP 400; gunakan rasio aspek dan pilih resolusi melalui resolution |
n: 2 | HTTP 400; hanya 1 gambar yang dihasilkan per permintaan |
| 11 gambar referensi | HTTP 400; berikan maksimal 10 |
grounding: "false" | HTTP 400; gunakan boolean false |