Przejdź do głównej treści
Ten artykuł przedstawi instrukcję integracji Kling Motion Generation API, która umożliwia generowanie oficjalnych filmów Kling poprzez wprowadzenie niestandardowych parametrów.

Proces składania wniosku

Aby korzystać z Kling Motion Generation API, najpierw uzyskaj swój API Token w konsoli Ace Data Cloud i zachowaj go do późniejszego użycia. Jeśli nie jesteś jeszcze zalogowany ani zarejestrowany, zostaniesz automatycznie przekierowany na stronę logowania, która zaprosi Cię do rejestracji i zalogowania się, a po zakończeniu automatycznie powrócisz na bieżącą stronę. Jeden API Token umożliwia wywoływanie wszystkich usług platformy, bez konieczności składania osobnego wniosku dla każdej usługi. Przy pierwszym wniosku otrzymasz darmowy limit, aby bezpłatnie wypróbować usługę; gdy limit będzie niewystarczający, możesz doładować uniwersalne saldo w konsoli.
📘 Pełna dokumentacja: Kling Motion Generation API →

Podstawowe użycie

Najpierw zapoznajmy się z podstawowym sposobem użycia: wystarczy wprowadzić prompt prompt, obraz referencyjny image_url oraz link do filmu referencyjnego video_url, aby uzyskać przetworzony wynik, a następnie musimy także wprowadzić model mode; obecnie główne modele to std, pro, a szczegóły są następujące:

Można zauważyć, że ustawiliśmy tutaj Request Headers, w tym:
  • accept: format odpowiedzi, który chcesz otrzymać; tutaj należy wpisać application/json, czyli format JSON.
  • authorization: klucz do wywołania API, który po uzyskaniu można bezpośrednio wybrać z listy rozwijanej.
Dodatkowo ustawiliśmy Request Body, w tym:
  • image_url: URL obrazu referencyjnego wyglądu postaci. Obsługiwane są JPG/JPEG/PNG, plik ≤50MB, szerokość i wysokość ≥300px, proporcje 1:2.5~2.5:1; postać powinna wyraźnie przedstawiać górną połowę ciała lub całe ciało oraz głowę.
  • video_url: URL filmu referencyjnego ruchu. Obsługiwane są MP4/MOV, plik ≤100MB, szerokość i wysokość po 340–3850px, co najmniej 3 sekundy; przy character_orientation=image maksymalnie 10 sekund, a przy character_orientation=video maksymalnie 30 sekund. Zaleca się używanie ciągłego filmu z jednym ujęciem, w którym postać zawsze pozostaje w kadrze.
  • mode: tryb generowania filmu, głównie standardowy tryb std i ultraszybki tryb pro.
  • keep_original_sound: można wybrać, czy zachować oryginalny dźwięk filmu, wartości wyliczeniowe: yes, no.
  • character_orientation: orientacja postaci w generowanym filmie; można wybrać zgodność z obrazem lub z filmem, wartości wyliczeniowe: image, video.
  • prompt: prompt.
  • callback_url: URL, na który należy zwrócić wynik wywołania zwrotnego.
  • async: opcjonalne; gdy ustawione na true, interfejs natychmiast zwraca task_id, bez konieczności podawania callback_url, a następnie wynik uzyskuje się przez odpytywanie odpowiedniego interfejsu zapytania o zadanie.
Po dokonaniu wyboru można zauważyć, że po prawej stronie został również wygenerowany odpowiedni kod, jak pokazano na ilustracji:

Kliknij przycisk „Try”, aby przeprowadzić test. Jak pokazano na powyższej ilustracji, otrzymaliśmy tutaj następujący wynik:
Wynik zwracany zawiera wiele pól, opisanych poniżej:
  • success, stan zadania generowania filmu w tym momencie.
  • task_id, ID zadania generowania filmu w tym momencie.
  • video_id, ID filmu zadania generowania filmu w tym momencie.
  • video_url, link do filmu zadania generowania filmu w tym momencie.
  • duration, czas trwania linku do filmu zadania generowania filmu w tym momencie.
  • state, stan zadania generowania filmu w tym momencie.
Można zauważyć, że otrzymaliśmy satysfakcjonujące informacje o filmie; wystarczy pobrać wygenerowany film Kling na podstawie adresu linku do filmu data w wyniku. Ponadto, jeśli chcesz wygenerować odpowiedni kod integracyjny, możesz go bezpośrednio skopiować, na przykład kod CURL wygląda następująco:

Asynchroniczne wywołanie zwrotne

Ponieważ czas generowania przez Kling Motion Generation API jest stosunkowo długi, około 1–2 minut, jeśli API przez długi czas nie odpowiada, żądanie HTTP będzie stale utrzymywać połączenie, co prowadzi do dodatkowego zużycia zasobów systemowych, dlatego to API zapewnia również obsługę asynchronicznych wywołań zwrotnych. Ogólny proces wygląda następująco: gdy klient inicjuje żądanie, dodatkowo określa pole callback_url; po wysłaniu przez klienta żądania API, API natychmiast zwraca wynik zawierający informację o polu task_id, które reprezentuje bieżący ID zadania. Po zakończeniu zadania wynik generowania filmu zostanie wysłany w formie POST JSON na callback_url wskazany przez klienta, zawierając również pole task_id, dzięki czemu wynik zadania można powiązać za pomocą ID. Poniżej, poprzez przykład, zapoznajmy się z konkretnym sposobem działania. Najpierw Webhook callback jest usługą, która może odbierać żądania HTTP; programista powinien zastąpić go URL-em własnego serwera HTTP. Dla wygody demonstracji użyto tutaj publicznej przykładowej strony Webhook https://webhook.site/; po otwarciu tej strony można uzyskać Webhook URL, jak pokazano na ilustracji: Skopiuj ten URL, aby użyć go jako Webhooka; przykładem w tym miejscu jest https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3. Następnie możemy ustawić pole callback_url na powyższy Webhook URL, jednocześnie wprowadzając odpowiednie parametry; szczegóły pokazano na ilustracji:

Kliknij uruchomienie, a zauważysz, że natychmiast otrzymasz wynik, jak poniżej:
Po krótkiej chwili możemy zaobserwować wynik wygenerowanego filmu na https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3, jak pokazano na ilustracji: Treść jest następująca:
Można zauważyć, że w wyniku znajduje się pole task_id, pozostałe pola są podobne do tych powyżej, a za pomocą tego pola można zrealizować powiązanie zadania.

Obsługa błędów

Podczas wywoływania API, jeśli wystąpi błąd, API zwróci odpowiedni kod błędu i informację. Na przykład:
  • 400 token_mismatched:Nieprawidłowe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
  • 400 api_not_implemented:Nieprawidłowe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
  • 401 invalid_token:Brak autoryzacji, nieprawidłowy lub brakujący token autoryzacyjny.
  • 429 too_many_requests:Zbyt wiele żądań, przekroczono limit szybkości.
  • 500 api_error:Wewnętrzny błąd serwera, coś poszło nie tak na serwerze.

Przykład odpowiedzi z błędem

Wnioski

Dzięki temu dokumentowi dowiedziałeś się już, jak używać Kling Motion Generation API do realizacji oficjalnej funkcji kontroli ruchu Kling. Mamy nadzieję, że ten dokument pomoże Ci lepiej integrować i używać tego API. W razie jakichkolwiek pytań prosimy o kontakt z naszym zespołem wsparcia technicznego.