Proces aplikacji
Aby korzystać z API generacji filmów Kling, najpierw przejdź do konsoli Ace Data Cloud, aby uzyskać swój token API, który należy zachować na przyszłość.
Jeśli nie jesteś zalogowany lub zarejestrowany, automatycznie zostaniesz przekierowany na stronę logowania, aby zarejestrować się i zalogować, a po zakończeniu zostaniesz automatycznie przekierowany z powrotem na bieżącą stronę.
Jeden token API wystarczy do wywołania wszystkich usług platformy, nie ma potrzeby składania osobnych wniosków dla każdej usługi. Przy pierwszym wniosku otrzymasz darmowy limit, aby móc skorzystać z usługi; w przypadku niewystarczającego limitu możesz doładować saldo ogólne w konsoli.
📘 Pełna dokumentacja: API generacji filmów Kling →
Podstawowe użycie
Najpierw zapoznaj się z podstawowym sposobem użycia, czyli wprowadzeniem słowa kluczowegoprompt, działania action, linku do referencyjnego obrazu start_image_url oraz modelu model, aby uzyskać przetworzony wynik. Najpierw musisz przekazać pole action, którego wartość to text2video, które głównie zawiera trzy rodzaje działań: generowanie wideo z tekstu (text2video), generowanie wideo z obrazu (image2video), rozszerzenie wideo (extend). Następnie musimy również wprowadzić model model, który obecnie obejmuje głównie modele kling-v1, kling-v1-6, kling-v2-master, kling-v2-1-master, kling-v2-5-turbo, kling-v2-6, kling-v3, kling-v3-omni, kling-o1, szczegóły są następujące:

accept: format odpowiedzi, który chcemy otrzymać, tutaj wpisujemyapplication/json, czyli format JSON.authorization: klucz do wywołania API, po złożeniu wniosku można go bezpośrednio wybrać z rozwijanej listy.
model: model generujący wideo, główniekling-v1,kling-v1-6,kling-v2-master,kling-v2-1-master,kling-v2-5-turbo,kling-v2-6,kling-v3,kling-v3-omni,kling-o1.mode: tryb generowania wideo, opcjonalne wartości to standardowy trybstd, tryb superszybkiprooraz natywny tryb 4K4k. Tryb4kobsługuje tylkokling-v3ikling-v3-omni, a także jest niekompatybilny zcamera_control(kontrola kamery).action: działanie w zadaniu generowania wideo, głównie obejmujące trzy działania: generowanie wideo z tekstu (text2video), generowanie wideo z obrazu (image2video), rozszerzenie wideo (extend).start_image_url: przy wyborze działania generowania wideo z obrazuimage2videokonieczne jest przesłanie linku do referencyjnego obrazu.end_image_url: opcjonalne przy generowaniu wideo z obrazu, określa ostatnią klatkę.duration: czas trwania wideo, w sekundach.kling-v3ikling-v3-omniobsługują długości całkowite od 3 do 15 sekund;kling-o1obsługuje tylko 5 sekund; inne modele obsługują 5 lub 10 sekund.generate_audio: czy synchronizować generowanie dźwięku, opcjonalne, wartość logiczna. Obsługujekling-v3,kling-v3-omniorazkling-v2-6(tylko w trybie pro). Domyślniefalse.aspect_ratio: proporcje wideo, opcjonalne, obsługuje16:9,9:16,1:1, domyślnie16:9.cfg_scale: intensywność związku, zakres [0,1], im większa wartość, tym bardziej zgodna z podanym słowem kluczowym.camera_control: opcjonalne, parametry kontrolujące ruch kamery, obsługuje predefiniowane typy/proste oraz konfiguracje horizontal, vertical, pan, tilt, roll, zoom itp.negative_prompt: opcjonalne, słowa kluczowe, których nie chcemy, maksymalnie 200 znaków.image_list: lista referencyjnych obrazów Omni, odpowiednia dla modelikling-o1ikling-v3-omni, sposób użycia opisany poniżej w sekcji „Omni pełne odniesienie”.video_list: lista referencyjnych filmów Omni (obsługuje edycję wideo), odpowiednia dla modelikling-o1ikling-v3-omni, sposób użycia opisany poniżej w sekcji „Omni pełne odniesienie”.prompt: słowo kluczowe.callback_url: URL, na który mają być zwracane wyniki.async: opcjonalne, ustawione natrue, interfejs natychmiast zwracatask_id, nie ma potrzeby podawaniacallback_url, a następnie można uzyskać wyniki, korzystając z odpowiedniego interfejsu zapytań o zadania.

