> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apimart.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Kling V4 Flash Videogenerierung

> Textgenerierung, ein einzelnes Startbild, Bild-/Videoreferenzen, Bearbeitung und Verlängerung. Nur 720p, 3–20 generierte Sekunden, 24fps.

> [!NOTE]
>
> 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.

```bash cURL theme={null}
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"
  }'
```

```python Python theme={null}
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())
```

```javascript JavaScript theme={null}
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 Modellnamen `kling-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.

> [!WARNING]
>
> 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

**Authorization** `string` *required*

Bearer-Authentifizierung: `Bearer <token>`, wobei `<token>` Ihr APIMart API Key ist.

## Anfrageparameter

**model** `string` *required*

Muss `kling-v4-flash` sein.

**prompt** `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.

**duration** `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.

**seconds** `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.

**resolution** `string` (default: 720p)

Nur `720p`, zugleich der Standard. `1080p` ergibt HTTP 400. Die Auswahl einer Stufe mit `mode` wird nicht unterstützt.

**aspect\_ratio** `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 |

**image\_urls** `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.

**image\_with\_roles** `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.

**first\_frame\_image** `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.

**video\_urls** `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.

**video\_url** `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.

**omni\_reference\_task\_type** `string` (default: 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 in `image_urls` werden als Referenzen behandelt.
* `edit`: Videobearbeitung; erfordert ein Eingabevideo.
* `extend`: Videoverlängerung; erfordert ein Eingabevideo.

**audio\_setting** `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 Stufe `720p`; 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

```json theme={null}
{
  "model": "kling-v4-flash",
  "image_urls": [
    "https://example.com/start.png"
  ]
}
```

Nur ein Startbild angeben; `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

```json theme={null}
{
  "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
}
```

Maximal 10 Referenzbilder und 5 Referenzvideos, insgesamt höchstens 15 Medien. Referenzvideos dürfen zusammen maximal 20 Sekunden lang sein. Referenzaudio ist nicht unterstützt. Mit `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

```json theme={null}
{
  "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"
  ]
}
```

Der Videostream der Bearbeitungseingabe muss 3–20 Sekunden lang sein. Ohne `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

```json theme={null}
{
  "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
}
```

Erzeugt ab dem letzten Eingabeframe einen neuen Abschnitt von 3–20 Sekunden und gibt nur diesen Abschnitt ohne das Originalvideo zurück. Nur der neue Abschnitt wird berechnet. Bilder, ein Ziel-Endbild, `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:

```bash theme={null}
curl --request GET \
  --url 'https://api.apimart.ai/v1/tasks/<task_id>' \
  --header 'Authorization: Bearer <token>'
```

Den [Aufgabenstatus](https://docs.apimart.ai/de/api-reference/tasks/status.md) abfragen. `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](https://apimart.ai/pricing). 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` |

Eingabevideosekunden werden aus der Summe der Videostream-Dauern mit anschließendem Aufrunden berechnet, nicht aus Container-Dauern. Die Bearbeitung eines Videos mit 3.04 Sekunden und `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_url`
* `mode`, `negative_prompt`, `watermark: true`, `audio: false`
* `multi_shot`, `multi_prompt`, `element_list`, `video_list`
* `camera_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. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.