đ¯ Pahami Konsep Inti
MidJourney API mensimulasikan interaksi tombol Discord. Berbeda dengan REST API pada umumnya, API ini bekerja sebagai state machine di mana setiap operasi mengembalikan tombol baru untuk langkah berikutnya.4 API Inti
| API | Tujuan | Kapan Digunakan |
|---|---|---|
POST /mj/submit/imagine | Pembuatan gambar dari teks | Titik awal untuk semua workflow |
GET /mj/task/\{id\}/fetch | Periksa status task & dapatkan tombol | Setelah setiap submit (poll sampai selesai) |
POST /mj/submit/action | Klik tombol (upscale, vary, zoom, dll.) | Saat Anda ingin melakukan operasi pada gambar |
POST /mj/submit/modal | Kirim input tambahan | Hanya saat status adalah MODAL |
đ Diagram Workflow Lengkap
đ Konsep Utama: Tombol & customId
Setiap task yang berhasil mengembalikan arraybuttons. Setiap tombol memiliki customId yang Anda gunakan untuk memicu aksi berikutnya.
Contoh response dari /mj/task/\{id\}/fetch:
customId BUKAN nilai tetap. Nilainya berubah untuk setiap task. Selalu ambil nilainya dari array buttons.
đ Referensi Tombol berdasarkan Tahap
Setelah IMAGINE (gambar grid 4)
Tombol-tombol ini dikembalikan saat pembuatan gambar awal Anda selesai:| Button | customId Pattern | Action | Result |
|---|---|---|---|
| U1-U4 | MJ::JOB::upsample::1::xxx | Upscale gambar tunggal | Gambar tunggal resolusi tinggi |
| V1-V4 | MJ::JOB::variation::1::xxx | Hasilkan variasi | Grid 4 baru |
| đ | MJ::JOB::reroll::0::xxx::SOLO | Buat ulang semua | Grid 4 baru |
Setelah UPSCALE (gambar tunggal)
Setelah upscale, Anda mendapatkan akses ke alat pengeditan:| Label | Needs Modal? |
|---|---|
| Upscale (Subtle) / Upscale (2x) | â Tidak |
| Upscale (Creative) / Upscale (4x) | â Tidak |
| Vary (Subtle) đĒ | â Tidak |
| Vary (Strong) đĒ | â Tidak |
| Vary (Region) đī¸ | â Ya (mask) |
| Zoom Out 2x / 1.5x đ | â Tidak |
| Custom Zoom đ | â Ya (prompt) |
| âŦ ī¸âĄī¸âŦī¸âŦī¸ Pan | â Tidak |
| Animate đī¸ | â Tidak |
| đ Reroll | â Tidak |
Catatan: Label tombol dan formatâ ī¸ Tombol Inpaint (Vary Region) hanya muncul setelah Upscale!customIddapat berbeda tergantung versi MJ yang ditentukan dalam prompt Anda (misalnya,--v 6.1vs--v 5.2). Selalu baca tombol dari respons API.
⥠Contoh Lengkap: Generate & Upscale
Langkah 1: Kirim Request Imagine
Langkah 2: Poll Status Task
Langkah 3: Klik U1 untuk Upscale
Langkah 4: Poll Task Baru & Dapatkan Hasil
â ī¸ Kapan Modal Diperlukan?
Saat Anda memanggil/mj/submit/action dan status task menjadi MODAL alih-alih SUCCESS, Anda harus memanggil /mj/submit/modal untuk memberikan input tambahan.
Operasi Modal yang Dikonfirmasi
| Operation | Button | What to Submit |
|---|---|---|
| Inpaint | Vary (Region) | maskBase64 (mask PNG) + prompt |
| Custom Zoom | đ Custom Zoom | prompt (misalnya, âyour prompt âzoom 2â) |
đ Pemilihan Speed Mode
Tambahkan prefix ke path:| Mode | Prefix Path | Contoh |
|---|---|---|
| Fast | /mj-fast | /mj-fast/mj/submit/imagine |
| Turbo | /mj-turbo | /mj-turbo/mj/submit/imagine |
| Relax | (default) | /mj/submit/imagine |
đ Entry Point Lainnya
API ini adalah entry point independen yang tidak mengikuti alur imagine â action:| API | Tujuan |
|---|---|
POST /mj/submit/blend | Menggabungkan 2-5 gambar menjadi satu |
POST /mj/submit/describe | Menghasilkan prompt dari gambar |
POST /mj/submit/video | Mengonversi gambar menjadi video |
POST /mj/submit/edits | Mengedit gambar dengan mask |
â Tips Troubleshooting
Berdasarkan desain API dan alur kerjanya, berikut beberapa masalah umum yang mungkin Anda temui:| Masalah | Kemungkinan Penyebab | Solusi |
|---|---|---|
| Tidak dapat menemukan tombol Vary (Region) | Sedang melihat gambar 4-grid | Lakukan upscale terlebih dahulu (klik U1-U4), lalu periksa tombolnya |
Status task macet di MODAL | Operasi memerlukan input tambahan | Panggil /mj/submit/modal dengan data yang diperlukan |
customId tidak berfungsi | Menggunakan nilai yang usang atau di-hardcode | Selalu ambil customId terbaru dari respons /mj/task/\{id\}/fetch |
Array buttons kosong | Task masih sedang diproses | Tunggu hingga status: "SUCCESS" sebelum mengakses tombol |