success, stan zadania generowania wideo w danym momencie.task_id, ID zadania generowania wideo w danym momencie.video_id, ID wideo w danym momencie.video_url, link do wideo w danym momencie.duration, czas trwania wideo w danym momencie.state, stan zadania generowania wideo w danym momencie.
data uzyskamy wygenerowane wideo Kling.
Dodatkowo, jeśli chcesz wygenerować odpowiedni kod integracyjny, możesz go bezpośrednio skopiować, na przykład kod CURL wygląda następująco:
Macierz możliwości modeli
Różne modele mają różne wsparcie dla parametrów. Poniższa macierz została opracowana na podstawie oficjalnej dokumentacji modeli wideo Kling, przed wywołaniem proszę upewnić się, że aktualna kombinacjamodel / mode / duration obsługuje wymagane funkcje, w przeciwnym razie zwróci błąd model/mode/duration(...) is not supported with image_tail itp.
Uwagi:
mode=4kwspierają tylkokling-v3ikling-v3-omni; jest to również wykluczone zcamera_control(sterowanie kamerą).end_image_urlmoże być używane tylko w połączeniu zstart_image_urlpodczasaction=image2video. Przesłanie tylkoend_image_url(bezstart_image_url) zostanie odrzucone.kling-v3/kling-v3-omniakceptują dowolny całkowitydurationod 3 do 15 sekund;kling-o1akceptuje tylko 5; pozostałe modele akceptują tylko 5 lub 10.generate_audiodomyślniefalse. Tylkokling-v3,kling-v3-omniikling-v2-6(tryb pro) wspierają.
Funkcje rozszerzonego wideo
Jeśli chcesz kontynuować generowanie już wygenerowanego wideo Kling, możesz ustawić parametraction na extend i wprowadzić ID wideo, które chcesz kontynuować. ID wideo można uzyskać na podstawie podstawowego użycia, jak pokazano na poniższym obrazku:

Uwaga, tutaj video_id w wideo to ID wygenerowanego wideo. Jeśli nie wiesz, jak wygenerować wideo, możesz odwołać się do podstawowego użycia opisanego powyżej.
Następnie musimy wypełnić kolejne kroki, aby rozszerzyć podpowiedzi do dostosowania generowanego wideo, można określić następujące treści:
model: model generujący wideo, główniekling-v1,kling-v1-5ikling-v1-6.mode: tryb generowania wideo, możliwe wartości to standardowy trybstd, tryb superszybkiproi natywny tryb 4K4k(tylkokling-v3ikling-v3-omniwspierają, niekompatybilny z kontrolą kamery).duration: czas trwania zadania generowania wideo, głównie 5s i 10s.start_image_url: gdy wybierasz działanie generowania wideo z obrazuimage2video, musisz przesłać link do referencyjnego obrazu klatki początkowej.prompt: podpowiedź.


