Grok Imagine 2.0 Ext
Lapisan dan Pengeditan Wilayah Grok Imagine 2.0 Ext
Gunakan segment untuk mengambil lapisan objek dan mask presisi, lalu edit poligon, kotak, atau objek terdeteksi dengan region_edit.
POST
segment dan region_edit menggunakan endpoint gambar asinkron yang sama. Simpan task_id, lalu polling Dapatkan status tugas; permintaan pembuatan tidak langsung mengembalikan lapisan atau gambar final.Ringkasan operasi
source_task_id dan image_id tidak dapat dipertukarkan. segment memakai ID tugas sumber; region_edit memakai ID aset gambar. Untuk melakukan segmentasi ulang gambar hasil edit, gunakan ID tugas region_edit yang selesai sebagai source_task_id baru.Header permintaan
GunakanAuthorization: Bearer <APIMART_API_KEY>, Content-Type: application/json, dan Accept: application/json.
Idempotency-Key bersifat opsional dan sangat disarankan untuk permintaan region_edit berbayar. Nilainya mendukung 1–191 karakter ASCII yang terlihat; UUID disarankan. Gunakan key baru untuk setiap operasi logis baru. Retry jaringan untuk permintaan yang sama harus memakai ulang key dan body yang identik. Jika hasil tidak pasti, jangan retry otomatis dengan key baru.
Alur tugas asinkron
Pembuatan yang berhasil mengembalikan HTTP200 dan data[0].task_id. Poll GET /v1/tasks/{task_id}?language=id mulai tiap 2 detik, naik hingga maksimum 5 detik, dengan batas total 10 menit. Hentikan polling lama saat gambar sumber berubah.
segment
Parameter permintaan
segment tidak memerlukan prompt. Jangan kirim image_id, image_index, billing_model_name, n, size, atau response_format. cache_only=true dan refresh=true saling eksklusif.
Contoh permintaan
- Ambil lapisan
- Periksa cache
cache_status (hit atau miss) atau from_cache; jangan menyimpulkan hit dari cached.
Respons selesai
Untuksegment, data.result langsung berisi hasil segmentasi dan tidak dibungkus dalam images.
Objek tanpa
mask_rle atau mask_url yang valid hanya dapat memakai edit kotak perkiraan.
Dekode mask_rle
mask_rle.counts adalah string hitungan terkompresi COCO, bukan Base64 atau zlib. Data dibuka per kolom; run pertama adalah latar, lalu bergantian antara depan dan latar.
TypeScript berikut mengubahnya menjadi mask biner per baris yang sesuai untuk browser:
mask_rle.counts ke log, analitik, URL, atau pelaporan error.
Ubah mask menjadi pilihan presisi
0–1. Tiap ring memerlukan minimal 3 titik berbeda, area tidak nol, dan tidak boleh berpotongan sendiri. Simpan maksimal 16 region terbesar per lapisan dan 400 titik per ring.
Membaca piksel gambar sumber atau mask_url memerlukan CORS. Tetapkan crossOrigin = "anonymous" sebelum src, atau fetch Blob. Dekode mask_rle langsung menghindari dependensi ini.
Edit wilayah: region_edit
Parameter permintaan
Minimal satu dari
selection_regions, boxes, atau object_indices harus tidak kosong. API menerima kombinasi, tetapi frontend sebaiknya memakai satu metode per permintaan.
Metode pilihan
- Poligon presisi
- Kotak ternormalisasi
- Kotak piksel
- Indeks objek
points dapat berupa array datar atau pasangan bertingkat. Setiap nilai harus terbatas dan berada pada 0–1; tiap ring membutuhkan minimal 3 pasangan.Respons selesai
result.images[0].items[0]. Untuk respons lama, pasangkan url[0] dan image_ids[0] hanya jika panjang array sama. Lanjutkan hanya setelah memperoleh URL HTTP(S) dan image_id baru.
Gunakan expires_at sebagai acuan kedaluwarsa URL; jangan hard-code jumlah jam. Unduh atau simpan aset yang dibutuhkan jangka panjang.
Pengeditan berkelanjutan
Setelah edit selesai, perbarui URL tampilan, ID aset saat ini, dan ID tugas sumber secara bersamaan, lalu hapus lapisan dan status polling lama.- Segmentasi ulang: gunakan ID tugas
region_editini sebagaisource_task_id - Edit ulang: gunakan
image_idbaru yang dikembalikan - Jangan pernah mengirim
image_idkesegmentdan jangan terus mengedit ID gambar sebelumnya.
Penanganan error
Penagihan
segmentgratis dan selesai dengancost=0sertacredits_cost=0, tetapi tetap memerlukan autentikasi dan tugas sumber valid.region_editberbayar. Gunakancostdancredits_costdari tugas selesai; jangan hard-code harga di frontend.- Jangan pernah mengirim field internal
billing_model_name.
Daftar periksa frontend
- Simpan API Key hanya di backend atau BFF.
- Kirim hanya
source_task_idkesegment; jangan kirimimage_idatauimage_index. - Gunakan
image_iddari segment untukregion_editdan sediakan minimal satu metode pilihan. - Gunakan
selection_regionsuntuk edit presisi;object_indiceshanya perkiraan kotak. - Selalu baca
mask_sizesebagai[height,width]dan tangani skala serta letterbox. - Gunakan ulang idempotency key asli untuk retry yang sama dan validasi URL serta
image_idbaru.