Kling 3.0 Motion Control od Kuaishou przenosi ruch z nagrania referencyjnego na postać ze zdjęcia. Nagrywasz taniec, gest albo chód, dodajesz zdjęcie bohatera i dostajesz klip, w którym on wykonuje ten sam ruch. W Jantarisie orientacja postaci wynika ze zdjęcia, więc nagranie może mieć 3-10 sekund. Tryb z orientacją z wideo (nagranie do 30 s) producent oferuje, ale Jantaris jeszcze go nie udostępnia. Jakość to std lub pro. Wersja 3 lepiej trzyma wygląd postaci niż tańszy Kling 2.6 Motion Control.
Do czego się nadaje
- Trendy taneczne na TikToku z postacią z ilustracji lub maskotką marki
- Teledysk, w którym awatar powtarza ruchy wokalisty
- Reklama z postacią z packshotu wykonującą gest z nagrania
- Animacja bohatera gry lub komiksu na podstawie Twojego ruchu
Jak pisać prompty
- Zdjęcie postaci powinno pokazywać całą sylwetkę w podobnej pozie jak start nagrania.
- Nagrywaj na jednolitym tle, z całą postacią w kadrze i bez szybkich cięć.
- Prompt traktuj pomocniczo: opisz tło, światło i nastrój, ruch bierze się z wideo.
- Plik referencyjny to MP4 lub MOV do 100 MB.
FAQ
Ile kosztuje Kling 3.0 Motion Control?
Stawka to 1,44 zł za sekundę (liczone od długości nagrania źródłowego), z VAT. Nieudane generacje nie są płatne.
Jak długie może być nagranie ruchu?
W Jantarisie 3-10 sekund, bo orientacja postaci wynika ze zdjęcia. Dłuższe nagrania (do 30 s, z orientacją z wideo) nie są jeszcze dostępne.
Czym różni się od Kling 2.6 Motion Control?
Wersja 3 daje wyższą wierność i lepszą spójność postaci, 2.6 ma niższą stawkę za sekundę. Oba modele wypróbujesz w Jantaris Studio, a pola API opisuje dokumentacja.
Jak wywołać Kling 3.0 Motion Control przez API
curl https://jantaris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $JANTARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-3.0-motion-control",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"video_url": "https://example.com/input.mp4"
}
}'import os, time, requests
API = "https://jantaris.com/v1"
H = {"Authorization": f"Bearer {os.environ['JANTARIS_API_KEY']}"}
task = requests.post(f"{API}/generate", headers=H, json={
"model": "kling-3.0-motion-control",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"video_url": "https://example.com/input.mp4"
}
}).json()
while task["status"] in ("queued", "running"):
time.sleep(3)
task = requests.get(f"{API}/tasks/{task['id']}", headers=H).json()
print(task["status"], task["cost"], [o["url"] for o in task["output"]])const API = "https://jantaris.com/v1";
const headers = { Authorization: `Bearer ${process.env.JANTARIS_API_KEY}`, "Content-Type": "application/json" };
let task = await (await fetch(`${API}/generate`, {
method: "POST",
headers,
body: JSON.stringify({
"model": "kling-3.0-motion-control",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"video_url": "https://example.com/input.mp4"
}
}),
})).json();
while (task.status === "queued" || task.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
task = await (await fetch(`${API}/tasks/${task.id}`, { headers })).json();
}
console.log(task.status, task.cost, task.output.map((o) => o.url));
Parametry
| Parametr | Typ | Dozwolone | Domyślnie |
|---|---|---|---|
prompt * | string | ||
quality | string | std pro | std |
image_url | string | ||
video_url * | string |
Ten sam schemat zwraca GET /v1/models/kling-3.0-motion-control.









