Proces aplikacji
Aby korzystać z API, należy najpierw przejść do strony Midjourney Edits API i złożyć wniosek o odpowiednią usługę. Po wejściu na stronę, kliknij przycisk „Acquire”, jak pokazano na obrazku:
Jeśli nie jesteś zalogowany lub zarejestrowany, automatycznie zostaniesz przekierowany na stronę logowania, aby zarejestrować się i zalogować. Po zalogowaniu lub rejestracji zostaniesz automatycznie przekierowany z powrotem na bieżącą stronę.
Podczas pierwszej aplikacji otrzymasz darmowy limit, który pozwala na korzystanie z tego API bez opłat.
Podstawowe użycie
Najpierw zapoznaj się z podstawowym sposobem użycia, czyli wprowadzeniem słów kluczowychprompt, działania action, oraz linku do obrazu image_url, aby uzyskać przetworzony wynik. Najpierw musisz przekazać prostą wartość pola action, która wynosi generate, a szczegóły są następujące:

accept: format odpowiedzi, który chcesz otrzymać, tutaj wpisanoapplication/json, czyli format JSON.authorization: klucz do wywołania API, który można wybrać z rozwijanej listy po złożeniu wniosku.
mask: można określić lokalizację maski obszaru obrazu do edycji i ponownego generowania.split_images: dzieli wygenerowany obraz na wiele obrazów, zwracając je przez pole sub_image_urls. Domyślnie jest to false.action: działanie związane z edycją obrazu, domyślnie togenerate.image_url: link do obrazu, który ma być edytowany.prompt: słowa kluczowe.mode: tryb generacji, opcjonalniefast/relax/turbo.callback_url: URL, na który mają być zwracane wyniki.

success, status zadania edycji obrazu.task_id, ID zadania edycji obrazu.image_id, ID obrazu w tym zadaniu edycji.sub_image_urls, wiele wyników obrazów z zadania generacji.image_url, link do wygenerowanego obrazu.image_width, szerokość wygenerowanego obrazu.image_height, wysokość wygenerowanego obrazu.progress, pole postępu zadania edycji obrazu.
image_url w wyniku.
Dodatkowo, jeśli chcesz wygenerować odpowiedni kod do integracji, możesz go bezpośrednio skopiować, na przykład kod CURL wygląda następująco:
Asynchroniczne wywołanie zwrotne
Ponieważ czas generacji przez Midjourney Edits API jest stosunkowo długi, wynosi około 1-2 minut, jeśli API nie odpowiada przez dłuższy czas, żądanie HTTP będzie utrzymywać połączenie, co prowadzi do dodatkowego zużycia zasobów systemowych. Dlatego to API oferuje również wsparcie dla asynchronicznych wywołań zwrotnych. Cały proces polega na tym, że klient podczas wysyłania żądania dodatkowo określa polecallback_url. Po wysłaniu żądania API natychmiast zwraca wynik, zawierający pole task_id, które reprezentuje aktualne ID zadania. Po zakończeniu zadania, wynik generacji wideo zostanie wysłany do określonego przez klienta callback_url w formie POST JSON, w tym również pole task_id, co pozwala na powiązanie wyniku zadania z ID.
Poniżej przedstawiamy przykład, aby zrozumieć, jak to działa.
Najpierw, wywołanie zwrotne Webhook to usługa, która może odbierać żądania HTTP, deweloperzy powinni zastąpić to URL swojego serwera HTTP. Dla wygody demonstracji użyjemy publicznej strony przykładowej Webhook https://webhook.site/, otwierając tę stronę, otrzymasz URL Webhook, jak pokazano na obrazku:
Skopiuj ten URL, aby użyć go jako Webhook, przykładowy URL to https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f.
Następnie możemy ustawić pole callback_url na powyższy URL Webhook, a także wypełnić odpowiednie parametry, szczegóły są pokazane na obrazku:

https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f zobaczyć wynik generacji wideo, jak pokazano na obrazku:

task_id, a pozostałe pola są podobne do powyższych, dzięki czemu można zrealizować powiązanie z zadaniem.
Obsługa błędów
Podczas wywoływania API, jeśli wystąpi błąd, API zwróci odpowiedni kod błędu i informacje. Na przykład:400 token_mismatched: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.400 api_not_implemented: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.401 invalid_token: Nieautoryzowany, nieprawidłowy lub brakujący token autoryzacyjny.429 too_many_requests: Zbyt wiele żądań, przekroczono limit szybkości.500 api_error: Błąd wewnętrzny serwera, coś poszło nie tak na serwerze.

