Video
Kling 3.0
Generuj w Kling 3.0 3–15-sekundowe klipy z tekstu albo z pierwszej i ostatniej klatki, z opcjonalnym natywnym dźwiękiem, promptami wieloujęciowymi i elementami wielokrotnego użytku, z dostarczeniem przez zadanie.
Kling 3.0 to model generowania wideo od Kuaishou. Jedno żądanie tworzy 3–15-sekundowy klip z promptu albo z pierwszej klatki i opcjonalnej ostatniej klatki, w trzech trybach jakości (std, pro, 4K), z natywnym dźwiękiem, gdy o niego poprosisz. Klip może też być sekwencją maksymalnie pięciu ujęć, każde z własnym promptem i długością. Wyślij żądanie, zachowaj zwrócony identyfikator zadania i odczytaj gotowe wideo z tego zadania. Obrazy przekazujesz jako adresy URL.
ID modeli
| ID modelu | Dane wejściowe | Tryby | Długość |
|---|---|---|---|
kling-3-0 | tekst, pierwsza i ostatnia klatka, elementy | std, pro, 4K | 3–15 sekund |
Aktualne ceny znajdziesz na stronie modelu.
Krótki przykład
curl https://api.seedrouter.ai/v1/videos/generations \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-3-0",
"prompt": "A red paper boat drifting on a calm pond at sunrise, soft mist on the water, slow push-in, no text, no logos.",
"mode": "pro",
"duration": 5,
"aspect_ratio": "16:9"
}'Punkt końcowy
POST https://api.seedrouter.ai/v1/videos/generations| Nagłówek | Wartość |
|---|---|
| Authorization | Bearer YOUR_API_KEY |
| Content-Type | application/json |
Odpowiedź to zadanie ({"id": "task_...", "status": "processing"}), a nie gotowe wideo. Wynik odczytasz, odpytując GET /v1/tasks/{task_id}. Klucze API trzymaj w kodzie po stronie serwera.
Parametry
| Pole | Typ | Domyślnie | Uwagi |
|---|---|---|---|
model | string | wymagane | kling-3-0 |
prompt | string | wymagane przy jednym ujęciu | Do 2500 znaków. Opcjonalne w trybie wieloujęciowym. |
image_urls | array of URLs | brak | Do 2 obrazów: pierwszy to pierwsza klatka, drugi to ostatnia klatka. Bez obrazów klip powstaje z tekstu. |
mode | enum | pro | std, pro lub 4K (wielka litera K). |
duration | integer | 5 | 3–15 sekund. |
aspect_ratio | enum | 16:9 | 16:9, 9:16 lub 1:1. |
sound | boolean | false | Generuje natywny dźwięk razem z wideo. |
multi_shots | boolean | false | Tworzy klip z ujęć w multi_prompt. |
multi_prompt | array | brak | Do 5 ujęć, każde {"prompt", "duration"}: prompt o długości do 500 znaków i całkowita liczba sekund od 1 do 12. Wymagane, gdy multi_shots ma wartość true. |
kling_elements | array | brak | Do 3 elementów, każdy {"name", "description", "element_input_urls"} z 2–4 adresami URL obrazów. |
Schemat jest ścisły: nieznane pola są odrzucane, a nie ignorowane. callback_url nie jest dostępne; zamiast tego odpytuj zadanie.
Klipy wieloujęciowe
Ustaw multi_shots na true i opisz każde ujęcie w multi_prompt. Czasy trwania ujęć muszą łącznie dawać 3–15 sekund; ta suma jest długością klipu, a duration nie jest używane. prompt możesz pominąć albo użyć go do tego, co wspólne dla wszystkich ujęć.
{
"model": "kling-3-0",
"mode": "pro",
"multi_shots": true,
"multi_prompt": [
{"prompt": "A red paper boat on a calm pond at sunrise, wide shot", "duration": 3},
{"prompt": "The boat drifts under a small wooden bridge, low angle", "duration": 3}
]
}Elementy
Element to obiekt, którego spójność model zachowuje w całym klipie: osoba, produkt lub postać. Nadaj mu name, krótki description i 2–4 jego obrazy, a potem wspomnij go z nazwy w prompcie (na przykład @hero).
{
"model": "kling-3-0",
"prompt": "@hero slowly turns toward the camera in soft window light",
"kling_elements": [
{
"name": "hero",
"description": "a young woman with short black hair and a yellow raincoat",
"element_input_urls": ["https://example.com/hero-front.png", "https://example.com/hero-side.png"]
}
]
}Dane wejściowe multimediów
Każdy obraz to publiczny adres URL HTTP(S). Dane base64 (data URI) nie są przyjmowane: prześlij plik do własnego magazynu i przekaż jego adres URL. Używaj obrazów JPG lub PNG o rozmiarze do 10 MB.
Czynniki wpływające na koszt
Aktualne stawki znajdziesz w sekcji cen modelu. Kling 3.0 jest rozliczany za sekundę wideo według stawki zależnej od trybu i od tego, czy sound jest włączone:
billed seconds = duration (single shot)
billed seconds = Σ multi_prompt[].duration (multi_shots: true)
cost = billed seconds × rate per secondNaliczane sekundy są znane w chwili przyjęcia żądania, więc zarezerwowana kwota jest kwotą naliczoną. Ostateczne opłaty zobaczysz w historii zużycia swojego konta. Nieudane zadania nie są naliczane.
Schemat odpowiedzi
Wysłanie zwraca zadanie:
{"id": "task_...", "model": "kling-3-0", "status": "processing", "created_at": 1789689600}Pobieranie zadania
GET https://api.seedrouter.ai/v1/tasks/{task_id}Odpytuj co 10–20 sekund, aż status przyjmie wartość completed lub failed. Przekroczenie limitu czasu sieci podczas odpytywania nie oznacza, że generowanie się nie powiodło: zachowaj identyfikator zadania i wznów sprawdzanie. Nie twórz kolejnego zadania, aby sprawdzić postęp.
Zadanie zakończone
{
"id": "task_...",
"model": "kling-3-0",
"status": "completed",
"created_at": 1789689600,
"finished_at": 1789689710,
"output": {
"video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4"
}
}W naszych testach 3-sekundowy klip std wrócił jako MP4 (H.264) w rozdzielczości 1280 × 720, a 5-sekundowy klip pro z sound w 1920 × 1080 ze ścieżką audio, każdy po około dwóch–trzech minutach.
Błędy
Żądania odrzucone przed utworzeniem zadania zwracają błąd HTTP wraz z obiektem error i nie są naliczane. Zadanie, które zawiodło po przyjęciu, przy odpytaniu zwraca HTTP 200 z status: "failed" i obiektem error.
Kody, statusy HTTP i wskazówki dotyczące ponawiania znajdziesz we wspólnym katalogu błędów.
{
"id": "task_...",
"model": "kling-3-0",
"status": "failed",
"error": {
"code": 60001,
"message": "The request was rejected by the content policy. Please revise the prompt or input images."
}
}Jeśli limit czasu został przekroczony przy samym wysyłaniu, przed ponownym wysłaniem sprawdź swoje zadania: pierwsze żądanie mogło już zostać przyjęte.
Wskazówki
- Opisz obiekt, miejsce, ruch kamery i światło, każde w jednym zdaniu; Kling stosuje się do języka operatorskiego, takiego jak „powolny najazd” czy „żabia perspektywa”.
- Przygotuj wersję roboczą w
std, a potem wyrenderuj finalne ujęcie wprolub4Ktym samym żądaniem. - Użyj pierwszej i ostatniej klatki, aby kontrolować, gdzie ujęcie się zaczyna i kończy.
- Dziel scenę na ujęcia za pomocą
multi_prompt, zamiast opisywać kilka cięć w jednym prompcie. - Dodaj
no text, no logos, aby w kadrze nie pojawiały się wymyślone oznaczenia.
