API Referensi
Endpoint, kunci, dan batasan. Referensi untuk endpoint gambar AI — menghasilkan, hapus, perluas — dengan autentikasi, CORS, dan batasan kecepatan.
Morph mengekspos serangkaian endpoint gambar berkekuatan AI di api.morph.cool. Endpoint ini menggerakkan fitur AI Artboard dan dapat digunakan oleh pengembang yang membangun integrasi.
https://api.morph.coolSemua permintaan menggunakan HTTPS. Permintaan HTTP ditolak.
Autentikasi
Endpoint AI gambar (menghasilkan, hapus, perluas) tidak memerlukan otentikasi untuk penggunaan dasar. Mereka dibatasi berdasarkan alamat IP. Endpoint yang memodifikasi data pengguna (konversi, bell, leaderboard) memerlukan token JWT yang dikirim sebagai Bearer token dalam header Authorization.
Authorization: Bearer <jwt_token>
Batasan Penyetaraan
Semua endpoint dibatasi laju untuk mencegah penyalahgunaan. Melebihi batas mengembalikan status 429 dengan error JSON.
- Endpoint Artboard AI — 10 permintaan per menit per IP (didasarkan KV).
- Pencatatan konversi — memerlukan autentikasi, tidak ada batasan IP terpisah.
- Laporan kesalahan — 30 permintaan per menit per IP.
- Waitlist — 10 permintaan per menit per IP.
Hasilkan Gambar
POST /artboard/generate
Generasi gambar dari teks dan inpainting. Kirimkan canvas gambar dengan masker untuk mengisi wilayah yang dipilih berdasarkan teks prompt. Juga mendukung mode deskripsi yang mengembalikan deskripsi teks dari gambar.
| Bidang | Tipe | Deskripsi |
|---|---|---|
| prompt | string | Deskripsi teks tentang apa yang harus dibuat. Tidak diperlukan dalam mode describe. |
| canvasImagediperlukan | string | PNG yang dienkripsi Base64 dari konten kanvas. |
| maskImage | string | PNG berbasis Base64 dari masker seleksi. Putih = area yang akan diisi. Diperlukan untuk inpainting, tidak diperlukan untuk deskripsi. |
| mode | string | Setel ke "describe" untuk mode deskripsi gambar. Abaikan untuk generasi. |
Respons generasi:
{
"result": "<base64_png_string>"
}
Jelaskan respons:
{
"result": "A detailed text description of the image content."
}
Validasi: Dalam mode deskripsi, PNG harus berukuran minimal 64×64 piksel. Gambar yang lebih kecil menghasilkan kesalahan REGION_TOO_SMALL.
Hapus Objek
POST /artboard/remove
Penghapusan objek berdaya AI. Lukis di atas objek dalam masker dan model mengisi area dengan konten yang sesuai secara kontekstual.
| Bidang | Tipe | Deskripsi |
|---|---|---|
| canvasImagediperlukan | string | Base64-encoded PNG of the canvas. |
| maskImagerequired | string | Masks PNG yang dienkripsi Base64. Putih = area yang akan dihapus. |
Respons:
{
"result": "<base64_png_string>"
}
Perluasan Generatif
POST /artboard/expand
Perluas kanvas ke arah tertentu. AI mengisi area baru dengan konten yang sesuai dengan gambar yang ada. Menggunakan ekstensi pixel tepi untuk konteks.
| Bidang | Tipe | Deskripsi |
|---|---|---|
| canvasImagediperlukan | string | PNG Base64 terenkripsi dari kanvas. Harus berukuran 64–4096px di setiap sisi. |
| arahdiperlukan | string | Salah satu: left, right, top, bottom, all. |
| expandPxdiperlukan | number | Pixel untuk diperluas. Rentang: 64–512. |
| prompt | string | Prompt teks opsional untuk memandu konten yang dihasilkan. |
Respons:
{
"result": "<base64_png_string>"
}
Validasi: Gambar sumber harus berukuran 64–4096px pada setiap sisi. Kanvas yang diperluas tidak boleh melebihi 4096px dalam dimensi apa pun. Pelanggaran mengembalikan kesalahan REGION_TOO_SMALL atau CANVAS_TOO_LARGE.
Respons Error
Semua endpoint mengembalikan respons error JSON dengan bidang error:
{
"error": "RATE_LIMITED"
}
Kode kesalahan umum:
- TERBATASI_PEMINTAAN — terlalu banyak permintaan. Tunggu dan coba lagi.
- REGION_TOO_SMALL — dimensi gambar di bawah 64×64px minimum.
- CANVAS_TOO_LARGE — canvas yang diperluas melebihi batas 4096px.
- MISSING_FIELDS — bidang yang diperlukan tidak diberikan.
Catatan
- Model AI — semua titik akhir inpainting menggunakan Stable Diffusion v1.5 melalui Cloudflare Workers AI. Langkah inferensi dibatasi hingga 20.
- Format gambar — semua gambar harus berupa PNG base64.
- Privacy — images are processed in-memory and are not stored, logged, or used for model training.
- CORS — endpoint menerima permintaan dari
morph.cool,www.morph.cool, danlocalhost:5173. - Timeout — klien harus mengatur timeout 30 detik. Pemrosesan di sisi server jarang melebihi 15 detik.