Skip to main content
Kumpulan praktik terbaik untuk pertanyaan umum, optimasi performa, dan penanganan error, disarankan dibaca menyeluruh sebelum integrasi.

Pengiriman tugas dan polling

Semua endpoint pengiriman bersifat asinkron: setelah dikirim akan mengembalikan task_id, lalu query status secara berkala via GET /v1/midjourney/{task_id} hingga SUCCESS / FAILURE.
  • Ritme polling: disarankan setiap 3–5 detik, frekuensi lebih tinggi tidak berguna dan memboroskan kuota.
  • Jangan memblokir secara sinkron di dalam request web menunggu tugas selesai — setelah dikirim langsung kembalikan task_id, biarkan frontend melakukan polling secara asinkron.

Desain prompt

Prompt yang baik:
  • Subjek di depan: subjek dulu, lalu deskripsi scene, terakhir kata pemodifikasi.
  • Parameter terstruktur eksplisit: gunakan --ar / --v / --s (atau field body yang sesuai) lebih terkendali daripada mengandalkan nilai default.
  • Hindari kata ambigu: photorealistic lebih jelas daripada realistic.
Hindari: terlalu abstrak (“make it good”), subjek berserakan (beberapa objek sejajar tanpa prioritas), memberi tanda kutip pada kata (akan dianggap nilai literal). Niji anime: kirim niji: true + version: "7", platform menormalisasinya menjadi --niji 7, penagihan melalui midjourney@imagine-niji7.

Praktik terbaik gambar referensi

  • Kompres hingga < 5 MiB: batas platform 12 MiB, tetapi gambar kecil lebih cepat ditransfer / diproses.
  • Format PNG / JPG / WebP semuanya bisa, direkomendasikan JPG berkualitas tinggi.
  • Resolusi 1024–2048 px sudah cukup, lebih tinggi hanya pemborosan.
  • Bobot gambar referensi iw (0–3, default 1): >1 lebih dekat ke gambar asli, <1 lebih bebas.

Penanganan error dan strategi retry

Alur operasi sekunder

Inpaint (inpaint → modal, dua langkah):
⚠️ Setelah inpaint masuk MODAL, /modal harus dipanggil dalam 30 menit, jika tidak backend otomatis CANCEL + refund.

Kontrol penagihan video

  • Segmen tunggal: batch_size: 1 → menagih 1 × midjourney@video
  • Batch 4 segmen: batch_size: 4 → menagih 4 × midjourney@video
  • HD segmen tunggal: video_type: "vid_1.1_i2v_720" + batch_size: 1 → menagih 1 × midjourney@video-720p
Saran: jika hanya butuh 1 segmen gunakan batch_size=1, gunakan 4 hanya untuk perbandingan batch, jangan default membuka 4 (biaya berlipat N kali).

Konkurensi dan throughput

  • Platform memiliki batas jumlah submit per menit, jika terlampaui mengembalikan 429, perlu backoff retry.
  • Konkurensi generasi aktual ditentukan oleh kapasitas sistem, jika terlampaui akan antre; tugas yang lama berhenti di SUBMITTED biasanya sedang antre.
  • Polling harus disertai sleep, jangan loop tanpa henti tanpa sleep.

Saran monitoring

Daftar troubleshooting