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

# Kling Videos Generation API Integrationsbeskrivning

> Kling video generation API guide - Ace Data Cloud

Denna artikel kommer att introducera en Kling Videos Generation API integrationsbeskrivning, som kan generera Kling officiella videor genom att ange anpassade parametrar.

## Ansökningsprocess

För att använda Kling Videos Generation API, börja med att gå till [Ace Data Cloud-konsolen](https://platform.acedata.cloud/console/applications) för att hämta din API-token, som du ska spara.

![](https://cdn.acedata.cloud/5hmkdg.jpg)

Om du inte har loggat in eller registrerat dig, kommer du automatiskt att omdirigeras till inloggningssidan för att registrera dig och logga in, och efter att ha slutfört detta kommer du automatiskt att återvända till den aktuella sidan.

**En API-token räcker för att anropa alla tjänster på plattformen, du behöver inte ansöka separat för varje tjänst.** Vid första ansökan får du en gratis kvot för att prova; om kvoten tar slut kan du ladda på allmän balans i [konsolen](https://platform.acedata.cloud/console/coin).

> 📘 Fullständig dokumentation: [Kling Videos Generation API →](https://platform.acedata.cloud/documents/kling-videos)

## Grundläggande användning

Först bör du förstå den grundläggande användningen, vilket innebär att ange en prompt `prompt`, en åtgärd `action`, en referensbild för första ramen `start_image_url` samt en modell `model`, för att få det bearbetade resultatet. Först behöver du enkelt skicka ett `action`-fält, vars värde är `text2video`, som huvudsakligen innehåller tre typer av åtgärder: text till video (`text2video`), bild till video (`image2video`), och utvidgad video (`extend`). Sedan behöver vi också ange modellen `model`, som för närvarande huvudsakligen inkluderar `kling-v1`, `kling-v1-6`, `kling-v2-master`, `kling-v2-1-master`, `kling-v2-5-turbo`, `kling-v2-6`, `kling-v3`, `kling-v3-omni`, `kling-o1`, med specifikt innehåll som följer:

<p>
  <img src="https://cdn.acedata.cloud/ke1bok.png" width="500" className="m-auto" />
</p>

Här kan vi se att vi har ställt in Request Headers, inklusive:

* `accept`: vilken format av svar du vill ta emot, här anges som `application/json`, det vill säga JSON-format.
* `authorization`: nyckeln för att anropa API:et, som kan väljas direkt efter ansökan.

Dessutom har vi ställt in Request Body, inklusive:

* `model`: modellen för att generera videon, huvudsakligen `kling-v1`, `kling-v1-6`, `kling-v2-master`, `kling-v2-1-master`, `kling-v2-5-turbo`, `kling-v2-6`, `kling-v3`, `kling-v3-omni`, `kling-o1`.
* `mode`: läget för att generera videon, valfria värden är standardläge `std`, snabbläge `pro` och ursprungligt 4K-läge `4k`. Observera att `4k` endast stöder `kling-v3` och `kling-v3-omni`, och är inkompatibelt med `camera_control` (kamerakontroll).
* `action`: åtgärden för denna videogenereringsuppgift, som huvudsakligen innehåller tre åtgärder: text till video (`text2video`), bild till video (`image2video`), och utvidgad video (`extend`).
* `start_image_url`: när bild till video-åtgärden `image2video` väljs, måste en länk till referensbilden för första ramen laddas upp.
* `end_image_url`: valfritt vid bild till video, anger sista ramen.
* `duration`: videons längd, i sekunder. `kling-v3` och `kling-v3-omni` stöder heltal mellan 3-15 sekunder; `kling-o1` stöder endast 5 sekunder; andra modeller stöder 5 eller 10 sekunder.
* `generate_audio`: om ljud ska genereras synkront, valfritt, boolean. Stöder `kling-v3`, `kling-v3-omni` och `kling-v2-6` (endast pro-läge). Standard är `false`.
* `aspect_ratio`: videons bildförhållande, valfritt, stöder `16:9`, `9:16`, `1:1`, standard är `16:9`.
* `cfg_scale`: styrkan av relevans, intervall \[0,1], ju större desto mer i linje med prompten.
* `camera_control`: valfritt, kontrollerar kamerarörelsens objektparametrar, stöder typ/simple förinställningar samt horisontell, vertikal, panorera, luta, rulla, zoom och andra konfigurationer.
* `negative_prompt`: valfritt, oönskade omvända promptord, högst 200 tecken.
* `image_list`: Omni referensbildlista, tillämplig för modellerna `kling-o1` och `kling-v3-omni`, se nedan för "Omni Allround Referens".
* `video_list`: Omni referensvideolista (stöder videoredigering), tillämplig för modellerna `kling-o1` och `kling-v3-omni`, se nedan för "Omni Allround Referens".
* `prompt`: promptord.
* `callback_url`: URL för att få tillbaka resultatet.
* `async`: valfritt, sätts till `true` för att omedelbart returnera `task_id`, utan att behöva ange `callback_url`, och sedan kan resultatet hämtas genom att fråga motsvarande uppgiftsgränssnitt.

När du har valt kan du se att motsvarande kod också har genererats till höger, som visas i bilden:

<p>
  <img src="https://cdn.acedata.cloud/3yjql0.png" width="500" className="m-auto" />
</p>

Klicka på "Try" knappen för att testa, som visas i bilden ovan, här fick vi följande resultat:

```json theme={null}
{
  "success": true,
  "video_id": "900798310464749610",
  "video_url": "https://platform2.cdn.acedata.cloud/kling/6c68c267-065b-4423-b66b-a0e4c59ee0d5.mp4",
  "duration": "5.041",
  "state": "succeed",
  "task_id": "6c68c267-065b-4423-b66b-a0e4c59ee0d5"
}
```

Det returnerade resultatet har flera fält, som beskrivs nedan:

* `success`, status för videogenereringsuppgiften.
* `task_id`, ID för videogenereringsuppgiften.
* `video_id`, video-ID för videogenereringsuppgiften.
* `video_url`, videolänk för videogenereringsuppgiften.
* `duration`, längden på videogenereringsuppgiften.
* `state`, status för videogenereringsuppgiften.

Vi kan se att vi har fått tillfredsställande videoinformation, vi behöver bara hämta den genererade Kling-videon via videolänkadressen i resultatet.

Om du vill generera motsvarande integrationskod kan du direkt kopiera den som till exempel CURL-koden nedan:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/kling/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "text2video",
  "model": "kling-v3",
  "prompt": "Vit keramik kaffekopp på glänsande marmorarbetsyta med morgonljus från fönstret. Kameran roterar långsamt 360 grader runt koppen och pausar kort vid handtaget."
}'
```

## Modellkapabilitetsmatris

Olika modeller har stor variation i stöd för parametrar. Följande matris är sammanställd från [Kling officiella video modeller dokumentation](https://app.klingai.com/global/dev/document-api/apiReference/model/videoModels), kontrollera innan anrop att den aktuella `model` / `mode` / `duration` kombinationen stöder de funktioner du behöver, annars kommer upstream att returnera fel som `model/mode/duration(...) is not supported with image_tail`.

| Modell              | Läge           | `end_image_url` (slutbild) | `generate_audio` (ljud) | `camera_control` (kamerakontroll) | Anmärkningar                                                |
| ------------------- | -------------- | -------------------------- | ----------------------- | --------------------------------- | ----------------------------------------------------------- |
| `kling-v1`          | std / pro      | ✅ Endast `duration=5`      | ❌                       | ✅ Endast `duration=5`             | `extend` stöder inte `negative_prompt` och `cfg_scale`      |
| `kling-v1-6`        | std            | ❌                          | ❌                       | ❌                                 | Flera bilder till video, `extend` tillgängligt i alla lägen |
| `kling-v1-6`        | pro            | ✅                          | ❌                       | ❌                                 |                                                             |
| `kling-v2-master`   | —              | ❌                          | ❌                       | ❌                                 | Enkelt läge, endast `duration=5/10`                         |
| `kling-v2-1-master` | —              | ❌                          | ❌                       | ❌                                 | Enkelt läge, endast `duration=5/10`                         |
| `kling-v2-5-turbo`  | std            | ❌                          | ❌                       | ❌                                 |                                                             |
| `kling-v2-5-turbo`  | pro            | ✅                          | ❌                       | ❌                                 |                                                             |
| `kling-v2-6`        | std            | ❌                          | ❌                       | ❌                                 |                                                             |
| `kling-v2-6`        | pro            | ✅                          | ✅                       | ❌                                 | Den enda modellen som samtidigt stöder ljud och inte är v3  |
| `kling-v3`          | std / pro      | ✅                          | ✅                       | ✅                                 | `duration` intervall 3–15 sekunder                          |
| `kling-v3`          | 4k             | ✅                          | ✅                       | ❌                                 | 4K-läge är inte kompatibelt med kamerakontroll              |
| `kling-v3-omni`     | std / pro / 4k | ✅                          | ✅                       | ❌                                 |                                                             |
| `kling-o1`          | std / pro      | ✅                          | ❌                       | ❌                                 | Endast stöd för `duration=5`                                |

Noteringar:

* `mode=4k` stöds endast av `kling-v3` och `kling-v3-omni`; och är ömsesidigt uteslutande med `camera_control` (kamerakontroll).
* `end_image_url` kan endast användas med `action=image2video` tillsammans med `start_image_url`. Att endast skicka `end_image_url` (utan `start_image_url`) kommer att avvisas.
* `kling-v3` / `kling-v3-omni` accepterar valfri heltal `duration` mellan 3–15 sekunder; `kling-o1` accepterar endast 5; övriga modeller accepterar endast 5 eller 10.
* `generate_audio` är som standard `false`. Endast `kling-v3`, `kling-v3-omni` och `kling-v2-6` (pro-läge) stöder det.

## Utvidgning av videofunktioner

Om du vill fortsätta generera en redan skapad Kling-video kan du ställa in parametern `action` till `extend`, och ange ID för videon som ska fortsätta genereras. Videons ID kan hämtas baserat på grundläggande användning, som visas i bilden nedan:

<p>
  <img src="https://cdn.acedata.cloud/om6p6g.png" width="500" className="m-auto" />
</p>

Då kan du se att videons ID är:

```
"video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c"
```

> Observera att videons `video_id` här är ID för den genererade videon. Om du inte vet hur man genererar en video kan du hänvisa till den grundläggande användningen ovan för att generera en video.

Därefter måste vi fylla i nästa steg med de promptord som behövs för att anpassa den genererade videon, så kan vi specificera följande innehåll:

* `model`: Modellen för att generera videon, huvudsakligen `kling-v1`, `kling-v1-5` och `kling-v1-6`.
* `mode`: Läge för att generera videon, valfria värden är standardläge `std`, snabbläge `pro` och äkta 4K-läge `4k` (endast `kling-v3` och `kling-v3-omni` stöder, och är inte kompatibelt med kamerakontroll).
* `duration`: Videons längd för denna videogenereringsuppgift, huvudsakligen 5s och 10s.
* `start_image_url`: När du väljer bild till video-åtgärden `image2video` måste du ladda upp en referensbildlänk för första bilden.
* `prompt`: Promptord.

Exempel på ifyllning:

<p>
  <img src="https://cdn.acedata.cloud/ejimqy.png" width="500" className="m-auto" />
</p>

När du har fyllt i det genereras automatiskt koden nedan:

<p>
  <img src="https://cdn.acedata.cloud/52x4u5.png" width="500" className="m-auto" />
</p>

Motsvarande Python-kod:

```python theme={null}
import requests

url = "https://api.acedata.cloud/kling/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "extend",
    "model": "kling-v1",
    "video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c",
    "prompt": "Vit keramik kaffekopp på glänsande marmorarbetsyta med morgonsolens ljus. Kameran roterar långsamt 360 grader runt koppen och pausar kort vid handtaget.",
    "duration": 10
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

När du klickar på kör kan du se att du får ett resultat som nedan:

```json theme={null}
{
  "success": true,
  "video_id": "bbc3b105-ac72-4de2-8390-0cb37dc7d41e",
  "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7822108635/extendVideo/Cjil4mfBfs0AAAAAAKhr6A-0_raw_video_1.mp4",
  "duration": "9.6",
  "state": "succeed",
  "task_id": "3ece87e6-3ee3-4f5e-bd70-5ae5eca89a23"
}
```

Det kan ses att resultatinnehållet är i linje med det ovan, vilket också uppnår videoutvidgningsfunktionen.

## Omni Allroundreferens (videoredigering / referensvideo / flera bildreferenser)

`kling-o1` och `kling-v3-omni` är två oberoende modeller, båda stöder "allroundreferens" kapacitet. Baserat på text till video (`action=text2video`) kan referensbilder eller referensvideor extra skickas in för att uppnå **flera bildreferenser, referensvideo och direkt redigering av befintliga videor**.

**Kärnavtal**: Referensmaterial måste refereras i `prompt` med formen `&lt;&lt;<image_1>>>`, `&lt;&lt;<video_1>>>` (nummer från 1) för att hänvisa till motsvarande position i `image_list` / `video_list`, annars kommer modellen inte att tillämpa dessa referenser. Om endast material skickas utan att refereras i prompten kommer materialet att ignoreras.

> Säkerhetsmeddelande: Nuvarande API öppnar inte `element_list`. Kling Element Library:s överordnade ID tillhör leverantörens kontonamnrymd, och innan en Element Management API med hyresgästisolering tillhandahålls bör kunder använda `image_list` för att skicka in huvudreferensbilder.

Omni-förfrågningar stöder inte `negative_prompt`, `cfg_scale` eller `camera_control`, och `mode=4k` kan inte användas. När referensvideo ingår måste `generate_audio` vara `false`.

### Referensvideo och videoredigering (`video_list`)

`video_list` används för att skicka in referensvideo, vilket är det vanligaste scenariot för denna funktionalitet. Fälten för arrayelementen är som följer:

* `video_url`: Referensvideolänk, får inte vara tom. Krav: format MP4/MOV; upplösning 720px–2160px; längd 3–10 sekunder; bildfrekvens 24–60fps; filstorlek ≤200MB; högst 1 video.
* `refer_type`: Referenstyp, valfri `base` (standard, **grundvideo som ska redigeras**, dvs "redigera videon direkt", kan lägga till/ta bort/ändra element, ändra komposition, byta stil, byta färg, byta väder etc.) eller `feature` (**funktionreferens**, referera till dess stil / kamerarörelse / fortsätta nästa klipp).
* `keep_original_sound`: Om den ursprungliga videoljudet ska behållas, valfri `yes` (behåll) eller `no` (ta bort).

> Observera: När referensvideo finns, måste `generate_audio` vara `false`. Videon med `refer_type=base` får inte ange första bild / sista bild.

Exempel på CURL för att redigera en befintlig video (ändra videon till anime-stil):

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/kling/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "text2video",
  "model": "kling-o1",
  "mode": "std",
  "duration": 5,
  "prompt": "Ändra <<<video_1>>> till filmisk anime-stil, behåll den ursprungliga rörelsen och kompositionen",
  "video_list": [
    {
      "video_url": "https://cdn.acedata.cloud/your-reference-video.mp4",
      "refer_type": "base",
      "keep_original_sound": "no"
    }
  ]
}'
```

### Flera bildreferenser (`image_list`)

`image_list` används för att skicka in referensbilder (element / scenarier / stilar etc.), fälten för arrayelementen är som följer:

* `image_url`: Referensbildlänk, får inte vara tom. Krav: format .jpg/.jpeg/.png; filstorlek ≤10MB; kortaste sidan ≥300px; bildförhållande 1:2.5 \~ 2.5:1.
* `type`: Valfritt. Om det inte anges, används som ren referensbild; ange `first_frame` / `end_frame` för att användas som första bild / sista bild (motsvarar `start_image_url` / `end_image_url`).

Vid användning måste det refereras i `prompt` med `&lt;&lt;<image_1>>>`, `&lt;&lt;<image_2>>>`. Begränsning av antal: om ingen referensvideo finns, referensbilder ≤ 7; om referensvideo finns, referensbilder ≤ 4. Endast första / sista bild kan också direkt använda `start_image_url` / `end_image_url`, men sista bild måste användas tillsammans med första bild.

> Observera: Om både `start_image_url` / `end_image_url` och `image_list` anges, kommer första / sista bild att placeras före `image_list`, vilket kan påverka sekvensen av `&lt;&lt;<image_N>>>`. Det rekommenderas att välja ett av alternativen: om första / sista bild behövs, ange direkt i `image_list` med `type`, blanda inte med `start_image_url` / `end_image_url`.

Exempel på CURL för att generera video med flera bildreferenser:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/kling/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "text2video",
  "model": "kling-o1",
  "mode": "std",
  "duration": 5,
  "prompt": "Låt karaktären i <<<image_1>>> stå i scenen från <<<image_2>>>, filmisk belysning",
  "image_list": [
    { "image_url": "https://cdn.acedata.cloud/subject.png" },
    { "image_url": "https://cdn.acedata.cloud/scene.png" }
  ]
}'
```

## Asynkron återkoppling

Eftersom Kling Videos Generation API:s genereringstid är relativt lång, cirka 1-2 minuter, om API:n inte svarar under en längre tid, kommer HTTP-förfrågan att hålla anslutningen öppen, vilket leder till extra systemresursförbrukning. Därför erbjuder denna API också stöd för asynkron återkoppling.

Den övergripande processen är: när klienten initierar en begäran, anger den ett extra `callback_url`-fält. Efter att klienten har initierat API-förfrågan kommer API:n omedelbart att returnera ett resultat som innehåller ett `task_id`-fält, vilket representerar det aktuella uppdragets ID. När uppdraget är slutfört kommer resultatet av den genererade videon att skickas till klientens angivna `callback_url` i POST JSON-format, vilket också inkluderar `task_id`-fältet, så att uppdragets resultat kan kopplas samman med ID.

Nedan går vi igenom ett exempel för att förstå hur man gör detta.

Först är Webhook-återkoppling en tjänst som kan ta emot HTTP-förfrågningar, utvecklare bör ersätta med URL:en till sin egen byggda HTTP-server. Här för att underlätta demonstration använder vi en offentlig Webhook-exempelsida [https://webhook.site/](https://webhook.site/), öppna denna webbplats för att få en Webhook-URL, som visas i bilden:

![](https://cdn.acedata.cloud/tbcnai.png)

Kopiera denna URL, så kan den användas som Webhook, exemplet här är `https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3`.

Därefter kan vi ställa in fältet `callback_url` till ovanstående Webhook-URL, samtidigt som vi fyller i motsvarande parametrar, innehållet ser ut som bilden visar:

<p>
  <img src="https://cdn.acedata.cloud/vdx12s.png" width="500" className="m-auto" />
</p>

Klicka på kör, och du kan se att ett resultat omedelbart erhålls, som följer:

```
{
  "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
```

Vänta en stund, så kan vi observera resultatet av den genererade videon på `https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3`, som visas i bilden:

![](https://cdn.acedata.cloud/zv5u2q.png)

Innehållet är som följer:

```json theme={null}
{
    "success": true,
    "video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c",
    "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7822108635/text2video/CjJzzGfBfqcAAAAAAKdVMQ-0_raw_video_1.mp4",
    "duration": "5.1",
    "state": "succeed",
    "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
```

Vi kan se att resultatet innehåller ett `task_id`-fält, de andra fälten liknar de ovan, och genom detta fält kan uppdraget kopplas samman.

## Felhantering

Vid anrop av API:n, om ett fel uppstår, kommer API:n att returnera motsvarande felkod och information. Till exempel:

* `400 token_mismatched`: Bad request, kan bero på saknade eller ogiltiga parametrar.
* `400 api_not_implemented`: Bad request, kan bero på saknade eller ogiltiga parametrar.
* `401 invalid_token`: Unauthorized, ogiltig eller saknad auktoriseringstoken.
* `429 too_many_requests`: För många förfrågningar, du har överskridit hastighetsgränsen.
* `500 api_error`: Intern serverfel, något gick fel på servern.

### Exempel på felrespons

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "hämtning misslyckades"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Slutsats

Genom detta dokument har du fått en förståelse för hur du använder Kling Videos Generation API för att generera video genom att ange en prompt och en referensbild för första ramen. Vi hoppas att detta dokument kan hjälpa dig att bättre integrera och använda API:et. Om du har några frågor, tveka inte att kontakta vårt tekniska supportteam.