Omni wszechstronny odniesienie (edycja wideo / wideo referencyjne / wiele obrazów referencyjnych)
kling-o1 i kling-v3-omni to dwa niezależne modele, które wspierają zdolność „wszechstronnego odniesienia”. Na podstawie generowania wideo z tekstu (action=text2video) można dodatkowo przesłać obrazy referencyjne lub wideo referencyjne, aby zrealizować wiele obrazów referencyjnych, wideo referencyjne oraz bezpośrednią edycję istniejącego wideo.
Podstawowe ustalenie: Materiały referencyjne muszą być cytowane w prompt w formie <<<image_1>>>, <<<video_1>>> (numeracja zaczyna się od 1) w odniesieniu do odpowiednich pozycji w image_list / video_list, aby model mógł zastosować te odniesienia. Jeśli przesłane są tylko materiały bez ich cytowania w podpowiedzi, materiały zostaną zignorowane.
Uwaga bezpieczeństwa: obecne API nie udostępniaŻądania Omni nie wspierająelement_list. ID z Biblioteki Elementów Kling nie jest izolowane dla najemców, przed udostępnieniem API zarządzania Elementami z izolacją najemców, proszę użyćimage_listdo przesłania głównego obrazu referencyjnego.
negative_prompt, cfg_scale ani camera_control, a także nie mogą używać mode=4k. W przypadku zawierania wideo referencyjnego, generate_audio musi być ustawione na false.
Wideo referencyjne i edycja wideo (video_list)
video_list służy do przekazywania referencyjnych filmów, jest to najczęściej używany scenariusz w tej funkcjonalności, elementy tablicy mają następujące pola:
video_url: link do referencyjnego filmu, nie może być pusty. Maksymalnie 1 film MP4/MOV, rozmiar pliku ≤200MB, liczba klatek na sekundę 24–60fps.kling-o1wymaga długości 3–10 sekund, szerokości i wysokości od 700 do 2160px;kling-v3-omniwymaga długości 3–15,5 sekundy, szerokości i wysokości od 700 do 4553px, całkowite piksele ≤8,294,400, proporcja szerokości do wysokości 0,4–2.refer_type: typ referencji, opcjonalniebase(domyślnie, podstawowy film do edycji, czyli “bezpośrednia edycja filmu”, można dodawać/usuwać/modyfikować elementy, zmieniać kompozycję, styl, kolor, pogodę itp.) lubfeature(referencja cech, odniesienie do stylu / ruchu kamery / kontynuacji następnej sceny).keep_original_sound: czy zachować oryginalny dźwięk wideo, opcjonalnieyes(zachować) lubno(usunąć).
Uwaga: gdy istnieje referencyjny film,Przykład CURL do edycji istniejącego filmu (zmiana stylu na anime) wygląda następująco:generate_audiomusi być ustawione nafalse. Filmy zrefer_type=basenie mogą mieć określonej pierwszej/ostatniej klatki.
Referencje wieloobrazowe (image_list)
image_list służy do przekazywania referencyjnych obrazów (elementy / sceny / styl itp.), elementy tablicy mają następujące pola:
image_url: link do referencyjnego obrazu, nie może być pusty. Wymagania: format .jpg/.jpeg/.png; rozmiar pliku ≤10MB; najkrótszy bok ≥300px; proporcja szerokości do wysokości 1:2.5 ~ 2.5:1.type: opcjonalnie. Jeśli nie jest podany, traktowany jako czysty obraz referencyjny; podaniefirst_frame/end_frametraktowane jest odpowiednio jako pierwsza/ostatnia klatka (równoważnestart_image_url/end_image_url).
prompt odwołać się do <<<image_1>>>, <<<image_2>>>. Ograniczenie liczby: gdy nie ma referencyjnego filmu, obrazy referencyjne ≤ 7; gdy istnieje referencyjny film, obrazy referencyjne ≤ 4. Można również bezpośrednio użyć start_image_url / end_image_url, gdy przekazywane są tylko pierwsza/ostatnia klatka, ale ostatnia klatka musi być używana razem z pierwszą klatką.
Uwaga: jeśli jednocześnie przekazywane sąPrzykład CURL do generowania wideo z referencjami wieloobrazowymi:start_image_url/end_image_urlorazimage_list, pierwsza/ostatnia klatka będzie znajdować się przedimage_list, co może wpłynąć na odpowiedniość numerów<<<image_N>>>. Zaleca się wybór jednej opcji: gdy potrzebne są pierwsza/ostatnia klatka, należy bezpośrednio wimage_listużyćtype, nie mieszając zstart_image_url/end_image_url.
Asynchroniczne powiadomienia
Ponieważ czas generacji wideo przez API Kling 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 powiadomień. Cały proces wygląda następująco: klient inicjuje żądanie, dodatkowo określając polecallback_url, po wysłaniu żądania API natychmiast zwraca wynik, zawierający pole task_id, które reprezentuje aktualny identyfikator 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 jego identyfikatorem.
Poniżej przedstawiamy przykład, aby zrozumieć, jak to działa.
Najpierw, Webhook to usługa, która może odbierać żądania HTTP, deweloperzy powinni zastąpić to URL swojego serwera HTTP. W tym celu, dla wygody demonstracji, używamy publicznej strony przykładowej Webhook https://webhook.site/, otwierając tę stronę można uzyskać URL Webhook, jak pokazano na obrazku:
Skopiuj ten URL, aby użyć go jako Webhook, przykładowy URL to https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3.
Następnie możemy ustawić pole callback_url na powyższy URL Webhook, a także wypełnić odpowiednie parametry, szczegóły jak na obrazku:

https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3 zobaczyć wynik generacji wideo, jak pokazano na obrazku:
Zawartość jest następująca:
task_id, a pozostałe pola są podobne do wcześniej opisanych, dzięki temu pole można wykorzystać do powiązania zadań.
Obsługa błędów
Podczas wywoływania API, jeśli wystąpią błędy, 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 autoryzacji.429 too_many_requests: Zbyt wiele żądań, przekroczono limit.500 api_error: Błąd wewnętrzny serwera, coś poszło nie tak na serwerze.

