curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v3",
"prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9"
}'
import requests
url = "https://api.apimart.ai/v1/videos/generations"
payload = {
"model": "kling-v3",
"prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/videos/generations";
const payload = {
model: "kling-v3",
prompt: "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
mode: "std",
duration: 5,
aspect_ratio: "16:9"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.apimart.ai/v1/videos/generations"
payload := map[string]interface{}{
"model": "kling-v3",
"prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.apimart.ai/v1/videos/generations";
String payload = """
{
"model": "kling-v3",
"prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://api.apimart.ai/v1/videos/generations";
$payload = [
"model" => "kling-v3",
"prompt" => "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode" => "std",
"duration" => 5,
"aspect_ratio" => "16:9"
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://api.apimart.ai/v1/videos/generations")
payload = {
model: "kling-v3",
prompt: "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
mode: "std",
duration: 5,
aspect_ratio: "16:9"
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://api.apimart.ai/v1/videos/generations")!
let payload: [String: Any] = [
"model": "kling-v3",
"prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://api.apimart.ai/v1/videos/generations";
var payload = @"{
""model"": ""kling-v3"",
""prompt"": ""A golden cat running on a sunlit meadow, slow motion, cinematic quality"",
""mode"": ""std"",
""duration"": 5,
""aspect_ratio"": ""16:9""
}";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_xxxxxxxxxx"
}
]
}
{
"error": {
"code": 400,
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Invalid authentication credentials",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Insufficient balance. Please top up your account",
"type": "payment_required"
}
}
{
"error": {
"code": 429,
"message": "Rate limit exceeded. Please try again later",
"type": "rate_limit_error"
}
}
{
"error": {
"code": 500,
"message": "Internal server error. Please try again later",
"type": "server_error"
}
}
Kling v3
Kling v3 Videogenerierung
- Asynchroner Verarbeitungsmodus, gibt eine Task-ID für nachfolgende Abfragen zurück
- Unterstützt Text-to-Video und Image-to-Video (Erstbild-/Erst-Letzt-Bild-Steuerung)
- Unterstützt Standardmodus (720P), Profimodus (1080P) und 4K-Modus
- Unterstützt Videodauern von 3 bis 15 Sekunden
- Unterstützt die Generierung von Videos mit Audio
POST
/
v1
/
videos
/
generations
curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v3",
"prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9"
}'
import requests
url = "https://api.apimart.ai/v1/videos/generations"
payload = {
"model": "kling-v3",
"prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/videos/generations";
const payload = {
model: "kling-v3",
prompt: "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
mode: "std",
duration: 5,
aspect_ratio: "16:9"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.apimart.ai/v1/videos/generations"
payload := map[string]interface{}{
"model": "kling-v3",
"prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.apimart.ai/v1/videos/generations";
String payload = """
{
"model": "kling-v3",
"prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://api.apimart.ai/v1/videos/generations";
$payload = [
"model" => "kling-v3",
"prompt" => "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode" => "std",
"duration" => 5,
"aspect_ratio" => "16:9"
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://api.apimart.ai/v1/videos/generations")
payload = {
model: "kling-v3",
prompt: "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
mode: "std",
duration: 5,
aspect_ratio: "16:9"
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://api.apimart.ai/v1/videos/generations")!
let payload: [String: Any] = [
"model": "kling-v3",
"prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://api.apimart.ai/v1/videos/generations";
var payload = @"{
""model"": ""kling-v3"",
""prompt"": ""A golden cat running on a sunlit meadow, slow motion, cinematic quality"",
""mode"": ""std"",
""duration"": 5,
""aspect_ratio"": ""16:9""
}";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_xxxxxxxxxx"
}
]
}
{
"error": {
"code": 400,
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Invalid authentication credentials",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Insufficient balance. Please top up your account",
"type": "payment_required"
}
}
{
"error": {
"code": 429,
"message": "Rate limit exceeded. Please try again later",
"type": "rate_limit_error"
}
}
{
"error": {
"code": 500,
"message": "Internal server error. Please try again later",
"type": "server_error"
}
}
curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v3",
"prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9"
}'
import requests
url = "https://api.apimart.ai/v1/videos/generations"
payload = {
"model": "kling-v3",
"prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/videos/generations";
const payload = {
model: "kling-v3",
prompt: "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
mode: "std",
duration: 5,
aspect_ratio: "16:9"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.apimart.ai/v1/videos/generations"
payload := map[string]interface{}{
"model": "kling-v3",
"prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.apimart.ai/v1/videos/generations";
String payload = """
{
"model": "kling-v3",
"prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://api.apimart.ai/v1/videos/generations";
$payload = [
"model" => "kling-v3",
"prompt" => "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode" => "std",
"duration" => 5,
"aspect_ratio" => "16:9"
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://api.apimart.ai/v1/videos/generations")
payload = {
model: "kling-v3",
prompt: "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
mode: "std",
duration: 5,
aspect_ratio: "16:9"
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://api.apimart.ai/v1/videos/generations")!
let payload: [String: Any] = [
"model": "kling-v3",
"prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://api.apimart.ai/v1/videos/generations";
var payload = @"{
""model"": ""kling-v3"",
""prompt"": ""A golden cat running on a sunlit meadow, slow motion, cinematic quality"",
""mode"": ""std"",
""duration"": 5,
""aspect_ratio"": ""16:9""
}";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_xxxxxxxxxx"
}
]
}
{
"error": {
"code": 400,
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Invalid authentication credentials",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Insufficient balance. Please top up your account",
"type": "payment_required"
}
}
{
"error": {
"code": 429,
"message": "Rate limit exceeded. Please try again later",
"type": "rate_limit_error"
}
}
{
"error": {
"code": 500,
"message": "Internal server error. Please try again later",
"type": "server_error"
}
}
Autorisierung
string
erforderlich
Alle API-Endpunkte erfordern eine Authentifizierung per Bearer TokenAPI-Schlüssel abrufen:Besuchen Sie die Seite zur API-Schlüsselverwaltung, um Ihren API-Schlüssel zu erhaltenFügen Sie ihn dem Anfrage-Header hinzu:
Authorization: Bearer YOUR_API_KEY
Anfrageparameter
string
erforderlich
Name des VideogenerierungsmodellsUnterstützte Modelle:
kling-v3— Kling v3 (empfohlen)
boolean
Standard:"false"
Legt fest, ob der Inhalt vor dem Absenden des Videoauftrags moderiert wird.
true: Prompts und Eingabebilder mitomni-moderation-latestprüfenfalseoder nicht angegeben: keine Moderationsanfrage und damit keine zusätzlichen Moderationskosten oder Verzögerung (Standard)
string
erforderlich
TextpromptBeschreiben Sie Szenen, Aktionen und Stile detailliert für bessere Generierungsergebnisse. Englische Prompts werden empfohlen.Beispiel:
"a golden retriever running on the beach, sunset, cinematic"string
Negativer Prompt, um unerwünschte Inhalte auszuschließenBeispiel:
"blurry, low quality, distorted"string
Standard:"std"
GenerierungsmodusOptionen:
std— Standardmodus (720P)pro— Profimodus (1080P)4k— 4K-Modus
stdinteger
Standard:"5"
Standard:
5
Videodauer (Sekunden)Bereich: 3–15 (mindestens 3 Sekunden, maximal 15 Sekunden)⚠️ Hinweis: Muss eine einfache Zahl sein (z. B. 6), keine Anführungszeichen, sonst tritt ein Fehler aufstring
Standard:"16:9"
Seitenverhältnis des VideosOptionen:
16:9— Querformat9:16— Hochformat1:1— Quadrat
16:9array<url>
Array mit Bild-URLs für die Image-to-Video-Generierung
- 1 Bild übergeben: wird als erstes Bild verwendet
- 2 Bilder übergeben: werden automatisch als erstes Bild + letztes Bild zugewiesen
["https://example.com/first.jpg"]- Maximal 2 Bilder unterstützt
- Bild-URLs müssen öffentlich zugänglich sein, ohne Hotlink-Schutz
- Im Image-to-Video-Modus kann
aspect_ratiodurch das tatsächliche Seitenverhältnis des Bildes überschrieben werden
boolean
Ob ein Wasserzeichen hinzugefügt werden soll
boolean
Standard:"false"
Ob das Video mit Audio generiert werden soll
boolean
Standard:"false"
Ob der Multi-Shot-Modus aktiviert werden soll.
truefalse
string
Methode zur Shot-Aufteilung:
customize / intelligence.Erforderlich, wenn multi_shot=true.array<object>
Informationen pro Shot, z. B. Prompt und Dauer.Definieren Sie Reihenfolge, Prompt und Dauer der Shots über Erforderlich, wenn
index, prompt und duration.- Unterstützt 1 bis 6 Shots
- Maximale Inhaltslänge pro Shot: 512
- Jede Shot-Dauer muss >= 1 sein und darf die Gesamtdauer der Aufgabe nicht überschreiten
- Die Summe aller Shot-Dauern muss der
durationauf oberster Ebene entsprechen
"multi_prompt": [
{ "index": 1, "prompt": "string", "duration": 5 },
{ "index": 2, "prompt": "string", "duration": 5 }
]
multi_shot=true und shot_type=customize.array<object>
Liste der Referenzsubjekte, bis zu 3 Subjekte.Hinweise:
- Werden direkt über
name,description,element_input_urlserstellt
[
{
"name": "element_dog",
"description": "a golden retriever, fluffy fur, friendly expression",
"element_input_urls": [
"https://example.com/image1.png",
"https://example.com/image2.png"
]
},
{
"name": "element_cat",
"description": "an orange tabby cat, round face, bright eyes",
"element_input_urls": [
"https://example.com/image1.png",
"https://example.com/image2.png"
]
}
]
- Für die direkte Erstellung sind
name,descriptionundelement_input_urlserforderlich element_input_urls: 2–4 Bilder pro Subjekt (erstes Bild als Frontalansicht, restliche als Referenzen)- Verweisen Sie im
promptmit@nameauf Elemente, z. B."@element_dog chasing @element_cat on grass"
Parameter-Einschränkungen
mode=4kwird fürkling-v3unterstütztimage_urlsunterstützt bis zu 2 Bilder (1 erstes Bild, 2 erstes + letztes Bild)- Eingabe nur des letzten Bildes ist ungültig (muss das erste Bild enthalten)
- Bei
multi_shot=truekann derpromptauf oberster Ebene weggelassen werden multi_promptunterstützt bis zu 6 Shots, wobeiindexbei 1 beginnen und fortlaufend sein muss
Funktions-Support-Matrix
| Typ | Funktion | std 5s | std 10s | std 15s | pro 5s | pro 10s |
|---|---|---|---|---|---|---|
| Text-to-Video | Generierung | ✅ | ✅ | ✅ | ✅ | ✅ |
| Image-to-Video | Generierung | ✅ | ✅ | ✅ | ✅ | ✅ |
| Image-to-Video | Erstes Bild | ✅ | ✅ | ✅ | ✅ | ✅ |
| Image-to-Video | Letztes Bild | ✅ | ✅ | ✅ | ✅ | ✅ |
Text-zu-Video (Text-to-Video) vs Bild-zu-Video (Image-to-Video)
Das System bestimmt den Modus automatisch anhand der Bereitstellung vonimage_urls: ohne Bilder bedeutet Text-to-Video, mit Bildern bedeutet Image-to-Video.
| Parameter | Text-to-Video | Image-to-Video |
|---|---|---|
prompt | ✅ Erforderlich | ✅ Erforderlich |
image_urls | ❌ Nicht verwendet | ✅ Erforderlich (1–2 Bilder) |
negative_prompt | ✅ Optional | ✅ Optional |
mode | ✅ Optional | ✅ Optional |
duration | ✅ Optional (3–15) | ✅ Optional (3–15) |
aspect_ratio | ✅ Optional | ⚠️ Kann durch das Bildverhältnis überschrieben werden |
watermark | ✅ Optional | ✅ Optional |
audio | ✅ Optional | ✅ Optional |
Antwort
integer
Statuscode der Antwort, 200 bei Erfolg
array
Anwendungsfälle
Fall 1: Text-zu-Video (Standardmodus)
{
"model": "kling-v3",
"prompt": "A golden cat running on a sunlit meadow, slow motion, cinematic quality",
"mode": "std",
"duration": 5,
"aspect_ratio": "16:9"
}
Fall 2: Text-zu-Video (Pro-Modus + Negativer Prompt)
{
"model": "kling-v3",
"prompt": "Tokyo Shibuya crossing at night, neon lights reflected on wet ground, people walking with umbrellas",
"negative_prompt": "blurry, low quality, distorted",
"mode": "pro",
"duration": 10,
"aspect_ratio": "16:9"
}
Fall 3: Text-zu-Video (15 Sekunden)
{
"model": "kling-v3",
"prompt": "a time-lapse of a flower blooming in a garden",
"duration": 15,
"aspect_ratio": "16:9"
}
Fall 4: Bild-zu-Video (Erstes Bild)
{
"model": "kling-v3",
"prompt": "the cat slowly walks forward and looks around",
"image_urls": ["https://example.com/cat.jpg"],
"mode": "std",
"duration": 5
}
Fall 5: Bild-zu-Video (Steuerung erstes + letztes Bild)
{
"model": "kling-v3",
"prompt": "smooth cinematic transition",
"image_urls": [
"https://example.com/frame-start.jpg",
"https://example.com/frame-end.jpg"
],
"mode": "std",
"duration": 5
}
Fall 6: Video mit Audio generieren
{
"model": "kling-v3",
"prompt": "A rock singer singing on this stage, concert scene, flashing lights",
"audio": true,
"mode": "std",
"duration": 5
}
Fall 7: Multi-Shot-Storyboard (customize, 15 Sekunden, Hochformat mit Audio)
{
"model": "kling-v3",
"multi_prompt": [
{
"index": 1,
"prompt": "Two friends talking under a streetlight at night. Warm glow, casual poses, no dialogue.",
"duration": 2
},
{
"index": 2,
"prompt": "A runner sprinting through a forest, leaves flying. Low-angle shot, focus on movement.",
"duration": 3
},
{
"index": 3,
"prompt": "A woman hugging a cat, smiling. Soft sunlight, cozy home setting, emphasize warmth.",
"duration": 3
},
{
"index": 4,
"prompt": "A door creaking open, shadowy hallway. Dark tones, minimal details, eerie mood.",
"duration": 3
},
{
"index": 5,
"prompt": "A man slipping on a banana peel, shocked expression. Exaggerated pose, bright colors.",
"duration": 3
},
{
"index": 6,
"prompt": "A sunset over mountains, small figure walking away. Wide angle, peaceful atmosphere.",
"duration": 1
}
],
"multi_shot": true,
"shot_type": "customize",
"duration": 15,
"mode": "pro",
"audio": true,
"aspect_ratio": "9:16"
}
Aufgabenergebnisse abfragenDie Videogenerierung ist eine asynchrone Aufgabe, die bei der Einreichung eine
task_id zurückgibt. Verwenden Sie den Endpunkt Aufgabenstatus abrufen, um Fortschritt und Ergebnis abzufragen.