Pilih Auto, TokenLab Verified, atau Official untuk setiap permintaan, dengan harga yang ditampilkan di awal.Lihat yang baru

API Pembuatan Gambar AI Terbaik pada 2026: Sebuah Kerangka Pemilihan

·19 September 2026·9 menit baca·Diperbarui 26 September 2026·2010 tampilan
#pembuatan gambar#API gambar AI#model#multimodal
API Pembuatan Gambar AI Terbaik pada 2026: Sebuah Kerangka Pemilihan

Harga utama per gambar adalah filter pertama yang buruk. Dua model dengan tarif nominal yang sama dapat berbeda dalam hal apakah keduanya menerima gambar referensi, apakah keduanya mendukung pengeditan dengan mask, bagaimana ukuran output dipilih, dan apakah biayanya dihitung per permintaan atau per token. Saring kandidat berdasarkan kapabilitas terlebih dahulu, lalu bandingkan biaya per output yang diterima menggunakan prompt Anda sendiri.

Artikel ini merupakan kerangka pemilihan untuk API pembuatan gambar. Artikel ini mencakup pembuatan gambar, bukan video. Jika sebuah pipeline membutuhkan keduanya, mekanisme asinkron dan penagihan yang sama tetap berlaku, tetapi video berada di luar cakupan bahasan ini.

Langkah 1: Sesuaikan operasi yang didukung

Babak eliminasi pertama bersifat operasional. Endpoint yang menghasilkan gambar dari teks saja tidak dapat melakukan pengeditan dengan mask, dan model yang dibangun untuk inpainting bukanlah alat serbaguna untuk teks-ke-gambar secara umum.

Di TokenLab, pembuatan dan pengeditan biasanya merupakan endpoint yang berbeda:

Kebutuhan Anda Endpoint Catatan
Teks-ke-gambar POST /v1/images/generations Permintaan hanya berawal dari prompt
Gambar-ke-gambar / pembuatan berbasis referensi POST /v1/images/generations Model yang menerima operation: "image-to-image" ditambah URL referensi
Pengeditan dengan mask atau multipart POST /v1/images/edits Model yang mendokumentasikan alur pengeditan
Variasi dari gambar yang sudah ada POST /v1/images/variations Untuk integrasi yang sudah menggunakan format variasi
Status tugas GET /v1/tasks/{id} Ketika respons pembuatan mengembalikan task_id, status: "pending", atau poll_url

Lihat panduan pembuatan gambar untuk tabel keputusan serta referensi Create Image dan Edit Image untuk parameter permintaan.

Satu aturan perutean menyebabkan jumlah kegagalan yang tidak proporsional: permintaan gambar referensi Nano Banana (nano-banana-2, nano-banana-pro) ditujukan ke /v1/images/generations dengan operation: "image-to-image" dan image_urls, bukan ke /v1/images/edits. Sebaliknya, pengeditan gpt-image-2 berada di /v1/images/edits, di mana model ini menerima unggahan multipart image, JSON image_url / image_urls, dan referensi images[] hingga 16 gambar sumber.

Pengelompokan yang berguna dari katalog TokenLab saat ini:

  • Pembuatan dan pengeditan: flux-2-klein-4b, flux-2-klein-9b, flux-2-pro, flux-2-flex, flux-2-max, flux-kontext-pro, flux-kontext-max, gemini-3-pro-image, gemini-3.1-flash-image, nano-banana-2, nano-banana-2-lite, nano-banana-pro, gpt-image-2, gpt-image-2.5-flare, gpt-image-2.5-sunburst, grok-imagine-image, grok-imagine-image-quality, grok-imagine-image-2.0, qwen-image-2.0, qwen-image-2.0-pro, qwen-image-3.0, seedream-4.0, seedream-4.5, seedream-5.0, seedream-5.0-lite, seedream-5.0-pro, vidu-image-lite, vidu-image-pro.
  • Hanya teks-ke-gambar: flux-1-dev, flux-pro-1.1, flux-pro-1.1-ultra, sd3.5-medium, sd3.5-large, sd3.5-large-turbo, sd3.5-flash, stable-image-core, stable-image-ultra, z-image, z-image-turbo, kling-image, kling-omni-image, hy-image-lite.
  • Alat pengeditan khusus: stability-inpaint, stability-control-sketch, stability-control-structure, stability-style-guide, stability-upscale-fast, stability-upscale-conservative, image-upscaler, image-background-remover, flux-pro-1.0-fill, qwen-image-edit.

