kling-official

Configure and call Kling official API endpoints for video, image, TTS, avatar, and lip-sync generation.

61.3k|7.8k|Updated Mar 29, 2026
One-click install
npx skills add https://github.com/calesthio/OpenMontage --skill kling-official-calesthio
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: kling-official
Source: https://github.com/calesthio/OpenMontage/tree/main/.agents/skills/kling-official
Command: npx skills add https://github.com/calesthio/OpenMontage --skill kling-official-calesthio

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Integrating the official Kling API directly is error-prone because it uses multiple task protocols (Classic, Turbo, Omni) with different ID paths, status values, and result structures, and it is easily confused with the fal.ai Kling gateway. This Skill provides the exact auth, endpoint, parameter, and error-handling rules needed before calling any kling_official provider tool in OpenMontage. ## Core Features & Use Cases - Provider Disambiguation: Clearly separates the official Kling API (KLING_API_KEY, Bearer auth, official task protocols) from the fal.ai gateway (FAL_KEY, queue URLs) so requests never silently switch paths. - Protocol-Specific Guidance: Documents Classic (data.task_id, succeed), Turbo (data.id, succeeded), and Omni reference structures (image_list[], video_list[], element_list[]) with strict parser separation. - Multi-Capability Coverage: Covers video generation, image generation, TTS, avatar, and two-step lip sync, plus cost governance, retry rules for official error codes, and callback validation. - Use Case: A pipeline developer adding kling_official_video support consults this Skill to choose the right api_family, pass reference_image_url instead of a forbidden top-level image_url, and handle error code 1102 by surfacing an account-exhaustion diagnostic. ## Quick Start Load the kling-official skill before calling kling_official_video to generate a text-to-video clip using the Classic API family with my KLING_API_KEY.

Frequently Asked Questions about kling-official

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I use the official Kling API instead of fal.ai for video generation?▼

Use the kling_official_video tool with provider="kling_official", which authenticates with KLING_API_KEY via Bearer tokens against api-singapore.klingai.com. The fal.ai gateway uses kling_video with FAL_KEY and queue URLs, and the two paths must never be silently switched.

What is the difference between Kling Classic, Turbo, and Omni APIs?▼

Classic APIs return data.task_id with status "succeed", Turbo APIs return data.id with status "succeeded" and poll via GET /tasks?task_ids, and Omni APIs accept structured references like image_list, video_list, and element_list. Parsers for each family must be kept separate.

Can I pass a local image or video file to Kling image-to-video?▼

Classic image-to-video accepts a local path converted to raw base64 in the official image field, but Turbo requires a URL first frame. Local video paths must never be silently uploaded through fal.ai; provide a reachable URL instead.

Which Kling API error codes should not be retried?▼

Do not retry auth failures (1000-1004), balance exhaustion (1101, 1102), permission errors (1103), parameter errors (1200, 1201), or safety policy blocks (1301). Limited retry is acceptable for 1302 rate limits, 1303 concurrency limits, and 5000-series server errors.

How does Kling lip sync handle videos with multiple faces?▼

The lip-sync flow first calls identify-face to read data.face_data[], then advanced-lip-sync with a chosen face_id. If multiple faces are found and none was specified, it stops and returns the face list for confirmation unless auto_select_face=True was explicitly set.

Does the Kling official provider support sound effects and video effects tools?▼

Official Kling audio effects and video effects endpoints exist but are intentionally not registered as default OpenMontage selector tools. They remain unmapped until a pipeline defines a stable capability slot, and the non-mapping reason is recorded in docs and tests.