🎯 Forstå kjernekonseptet
MidJourney API simulerer Discord-knappeinteraksjoner. I motsetning til typiske REST API-er fungerer det som en state machine der hver operasjon returnerer nye knapper for neste steg.De 4 kjerne-API-ene
| API | Formål | Når det brukes |
|---|---|---|
POST /mj/submit/imagine | Tekst-til-bilde-generering | Startpunktet for alle arbeidsflyter |
GET /mj/task/\{id\}/fetch | Hent task-status og få knapper | Etter hver innsending (poll til den er ferdig) |
POST /mj/submit/action | Klikk på en knapp (upscale, vary, zoom osv.) | Når du vil utføre en handling på et bilde |
POST /mj/submit/modal | Send inn ekstra input | Kun når status er MODAL |
📊 Komplett arbeidsflytdiagram
🔑 Nøkkelkonsept: Buttons og customId
Hver vellykkede task returnerer enbuttons-array. Hver knapp har en customId som du bruker for å utløse neste handling.
Eksempelrespons fra /mj/task/\{id\}/fetch:
customId er IKKE en fast verdi. Den endres for hver task. Hent den alltid fra buttons-arrayen.
📋 Knappeoversikt etter trinn
Etter IMAGINE (4-ruters bilde)
Disse knappene returneres når den opprinnelige bildegenereringen er fullført:| Button | customId Pattern | Action | Result |
|---|---|---|---|
| U1-U4 | MJ::JOB::upsample::1::xxx | Oppskaler enkeltbilde | Enkeltbilde i høy oppløsning |
| V1-V4 | MJ::JOB::variation::1::xxx | Generer variasjoner | Nytt 4-ruters bilde |
| 🔄 | MJ::JOB::reroll::0::xxx::SOLO | Generer alle på nytt | Nytt 4-ruters bilde |
Etter UPSCALE (enkeltbilde)
Etter oppskalering får du tilgang til redigeringsverktøy:| Label | Needs Modal? |
|---|---|
| Upscale (Subtle) / Upscale (2x) | ❌ Nei |
| Upscale (Creative) / Upscale (4x) | ❌ Nei |
| Vary (Subtle) 🪄 | ❌ Nei |
| Vary (Strong) 🪄 | ❌ Nei |
| Vary (Region) 🖌️ | ✅ Ja (maske) |
| Zoom Out 2x / 1.5x 🔍 | ❌ Nei |
| Custom Zoom 🔍 | ✅ Ja (prompt) |
| ⬅️➡️⬆️⬇️ Pan | ❌ Nei |
| Animate 🎞️ | ❌ Nei |
| 🔄 Reroll | ❌ Nei |
Merk: Knappetekster og⚠️ Inpaint-knappen (Vary Region) vises kun etter Upscale!customId-formater kan variere avhengig av MJ-versjonen som er angitt i prompten din (f.eks.--v 6.1vs--v 5.2). Les alltid knappene fra API-responsen.
⚡ Fullstendig eksempel: Generer og oppskaler
Trinn 1: Send Imagine-forespørsel
Trinn 2: Poll oppgavestatus
Trinn 3: Klikk U1 for å oppskalere
Trinn 4: Poll den nye oppgaven og hent resultatet
⚠️ Når kreves Modal?
Når du kaller/mj/submit/action og oppgavestatusen blir MODAL i stedet for SUCCESS, må du kalle /mj/submit/modal for å oppgi ekstra input.
Bekreftede Modal-operasjoner
| Operation | Button | What to Submit |
|---|---|---|
| Inpaint | Vary (Region) | maskBase64 (PNG-maske) + prompt |
| Custom Zoom | 🔍 Custom Zoom | prompt (f.eks. “your prompt —zoom 2”) |
🚀 Valg av hastighetsmodus
Legg til hastighetsprefiks i stien:| Modus | Stiprefiks | Eksempel |
|---|---|---|
| Fast | /mj-fast | /mj-fast/mj/submit/imagine |
| Turbo | /mj-turbo | /mj-turbo/mj/submit/imagine |
| Relax | (standard) | /mj/submit/imagine |
🔗 Andre inngangspunkter
Disse API-ene er uavhengige inngangspunkter som ikke følger imagine → action-flyten:| API | Formål |
|---|---|
POST /mj/submit/blend | Bland 2–5 bilder til ett |
POST /mj/submit/describe | Generer prompt fra bilde |
POST /mj/submit/video | Konverter bilde til video |
POST /mj/submit/edits | Rediger bilde med maske |
❓ Feilsøkingstips
Basert på API-designet og arbeidsflyten, her er vanlige problemer du kan støte på:| Problem | Sannsynlig årsak | Løsning |
|---|---|---|
| Finner ikke Vary (Region)-knappen | Ser på et 4-ruters bilde | Upscale først (klikk U1-U4), og sjekk deretter knappene |
Oppgavestatus sitter fast på MODAL | Operasjonen krever ekstra input | Kall /mj/submit/modal med nødvendige data |
customId fungerer ikke | Bruker en utdatert eller hardkodet verdi | Hent alltid en ny customId fra svaret til /mj/task/\{id\}/fetch |
Tom buttons-array | Oppgaven er fortsatt under behandling | Vent på status: "SUCCESS" før du bruker knappene |