Verifikasi operasi per model alih-alih per famili. GET /v1/models?recommended_for=image mengembalikan rangkaian model yang direkomendasikan saat ini, dan referensi Get a Model menunjukkan bidang supported_operations yang memberi tahu Anda apa yang diterima oleh ID tertentu.

Langkah 2: Periksa cara model menerima gambar referensi

Penanganan gambar referensi sering menjadi penyebab kegagalan integrasi. Nama bidang tidak dapat saling dipertukarkan:

  • image_url — gambar referensi tunggal.
  • image_urls — satu atau beberapa referensi dalam JSON.
  • reference_image_urls — referensi tambahan untuk model yang memisahkan input utama dari referensi.
  • image — unggahan file multipart, untuk gambar sumber privat atau yang dilindungi header.
  • images[] dengan image_url atau file_id — format alur pengeditan; tidak diterima pada /v1/images/generations.

Batasan yang perlu diperhatikan saat merancang, bersumber dari referensi API:

  • Referensi jarak jauh harus berupa URL http/https publik, tanpa kredensial atau fragmen tertanam, dan tidak boleh mengarah ke localhost, privat, atau rentang IP yang dicadangkan. Setiap pengalihan (redirect) diperiksa ulang.
  • Gambar yang diambil melalui URL: 50 MiB per gambar, total agregat 200 MiB per permintaan (termasuk mask), batas waktu pengambilan 30 detik, hingga 3 pengalihan. Payload yang diambil harus berupa PNG, JPEG, atau WebP yang valid.
  • Batas jumlah gambar sumber berbeda-beda: gpt-image-2 menerima hingga 16; batas terdokumentasi 3 gambar input berlaku khusus untuk grok-imagine-image dan grok-imagine-image-quality (yang gagal dengan 400 too_many_images di atas 3) dan tidak didokumentasikan untuk grok-imagine-image-2.0.
  • Sebuah mask harus berupa PNG berukuran kurang dari 50 MiB dengan dimensi yang sama seperti gambar sumber.

Jika gambar sumber Anda bersifat privat, rencanakan penggunaan unggahan multipart atau referensi /v1/files alih-alih meneruskan signed URL yang memiliki masa kedaluwarsa. Signed URL yang kedaluwarsa sebelum pemrosesan dimulai adalah input yang ditolak, bukan kegagalan pembuatan.

Langkah 3: Bandingkan kontrol output, bukan hanya nama model

Dua model dalam tingkatan yang sama dapat menyediakan kontrol ukuran dan kualitas yang sama sekali berbeda. Pastikan kontrak pemilih sebelum Anda membangun UI di sekitarnya.

Kontrol Hal yang perlu diperiksa
size Famili bergaya OpenAI menerima auto atau WIDTHxHEIGHT. Untuk gpt-image-2, dimensi harus kelipatan 16, sisi terpanjang maksimal 3840px, rasio sisi panjang/pendek maksimal 3:1, dan total piksel antara 655.360 dan 8.294.400
aspect_ratio Famili gambar Google dan Grok Imagine menggunakan 1:1, 16:9, 9:16, 3:2, 2:3, dan nilai serupa
resolution gemini-3.1-flash-image, gemini-3-pro-image, nano-banana-2, dan nano-banana-pro mendukung 1k, 2k, 4k, sedangkan nano-banana-2-lite hanya mendukung 1k. Grok Imagine mendukung 1k dan 2k
quality Model GPT Image menggunakan auto, low, medium, high. Model lain mungkin menggunakan nilai yang berbeda
n Jumlah gambar per permintaan, bergantung pada model
response_format url atau b64_json. Tugas asinkron mengembalikan URL terlepas dari format yang diminta
background, output_format, output_compression Didokumentasikan untuk gpt-image-2; transparent tidak didukung
async Didukung untuk gpt-image-2 dan model gambar resmi FLUX/BFL

