Midjourney V8.2 API: wyślij i śledź zadanie obrazowe
Wyślij zadanie Midjourney V8.2, zapisz ID i odczytaj wyniki w Pythonie. Poznaj parametry wersji, operacje na obrazach i aktualne zasady wyceny.
Czytaj jako MarkdownIntegracja Midjourney V8.2 API wymaga jawnej wersji, poprawnego żądania obrazu i sposobu pobrania ukończonego zadania. W SeedRouter wysyłasz żądanie do /v1/images/generations, zachowujesz zwrócone ID zadania i odpytujesz /v1/tasks/{id}. Pomyślne wysłanie potwierdza przyjęcie zadania; obrazy pojawiają się w ukończonym wyniku.
Ten poradnik opisuje kontrakt żądań SeedRouter. Płatny test z 18 października 2026 zakończył żądanie V8.2 Fast i dostarczył cztery obrazy 1024 × 1024. Poniższy portret jest jednym z nich. Strona modelu zawiera Playground i aktualne ceny; dokumentacja API odróżnia obsługiwane wejścia od kombinacji nadal wymagających sprawdzenia. [1]

Zacznij od jawnego żądania Midjourney V8.2 API
Użyj pełnego ID modelu, midjourney-v8.2. SeedRouter wymaga jawnego modelu; nie skracaj go do midjourney ani nie wyprowadzaj z ustawienia konta w innym interfejsie. Zapisz model wraz z wysłanym żądaniem. [1]
Przygotuj klucz API po stronie serwera i krótki prompt z wynikiem, który możesz ocenić. Zacznij bez referencji i operacji na obrazie nadrzędnym, aby pierwsze żądanie sprawdziło podstawowy przebieg. Poniższe żądanie utworzyło pokazany zestaw portretów. Wybiera Fast i włącza dodatkową kontrolę treści:
{
"model": "midjourney-v8.2",
"prompt": "Cinematic portrait of a young woman with freckles and wind-swept auburn hair, wearing a cream cable-knit sweater, laughing on a coastal cliff at golden hour, warm rim light, shallow depth of field, 85mm film photograph",
"speed": "fast",
"nsfw_check": true
}Minimalne żądanie wymaga tylko model i prompt; pominięta szybkość oznacza domyślny Fast. Jeśli dodasz size, użyj proporcji takich jak "16:9", a nie instrukcji wymiarów w pikselach WIDTHxHEIGHT. Ogólny szablon klienta obrazów wysyłający 1024x1024, quality: "high" lub dowolne n nie odpowiada kontraktowi tego modelu. Dostosuj treść według tabeli pól Midjourney zamiast bez zmian używać ustawień innego modelu.
Wyślij raz, a potem odpytuj zapisane ID zadania
Przykład w Pythonie do pobrania korzysta z biblioteki standardowej, przechowuje klucz w zmiennej środowiskowej i zapisuje przyjęte ID zadania w pliku lokalnym. Ma osobne polecenia wysyłania i odpytywania. Ten podział umożliwia wznowienie odczytu bez tworzenia kolejnego zadania generowania.
export SEEDROUTER_API_KEY='your-server-side-key'
python3 midjourney-v8-2.py submit request.json --state mj-task.json
python3 midjourney-v8-2.py poll --state mj-task.jsonZapisz powyższe żądanie JSON jako request.json. Zastąp przykładowy klucz własnym sekretem w lokalnym środowisku; nie umieszczaj go w pakiecie przeglądarki ani w repozytorium. Aby przetestować lokalne wdrożenie, ustaw SEEDROUTER_BASE_URL przykładu na adres bazowy /v1 tego wdrożenia.
Przykład odmawia nadpisania istniejącego pliku stanu przy wysyłaniu. Nie powtarza też automatycznie POST po błędzie połączenia. Jeśli odpowiedź zaginie, aplikacja może nie wiedzieć, czy zadanie zostało przyjęte. Sprawdź historię zadań przed podjęciem decyzji o ponownym wysłaniu.
Odpytywanie działa inaczej: odczytuje zadanie, które już istnieje. Przykład kończy pracę po ukończeniu lub błędzie zadania i sygnalizuje ograniczony czas oczekiwania, jeśli nadal trwa przetwarzanie. Limit oczekiwania to obserwacja po stronie klienta, a nie dowód, że trzeba ponownie wygenerować obraz.
Odczytuj strukturę wyniku właściwą dla operacji
Ukończona operacja obrazowa zwraca adresy URL w output.data. Przejdź przez tę tablicę zamiast zakładać, że zawsze zawiera cztery elementy. Generowanie obrazów, wybór jednego obrazu, opis obrazu i etap wprowadzania danych do edycji mogą zwracać różne rodzaje wyników.
| Pole wyniku | Co powinna zrobić aplikacja |
|---|---|
status | Rozróżniać zadania w trakcie, ukończone i nieudane |
output.data[].url | Wyświetlić lub zapisać każdy dostarczony obraz |
output.grid | Oznaczyć siatkę jako siatkę; jeden plik może zawierać wiele propozycji |
output.text | Wyświetlić tekst bez zakładania czterech sugestii ani języka angielskiego |
output.seed | Zapisać, jeśli występuje; nie wymagać go w każdym wyniku |
output.awaiting_input | Kontynuować udokumentowany etap wprowadzania danych do edycji |
Traktuj nieudane zadanie jako błąd w aplikacji, nawet jeśli żądanie HTTP służące do jego odczytu się powiodło. Sukces HTTP oznacza obsłużenie zapytania o status, a nie wygenerowanie żądanego obrazu.
Gdy output.grid ma wartość true, jeden adres URL zawiera siatkę. Nie wymyślaj czterech osobnych adresów z tego pliku. Późniejszy wybór korzysta z pozycji obrazu w siatce, liczonej od jedynki; liczba adresów URL nie jest liczbą dostępnych propozycji.
Przykład wypisuje ukończony wynik jako JSON. Aplikacja może dodać przechowywanie, miniatury i wybór wokół zwróconych obrazów. Zachowaj ID zadania razem z wynikami, aby późniejsza operacja wskazała właściwe zadanie nadrzędne.
Przekładaj parametry natywne bez ukrywania konfliktów
Integracja przyjmuje pola strukturalne i obsługiwane natywne parametry promptu. Kolejność pierwszeństwa to pola strukturalne, następnie extra, a na końcu parametry w prompt. Jawne wartości zero i false zostają zachowane.
Na przykład prompt zawierający --stylize 700 w połączeniu z "stylize": 0 używa jawnego zera. Jest to przydatne, gdy interfejs wysyła osobny parametr, lecz może zaskoczyć aplikację składającą prompty i JSON w różnych miejscach. Preferuj jedno źródło dla każdego ustawienia.
W żądaniach SeedRouter V8.2 pole quality przyjmuje 0.25, 0.5, 1 lub 2 w zgodnych kombinacjach. Jakość i hd to niezależne wejścia: ustawienie jakości nie wybiera HD. Sprawdź aktualne ograniczenia kombinacji przed dodaniem obu lub innych referencji; udokumentowane wejście nie dowodzi jego wpływu na każdą wersję. Raw jest odrębne od obu; poradnik Raw wyjaśnia tę różnicę. [1]
Ta integracja pomija nieznane pola JSON w treści żądania, natomiast nieznane parametry natywne powodują błąd. Nie uznawaj przyjęcia żądania za dowód, że niepowiązane dodatkowe pole JSON zmieniło wynik. Sprawdź udokumentowane nazwy pól i zachowaj dokładną wysłaną treść w zapisie testu.
Zachowaj powiązanie operacji na obrazie z zadaniem nadrzędnym
Użyj swojego SeedRouter parent_task_id do dalszej operacji. Operacja zależna pozostaje przypisana do pierwotnego kontekstu wykonania. Jeśli ten kontekst jest niedostępny, kończy się błędem zamiast tworzyć inne zadanie nadrzędne gdzie indziej. Zadanie nadrzędne musi należeć do tego samego konta, używać tego samego modelu i pozostawać dostępne dla żądanej operacji. Publiczne indeksy obrazów zaczynają się od jedynki.
Wybór obrazu i kreatywne powiększanie to różne operacje. Wyniku select nie należy opisywać jako poprawy rozdzielczości. Tak samo wariacja, remiks i oficjalny V8.2 Edit Model są odrębnymi funkcjami z różnymi wymaganiami.
Obecna integracja nie udostępnia nowego Edit Model jako zweryfikowanej operacji API. Nie zastępuj go starszym żądaniem inpaint, zakładając ten sam efekt. Poradnik edycji wyjaśnia dostępne alternatywy i zweryfikowaną sekwencję edycji z maską V6.1, a dokumentacja API opisuje ograniczenia wdrożonych operacji.
Wyceniaj zadania zamiast liczyć miniatury
Ukończone generowanie to jedno zadanie według kontraktu cenowego tej integracji. Wybór istniejącego obrazu z siatki nie tworzy kolejnego płatnego generowania. Wejście do etapu danych edycji nie dodaje drugiej opłaty za generowanie; płatnym krokiem jest końcowa operacja modal. Wygenerowanie czterech obrazów nie oznacza automatycznie czterech oddzielnie rozliczanych zadań. Test V8.2 Draft z 18 października zwrócił 24 obrazy w jednym zadaniu; liczba zwróconych obrazów nie jest bezpiecznym wzorem wyceny.
Korzystaj z aktualnej stawki dla wybranej wersji, operacji, szybkości i trybu. Operacje na obrazie nadrzędnym mogą dziedziczyć ustawienia, dlatego ich cena powinna wynikać z rzeczywistego żądania, a nie domniemanych wartości domyślnych. Strona modelu odczytuje skonfigurowane stawki zamiast utrwalać kwotę w dolarach w tym poradniku.
Podczas testu odbiorczego zapisz żądanie, ID zadania, status końcowy, liczbę wyników i rzeczywiste obciążenie konta. Udana kompilacja lub symulowany test HTTP nie ustala tych faktów wykonania. SeedRouter nie rozlicza nieudanych żądań.
Częste pytania
Czy mogę używać tego samego klucza API w JavaScript przeglądarki?
Przechowuj go na serwerze. Niech przeglądarka wywołuje uwierzytelniony endpoint aplikacji, który wysyła żądanie z kluczem po stronie serwera.
Czy ID zadania oznacza, że obraz jest gotowy?
Nie. Odczytuj zadanie do ukończenia lub błędu, a następnie obsłuż właściwy wynik. Zapisz ID przed rozpoczęciem tej pętli odpytywania.
Czy przekroczenie czasu powinno uruchamiać nowe generowanie?
Nie automatycznie. Zachowaj każde znane ID zadania i sprawdź istniejące zadanie. Przekroczenie czasu połączenia lub oczekiwania klienta nie dowodzi odrzucenia pierwotnego wysłania.
Czy mogę zmienić wersję dla operacji na obrazie nadrzędnym?
Ta integracja wymaga tego samego modelu co zadanie nadrzędne. Rozpocznij osobne generowanie, jeśli chcesz ocenić inną wersję.
Zacznij integrację Midjourney V8.2 API od jednego jawnego żądania i zapisanego ID zadania. Sprawdź dostarczony wynik oraz opłatę przed dodaniem referencji lub łańcucha operacji na obrazach.
Źródła
Kontrakt i dowody wykonania sprawdzono 18 października 2026. Pokazane obrazy pochodzą z płatnych testów integracyjnych, a nie z ogólnego benchmarku modelu.
