curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v4-flash",
"prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/videos/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "kling-v4-flash",
"prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16"
}
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/videos/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "kling-v4-flash",
prompt: "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
duration: 5,
resolution: "720p",
aspect_ratio: "9:16"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
Kling V4 Flash
Kling V4 Flash Videogenerierung
Textgenerierung, ein einzelnes Startbild, Bild-/Videoreferenzen, Bearbeitung und Verlängerung. Nur 720p, 3–20 generierte Sekunden, 24fps.
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-v4-flash",
"prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/videos/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "kling-v4-flash",
"prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16"
}
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/videos/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "kling-v4-flash",
prompt: "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
duration: 5,
resolution: "720p",
aspect_ratio: "9:16"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
Dieser Endpunkt arbeitet asynchron. Verwenden Sie nach dem Absenden die zurückgegebene
task_id mit GET /v1/tasks/{task_id}, um Status und Ergebnis abzufragen.curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "kling-v4-flash",
"prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/videos/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "kling-v4-flash",
"prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16"
}
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/videos/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "kling-v4-flash",
prompt: "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
duration: 5,
resolution: "720p",
aspect_ratio: "9:16"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
Modusauswahl
Alle fünf Modi verwenden denselben Modellnamenkling-v4-flash. Der Modus wird anhand der übergebenen Medien und von omni_reference_task_type ausgewählt.
| Modus | Eingabe |
|---|---|
| Text-zu-Video | Keine Bilder, Videos oder Audiodateien übergeben |
| Bild-zu-Video | Genau ein Startbild über first_frame_image, first_frame in image_with_roles oder das einzige Bild in image_urls |
| Referenzbasierte Generierung | video_urls oder reference_image in image_with_roles angeben; alternativ explizit omni_reference_task_type: "reference" setzen |
| Videobearbeitung | omni_reference_task_type: "edit" setzen und ein Eingabevideo übergeben |
| Videoverlängerung | omni_reference_task_type: "extend" setzen und ein Eingabevideo übergeben |
omni_reference_task_type ist standardmäßig auto, gleichbedeutend mit dem Weglassen des Feldes. Bei explizitem reference werden Bilder in image_urls als Referenzbilder behandelt.
Wird nur
video_url ohne edit oder extend übergeben, liefert die Anfrage HTTP 400. Verwenden Sie video_urls, um ein Video als Referenz zu übergeben.Anfrage-Header
string
erforderlich
Bearer-Authentifizierung:
Bearer <token>, wobei <token> Ihr APIMart API Key ist.Anfrageparameter
string
erforderlich
Muss
kling-v4-flash sein.string
Den gewünschten Inhalt beschreiben. Nur bei Bild-zu-Video optional, sonst erforderlich. Referenzen mit
@Image1 / @Video1 gemäß Array-Reihenfolge ab 1 ansprechen. Beim Bearbeiten ist das Eingabevideo @Video1, Referenzbilder sind @Image1, @Image2 usw.integer
Ganze Sekunden von
3 bis 20, normalerweise Standard 5. Bei Bearbeitung ohne Angabe wird die Eingabedauer aufgerundet; bei Verlängerung ist dies die Länge des neuen Abschnitts. Explizites 0 ergibt HTTP 400, null entspricht einer fehlenden Angabe. Abgerechnet wird diese Ganzzahl; die Datei kann etwa einen Frame länger sein.integer
Alias für
duration mit denselben Regeln. Werden beide angegeben, müssen beide Werte im Bereich 3–20 liegen und identisch sein. Andernfalls HTTP 400.string
Standard:"720p"
Nur
720p, zugleich der Standard. 1080p ergibt HTTP 400. Die Auswahl einer Stufe mit mode wird nicht unterstützt.string
Textgenerierung, Referenzgenerierung und Bearbeitung unterstützen
16:9, 9:16, 1:1 und 21:9; auto gilt nur für Referenzgenerierung. Bildgenerierung akzeptiert weder aspect_ratio noch size: Nicht leere Werte führen zu HTTP 400, eine leere Zeichenfolge gilt als weggelassen. Für ein anderes Verhältnis das Startbild vorab zuschneiden.| Modus | Standardverhalten |
|---|---|
| Text-zu-Video | 16:9 |
| Bild-zu-Video | aspect_ratio / size weglassen; folgt dem Startbild. Für ein anderes Verhältnis vorab zuschneiden |
| Referenzbasierte Generierung | auto |
| Videobearbeitung | Folgt dem Eingabevideo |
| Videoverlängerung | Dieses Feld wird nicht unterstützt; das ursprüngliche Seitenverhältnis bleibt erhalten |
string[]
Bild-zu-Video akzeptiert genau ein Startbild; zwei Bilder ergeben HTTP 400. Referenzgenerierung und Bearbeitung verwenden bis zu 10 Referenzbilder. Für reine Bildreferenzen
omni_reference_task_type: "reference" explizit setzen. Alle URLs müssen öffentlich erreichbar sein. Start- und Referenzbilder müssen jeweils mindestens 300px breit und hoch sein. Das Verhältnis Breite:Höhe muss zwischen 2:5 und 5:2 liegen. Ungültige Bilder führen bei der Übermittlung zu HTTP 400 ohne Berechnung.object[]
Jedes Element enthält
url und role. Bild-zu-Video akzeptiert genau ein first_frame; Referenzgenerierung und Bearbeitung nutzen reference_image. End- und Zwischenbilder sind nicht unterstützt. Maximal 10 Referenzbilder und insgesamt 15 Medien einschließlich Referenzvideos. Start- und Referenzbilder müssen jeweils mindestens 300px breit und hoch sein. Das Verhältnis Breite:Höhe muss zwischen 2:5 und 5:2 liegen. Ungültige Bilder führen bei der Übermittlung zu HTTP 400 ohne Berechnung.string
URL des Startbilds für Bild-zu-Video. Auch als
first_frame in image_with_roles oder als erstes Bild in image_urls übergebbar. Start- und Referenzbilder müssen jeweils mindestens 300px breit und hoch sein. Das Verhältnis Breite:Höhe muss zwischen 2:5 und 5:2 liegen. Ungültige Bilder führen bei der Übermittlung zu HTTP 400 ohne Berechnung.string[]
Bis zu 5 Referenzvideos mit zusammen höchstens 20 Sekunden. Überschreitungen ergeben HTTP 400; es wird nicht gekürzt. Bei Bearbeitung oder Verlängerung kann genau ein Eintrag
video_url ersetzen, wenn der entsprechende Aufgabentyp explizit angegeben wird.Referenzvideos müssen MP4 / MOV sein und sowohl in der Breite als auch in der Höhe innerhalb von 700–4553px liegen. Die Dauer wird anhand des Videostreams, nicht des Containers bestimmt: mindestens 3 Sekunden je Clip, zusammen höchstens 20 Sekunden. Jeder Referenzclip unter 3 Sekunden führt bei der Übermittlung zu HTTP 400 ohne Berechnung.string
Eingabevideo für Bearbeitung oder Verlängerung. Erfordert explizit
omni_reference_task_type: "edit" oder "extend", sonst HTTP 400. Bearbeitungseingaben müssen 3–20 Sekunden lang sein. Kürzere oder längere Videos werden ohne Kosten abgelehnt.Bearbeitung akzeptiert MP4 / MOV mit Breite und Höhe jeweils innerhalb von 700–4553px. Die Grenze von 3–20 Sekunden bezieht sich auf den Videostream, nicht auf den Container. Ungültiges Format, ungültige Breite, Höhe oder Bearbeitungsdauer führen bei der Übermittlung zu HTTP 400 ohne Berechnung.Für Eingaben zur Verlängerung gelten weder der Höhenbereich noch die Mindestdauer von 3 Sekunden der Bearbeitung. Beispielsweise lässt sich ein 2 Sekunden langes 480p-Video verlängern.string
Standard:"auto"
Unterstützt
auto, reference, edit und extend.auto: Wählt anhand der Medien Text-zu-Video, Bild-zu-Video oder referenzbasierte Generierung; entspricht dem Weglassen des Feldes.reference: Referenzbasierte Generierung; Bilder inimage_urlswerden als Referenzen behandelt.edit: Videobearbeitung; erfordert ein Eingabevideo.extend: Videoverlängerung; erfordert ein Eingabevideo.
string
Für Referenzgenerierung mit Video:
origin behält den Ton des ersten Referenzvideos bei; auto erzeugt neuen Ton und ist der Standard. origin benötigt ein Referenzvideo. Hat das erste Referenzvideo keine Tonspur, hat auch die Ausgabe keine. Bearbeitung erzeugt neuen Ton und behält den Originalton nicht bei; diesen Parameter bei Bearbeitungsanfragen weglassen. Verlängerung unterstützt ihn nicht.Ausgabegröße und Bildrate
Die Ausgabe nutzt die Stufe720p; die tatsächlichen Pixelmaße hängen vom Seitenverhältnis ab. Die Bildrate beträgt 24fps. Die Datei kann etwa einen Frame länger als duration sein, z. B. rund 3.04 Sekunden bei einer Anfrage über 3 Sekunden.
| Seitenverhältnis / Modus | Tatsächliche Pixelmaße |
|---|---|
16:9 | 1280×720 |
9:16 | 720×1280 |
1:1 | 960×960 |
21:9 | 1464×628 |
| Bildgenerierung | Folgt dem Startbild, insgesamt ca. 0.92MP; ein Startbild mit 1:2.5 ergibt 604×1516 |
Anfragebeispiele
Die folgenden Medien-URLs sind Platzhalter. Ersetzen Sie diese durch echte, öffentlich erreichbare URLs.Bild-zu-Video: ein einzelnes Startbild
{
"model": "kling-v4-flash",
"image_urls": [
"https://example.com/start.png"
]
}
prompt ist optional. Endbilder, Zwischenbilder oder ein zweites Bild werden nicht unterstützt.
aspect_ratio / size weglassen; folgt dem Startbild. Für ein anderes Verhältnis vorab zuschneiden.
Start- und Referenzbilder müssen jeweils mindestens 300px breit und hoch sein. Das Verhältnis Breite:Höhe muss zwischen 2:5 und 5:2 liegen. Ungültige Bilder führen bei der Übermittlung zu HTTP 400 ohne Berechnung.
Referenzbasierte Generierung
{
"model": "kling-v4-flash",
"prompt": "The girl in @Image1 runs along the beach with the camera movement from @Video1.",
"image_with_roles": [
{
"url": "https://example.com/girl.png",
"role": "reference_image"
}
],
"video_urls": [
"https://example.com/camera.mp4"
],
"aspect_ratio": "auto",
"duration": 5
}
audio_setting: "origin" den Ton des ersten Referenzvideos erhalten. Bei origin hat die Ausgabe keine Tonspur, wenn das erste Referenzvideo keine hat.
Start- und Referenzbilder müssen jeweils mindestens 300px breit und hoch sein. Das Verhältnis Breite:Höhe muss zwischen 2:5 und 5:2 liegen. Ungültige Bilder führen bei der Übermittlung zu HTTP 400 ohne Berechnung.
Referenzvideos müssen MP4 / MOV sein und sowohl in der Breite als auch in der Höhe innerhalb von 700–4553px liegen. Die Dauer wird anhand des Videostreams, nicht des Containers bestimmt: mindestens 3 Sekunden je Clip, zusammen höchstens 20 Sekunden. Jeder Referenzclip unter 3 Sekunden führt bei der Übermittlung zu HTTP 400 ohne Berechnung.
Videobearbeitung
{
"model": "kling-v4-flash",
"prompt": "Change the scene to a snowy winter night.",
"omni_reference_task_type": "edit",
"video_url": "https://example.com/in.mp4",
"image_urls": [
"https://example.com/style.png"
]
}
duration wird die Eingabedauer aufgerundet; ohne aspect_ratio gilt das Eingabeverhältnis. Bearbeitung erzeugt neuen Ton und erhält den Originalton nicht. audio_setting in der Anfrage weglassen.
Start- und Referenzbilder müssen jeweils mindestens 300px breit und hoch sein. Das Verhältnis Breite:Höhe muss zwischen 2:5 und 5:2 liegen. Ungültige Bilder führen bei der Übermittlung zu HTTP 400 ohne Berechnung.
Bearbeitung akzeptiert MP4 / MOV mit Breite und Höhe jeweils innerhalb von 700–4553px. Die Grenze von 3–20 Sekunden bezieht sich auf den Videostream, nicht auf den Container. Ungültiges Format, ungültige Breite, Höhe oder Bearbeitungsdauer führen bei der Übermittlung zu HTTP 400 ohne Berechnung.
Videoverlängerung
{
"model": "kling-v4-flash",
"prompt": "The camera continues moving forward as the sky grows darker.",
"omni_reference_task_type": "extend",
"video_url": "https://example.com/in.mp4",
"duration": 5
}
aspect_ratio und audio_setting werden nicht unterstützt; das ursprüngliche Seitenverhältnis bleibt erhalten.
Für Eingaben zur Verlängerung gelten weder der Höhenbereich noch die Mindestdauer von 3 Sekunden der Bearbeitung. Beispielsweise lässt sich ein 2 Sekunden langes 480p-Video verlängern.
Aufgabe abfragen
Ersetzen Sie die Aufgaben-ID in der folgenden Anfrage durch die beim Absenden zurückgegebene ID:curl --request GET \
--url 'https://api.apimart.ai/v1/tasks/<task_id>' \
--header 'Authorization: Bearer <token>'
task_id speichern und bis completed oder failed weiter abfragen. Ein 3-Sekunden-Video in 720p benötigte in Tests etwa 1–4 Minuten. Das ist ein Richtwert, keine feste Grenze zur Feststellung eines Fehlers.
Abrechnung
Abrechnung pro Sekunde; Tarife stehen unter Modellpreise. Standardgenerierung und Videoeingaben verwenden unterschiedliche Tarife.| Modus | Abgerechnete Sekunden |
|---|---|
| Text-zu-Video, Bild-zu-Video, reine Bildreferenzen | Ausgabesekunden; kling-v4-flash@720P |
| Videoverlängerung | Sekunden des neuen Abschnitts; kling-v4-flash@720P |
| Videobearbeitung, Generierung mit Referenzvideos | Ausgabesekunden + max(Ausgabesekunden, Eingabevideosekunden); kling-v4-flash@720P-input |
duration: 3 wird mit 3 + 4 = 7 Sekunden berechnet. Bearbeitung und Referenzgenerierung mit Video prüfen bei der Übermittlung Format, Breite, Höhe und Videostream-Dauer. Fehlgeschlagene Prüfung, ein anderes Format als MP4 / MOV, Breite oder Höhe außerhalb von 700–4553px, insgesamt über 20 Sekunden oder Bearbeitungseingaben unter 3 Sekunden führen zu HTTP 400 ohne Berechnung. Jeder Referenzclip wird anhand seiner Videostream-Dauer geprüft; unter 3 Sekunden führt dies bei der Übermittlung zu HTTP 400 ohne Berechnung.
Fehlgeschlagene Aufgaben werden vollständig erstattet, einschließlich von der Plattform festgestellter Zeitüberschreitungen. Das Beenden der clientseitigen Abfragen bricht die Aufgabe nicht ab. Ist sie später erfolgreich, wird sie regulär berechnet.
Nicht unterstützte Parameter
Folgende Parameter oder Werte ergeben HTTP 400:resolution: "1080p"last_frame_image,role: "last_frame",role: "keyframe"audio_urls,audio_urlmode,negative_prompt,watermark: true,audio: falsemulti_shot,multi_prompt,element_list,video_listcamera_control,voice_list
Häufige Fehler
| Fehler | Maßnahme |
|---|---|
kling-v4-flash only supports resolution 720p (got: 1080p) | 720p verwenden, nicht 1080p. |
kling-v4-flash duration must be between 3 and 20 seconds | duration / seconds als Ganzzahl von 3 bis 20 verwenden; keine 0. |
kling-v4-flash image-to-video follows the first frame's aspect ratio; remove aspect_ratio / size | aspect_ratio / size bei Bildgenerierung entfernen. Das Verhältnis folgt dem Startbild; für Änderungen vorab zuschneiden. |
kling-v4-flash first frame: image width and height must be at least 300px | Start- und Referenzbilder müssen mindestens 300px breit und hoch sein. |
kling-v4-flash first frame: image aspect ratio (width:height) must be between 2:5 and 5:2 | Ein Verhältnis Breite:Höhe zwischen 2:5 und 5:2 verwenden. |
kling-v4-flash input video #1: unsupported video format webm/mkv (supported: mp4/mov) | MP4 / MOV für Bearbeitung und Referenzvideos verwenden; WebM / MKV werden nicht unterstützt. |
kling-v4-flash input video #1: video height must be between 700 and 4553px | Bearbeitungs- und Referenzvideos benötigen Breite und Höhe jeweils innerhalb von 700–4553px. Dies gilt nicht für Eingaben zur Verlängerung. |
kling-v4-flash input video #1: video width must be between 700 and 4553px | Breite und Höhe von Bearbeitungs- und Referenzvideos müssen jeweils innerhalb von 700–4553px liegen. Auch Hochkantvideos müssen mindestens 700px breit sein. |
kling-v4-flash reference video #1 must be at least 3 seconds | Jeder Referenzclip benötigt eine Videostream-Dauer von mindestens 3 Sekunden. Kürzere Clips führen bei der Übermittlung zu HTTP 400 ohne Berechnung. |
kling-v4-flash only supports aspect_ratio 16:9, 9:16, 1:1 or 21:9 (got: auto) | Nur Referenzgenerierung unterstützt auto; bei Bildgenerierung die Verhältnisfelder weglassen. |
kling-v4-flash image-to-video only takes a first frame; last frame and keyframes are not supported | Nur ein Startbild behalten; End-/Zwischenbilder oder das zweite Bild entfernen. |
kling-v4-flash reference-to-video does not take reference audios | audio_urls / audio_url entfernen. |
kling-v4-flash video extend takes no images | Bilder und Ziel-Endbilder aus Verlängerungsanfragen entfernen. |
kling-v4-flash input videos must be at most 20 seconds in total | Referenzvideos insgesamt oder Bearbeitungseingaben dürfen 20 Sekunden nicht überschreiten. Keine automatische Kürzung. |
video edit requires an input video of at least 3 seconds | Die Videostream-Dauer der Bearbeitungseingabe muss mindestens 3 Sekunden betragen; die Container-Dauer ist nicht maßgeblich. |
video_url needs omni_reference_task_type edit ... or extend | edit / extend angeben; Referenzvideos in video_urls übergeben. |
Failed to probe the input video duration | Erreichbarkeit und gültigen Videoinhalt der URL prüfen. |
duration (3) and seconds (5) are aliases and must match | Nur einen Alias senden oder beide auf denselben Wert zwischen 3 und 20 setzen. |