Mengirimkan bidang yang tidak terdokumentasi bukannya tanpa risiko. input_fidelity, misalnya, bukan bagian dari bidang yang saat ini didukung untuk gpt-image-2 dan mengembalikan 400 unsupported_parameter. Bidang yang tidak didukung pada model lain juga akan gagal serupa. Daftar bidang selengkapnya ada di referensi Create Image.

Langkah 4: Identifikasi unit penagihan sebelum membandingkan apa pun

Perbandingan biaya akan keliru jika model berbasis per-token dibandingkan dengan model berbasis per-gambar seolah-olah memiliki unit yang sama.

  • gpt-image-2 dihargai berdasarkan token. TokenLab mengikuti perincian penggunaan dari pembuatnya untuk input teks, input gambar, input cache yang dilaporkan, dan token output gambar; model ini tidak ditagih sebagai model tetap per-gambar.
  • Sebagian besar model gambar lainnya dihargai per permintaan, per gambar, atau per unit lain yang tertera di halaman model.

Konsekuensi praktisnya: untuk gpt-image-2, prompt yang sama pada pengaturan nominal yang sama dapat menghasilkan biaya berbeda tergantung pada resolusi, kualitas, dan prompt itu sendiri, karena volume token output berubah. Lakukan pengukuran sebelum Anda menetapkan aturan perutean.

Periksa unit penagihan dan harga saat ini pada waktu permintaan alih-alih melakukan hard-code pada tabel:

  • Penagihan dan harga menjelaskan cara kerja pembebanan biaya, estimasi, dan reservasi asinkron.
  • Get a Model mengembalikan tokenlab.pricing dan tokenlab.pricing_unit untuk model tunggal.
  • List Models mengembalikan katalog beserta tokenlab.pricing, tokenlab.capabilities, dan tokenlab.deliveryAvailability.
  • Halaman Models menampilkan informasi yang sama untuk dijelajahi.

Tanda hubung pada kolom harga TokenLab berarti tidak ada penawaran TokenLab Verified yang tersedia saat ini untuk model tersebut, bukan berarti model tersebut gratis. Model dengan pasokan Official masih dapat diakses melalui opsi pengiriman Official atau Auto.

Langkah 5: Tentukan alur sinkron versus berbasis tugas

Permintaan gambar beresolusi tinggi dapat memakan waktu hampir satu menit atau lebih lama. Atur batas waktu (timeout) klien HTTP Anda ke setidaknya 120 detik untuk panggilan sinkron, atau gunakan alur tugas.

  • Kirim async: true dengan gpt-image-2 atau model gambar resmi FLUX/BFL untuk mendapatkan task_id dan poll_url, bukan gambar yang sudah selesai.
  • Jangan melakukan hard-code bahwa suatu model selalu sinkron atau selalu asinkron. Periksa respons pembuatan: jika berisi status: "pending", task_id, atau poll_url, ikuti poll_url yang dikembalikan.
  • Status yang tersedia adalah pending, processing, completed, dan failed. Pembacaan status yang berhasil akan mengembalikan HTTP 200 meskipun tugas tersebut gagal; gunakan bidang status, bukan kode status HTTP.
  • Hasil gambar asinkron dikembalikan sebagai URL. Jika Anda memerlukan b64_json mentah, gunakan permintaan sinkron.
  • Lakukan polling setiap beberapa detik dan berhenti pada status akhir. URL hasil HTTP(S) gambar yang dibuat dapat disimpan sebagai salinan media selama 30 hari; periksa media_retention.items untuk melihat status setiap item dan expires_at.

Detail selengkapnya ada di panduan pekerjaan asinkron dan polling dan referensi Get Image Status.

Upaya coba lagi (retry) merupakan risiko penagihan, bukan sekadar risiko latensi. Permintaan pembuatan yang dicoba lagi setelah batas waktu berakhir dapat menghasilkan tugas kedua dan tagihan kedua. Simpan request_id, task_id, dan billing_transaction_id apa pun, serta periksa apakah tugas telah dibuat sebelum mencoba lagi.

Langkah 6: Evaluasi pada kumpulan prompt Anda sendiri

Tidak ada pemeringkatan kualitas netral vendor yang disertakan dalam artikel ini, dan tidak ada yang boleh diambil begitu saja dari materi pemasaran. Berikan justifikasi atas pilihan Anda dengan pengukuran pada beban kerja Anda:

  1. Kumpulkan set prompt tetap yang mencerminkan distribusi produksi Anda — subjek, gaya, dan bentuk instruksi yang sebenarnya Anda terima. Prompt demo umum tidak akan mampu membedakan model untuk kebutuhan Anda.
  2. Jalankan set yang sama di seluruh model kandidat Anda pada pengaturan yang sama, dan catat waktu pembuatan per permintaan termasuk upaya coba lagi.
  3. Beri skor output dengan rubrik yang pasti, baik secara otomatis maupun melalui panel peninjau manusia, alih-alih mengamati sampel sekilas.
  4. Hitung biaya per gambar yang diterima, bukan biaya per gambar yang dibuat. Model yang lebih murah tetapi memerlukan dua percobaan per output yang dapat digunakan bukanlah model yang lebih murah.
  5. Jika produk Anda sensitif terhadap latensi, catat persentil daripada rata-rata, karena ekor distribusi latensi adalah apa yang disadari pengguna.
  6. Jalankan kembali perbandingan tersebut saat Anda berganti penyedia atau target resolusi, karena unit harga dan perilaku model dapat berubah.

Biaya per gambar yang diterima adalah satu-satunya angka yang menjawab apakah model yang lebih mahal sepadan dengan tarifnya untuk beban kerja Anda.

Contoh permintaan ilustratif

Berikut adalah contoh ilustrasi format panggilan pembuatan, bukan hasil yang diukur. Contoh ini menggunakan model yang menyediakan aspect_ratio dan resolution.

curl https://api.tokenlab.sh/v1/images/generations \
  -H "Authorization: Bearer $TOKENLAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3-pro-image",
    "prompt": "A cinematic portrait of a white cat sitting on a rainy windowsill",
    "aspect_ratio": "16:9",
    "resolution": "2k"
  }'

Jika respons tersebut kembali dengan status: "pending", lakukan polling pada poll_url yang dikembalikan daripada menganggapnya sebagai kegagalan.

Akses model tidak seragam di seluruh format API. TokenLab menerima bentuk permintaan Chat Completions, Responses, Anthropic Messages, dan Gemini, dan model tertentu mungkin hanya mendukung sebagian di antaranya. Periksa tokenlab.accepted_request_formats pada model sebelum menggunakan kembali klien yang ada — lihat Format API.

Batasan artikel ini

  • Tidak ada tolok ukur kualitas independen, pengukuran latensi, atau angka throughput untuk model gambar apa pun yang disertakan di sini. Pernyataan vendor mengenai anatomi, perenderan teks, atau fotorealisme tidak direproduksi sebagai fakta.
  • Tidak ada harga yang dicantumkan. Unit penagihan model gambar berbeda-beda dan dapat berubah; baca nilai saat ini dari halaman Models atau GET /v1/models/{model}.
  • Ketersediaan model bervariasi berdasarkan opsi pengiriman dan ruang kerja. tokenlab.deliveryAvailability mendeskripsikan dukungan yang dikonfigurasi; ini tidak menjamin ketersediaan real-time, yang diperiksa saat permintaan dijalankan.
  • Pembatasan wilayah publik berlaku.

Bacaan terkait

Sumber

Model terkait

Model yang baru dirilis

Bangun dengan model dalam panduan ini

Bandingkan harga, uji rute, dan ubah riset menjadi panggilan API yang berjalan.