{"id":"b0dbba75-216f-4b14-90b3-7277b04f0d7a","shortId":"nbfU2f","kind":"skill","title":"kling-studio","tagline":"Full-featured Kling 3.0 Omni video generation skill. Covers text-to-video, image-to-video, video editing (base mode), video reference (feature mode), multi-shot generation, and audio-synced video. Includes validated API constraint rules and prompt engineering guide.","description":"# Kling 3.0 Omni Video Generator\n\nThis skill enables the generation and manipulation of videos using the Kling 3.0 Omni model. It provides a structured workflow for constructing API requests based on user intent, ensuring compliance with the model's complex parameter constraints.\n\n## Reference Files\n\nThis skill includes the following reference files:\n\n- `references/api_reference.md` — **Complete official API parameter reference**, including all fields, types, constraints, mutual exclusion rules (R1–R10), capability matrix, and invocation examples. **Read this file before constructing any API call.**\n- `references/prompt_guide.md` — Kling 3.0 Omni prompt writing principles, official formula, template syntax, and few-shot examples for all major scenarios.\n- `scripts/kling_api.py` — Python utility class for JWT authentication, task creation, and polling.\n\n---\n\n## Core Capabilities\n\n- **Text-to-Video**: Generate a video from a textual description.\n- **Image-to-Video**: Animate a static image with a descriptive prompt.\n- **Video-to-Video (Editing)**: Modify an existing video based on a prompt (e.g., change subject, style).\n- **Video-to-Video (Reference)**: Use an existing video as a reference for camera movement and style.\n- **Multi-shot Generation**: Create a video with multiple distinct scenes or shots.\n- **Audio Generation**: Generate video with synchronized audio, including speech and sound effects.\n\n---\n\n## Workflow: From User Intent to API Call\n\nTo correctly use the Kling API, you MUST follow this decision-making workflow to construct the API payload. The process is divided into two main stages: **Prompt Design** and **Parameter Construction**.\n\n### Stage 1: Prompt Design\n\nBefore constructing the API call, you must first design the prompt(s) based on the user's request. The quality of the prompt is the single most important factor for a good result.\n\n1.  **Consult the Prompting Guide**: Read `/home/ubuntu/skills/kling-studio/references/prompt_guide.md` to understand the core principles, official formula, and few-shot examples for writing effective prompts.\n\n2.  **Identify the Scenario**: Determine which of the following scenarios the user is requesting:\n    -   Single-shot video (from text, image, or video)\n    -   Multi-shot video (storyboard with multiple scenes)\n\n3.  **Write the Prompt(s)**:\n    -   For **single-shot**, write a single, detailed prompt following the guide's formula.\n    -   For **multi-shot**, write a separate prompt for each shot/scene.\n    -   **Use Template Syntax**: If the user provides reference images, elements, or videos, you MUST use the `<<<image_1>>>`, `<<<element_1>>>`, `<<<video_1>>>` template syntax in the prompt to explicitly reference them. This is a core feature of the Omni model.\n\n### Stage 2: Parameter Construction\n\nOnce the prompt(s) are ready, construct the final API request payload by following this decision tree. This ensures all parameter constraints and interdependencies, discovered through extensive testing, are respected.\n\n```mermaid\ngraph TD\n    A[Start] --> B{Multi-shot or Single-shot?};\n    B -- Multi-shot --> C[Set `multi_shot: true`];\n    B -- Single-shot --> D[Set `multi_shot: false`];\n\n    C --> E{Set `shot_type: \"customize\"`};\n    E --> F[Construct `multi_prompt` array from prompts];\n    F --> G[Calculate total duration from `multi_prompt`];\n    G --> H[Set top-level `duration`];\n    H --> Z[Final Payload];\n\n    D --> I{Video input provided?};\n    I -- Yes --> J{Editing or Reference?};\n    I -- No --> K[Text/Image-to-Video Path];\n\n    J -- Editing --> L[Set `refer_type: \"base\"`];\n    J -- Reference --> M[Set `refer_type: \"feature\"`];\n\n    L --> N[Ignore `duration` parameter];\n    M --> O[Set `aspect_ratio`];\n    N --> P{Audio handling};\n    O --> P;\n\n    K --> Q{Audio handling};\n    P --> R{Audio handling};\n\n    subgraph R [Audio Handling]\n        direction LR\n        R1{Want audio output?} -- Yes --> R2[Set `sound: \"on\"`];\n        R1 -- No --> R3[Set `sound: \"off\"`];\n        R2 --> R4{Video input exists?};\n        R4 -- Yes --> R5[ERROR: `sound:on` is incompatible with video input];\n        R4 -- No --> R6[OK];\n    end\n\n    Q --> Z;\n    R6 --> Z;\n    R3 --> Z;\n    R5 --> Stop([Stop/Error]);\n```\n\n#### Key Parameter Rules (from testing)\n\nThis is not an exhaustive list, but a summary of the most critical, non-obvious rules that you MUST follow. For a complete guide, refer to the `prompt_guide.md`.\n\n| Parameter | Rule |\n| :--- | :--- |\n| `refer_type` | **MUST be explicit**. Do not omit. Defaults to `base` but this is unreliable. Use `base` for editing, `feature` for reference. |\n| `duration` | **Ignored in `base` mode**. In `customize` mode, it MUST equal the sum of `multi_prompt` durations. |\n| `sound` | **Incompatible with `video_list`**. Cannot be `on` if a reference video is provided. |\n| `shot_type` | **MUST be `customize`** for `multi_shot: true` with the Omni model. `intelligence` is not supported. |\n| `multi_prompt` | `index` MUST start from 1. Total duration MUST match top-level `duration`. Max 6 shots. |\n| `aspect_ratio` | **Required for `feature` mode**. |\n| `image_list` | Max 7 images without video input, **max 4 images with video input**. |\n\n---\n\n## Execution\n\nTo execute a video generation task, use the provided Python script which handles authentication and polling.\n\n1.  **Set Environment Variables**: Ensure `KLING_ACCESS_KEY` and `KLING_SECRET_KEY` are set.\n\n2.  **Construct the Payload**: Follow the workflow above to create the JSON payload for the API call.\n\n3.  **Run the Script**:\n\n    ```python\n    from kling_api import KlingAPI\n\n    # Get keys from environment\n    access_key = os.environ.get(\"KLING_ACCESS_KEY\")\n    secret_key = os.environ.get(\"KLING_SECRET_KEY\")\n    api = KlingAPI(access_key, secret_key)\n\n    # Your constructed payload\n    payload = {\n        \"model_name\": \"kling-v3-omni\",\n        # ... other parameters based on the workflow ...\n    }\n\n    # Create and poll the task\n    task_response = api.create_omni_video_task(payload)\n    if task_response and task_response.get(\"code\") == 0:\n        task_id = task_response.get(\"data\", {}).get(\"task_id\")\n        print(f\"Task created: {task_id}\")\n        result = api.poll_for_completion(task_id)\n        if result:\n            print(\"Final video URL:\", result.get(\"videos\", [{}])[0].get(\"url\"))\n    ```\n\nThis structured approach ensures that all the nuances and constraints of the Kling 3.0 Omni API are handled correctly, leading to fewer errors and more predictable results.","tags":["kling","studio","media","skills","wells1137","agent-skills","agentskills","audio-generation","claude-code","claude-code-marketplace","claude-code-plugin","claude-code-skill"],"capabilities":["skill","source-wells1137","skill-kling-studio","topic-agent-skills","topic-agentskills","topic-audio-generation","topic-claude-code","topic-claude-code-marketplace","topic-claude-code-plugin","topic-claude-code-skill","topic-claude-code-skills","topic-claude-skills","topic-content-creation","topic-image-generation","topic-openclaw"],"categories":["media-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/wells1137/media-skills/kling-studio","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add wells1137/media-skills","source_repo":"https://github.com/wells1137/media-skills","install_from":"skills.sh"}},"qualityScore":"0.462","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 24 github stars · SKILL.md body (6,512 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-01T07:01:41.575Z","embedding":null,"createdAt":"2026-04-18T22:23:51.856Z","updatedAt":"2026-05-01T07:01:41.575Z","lastSeenAt":"2026-05-01T07:01:41.575Z","tsv":"'/home/ubuntu/skills/kling-studio/references/prompt_guide.md':325 '0':898,926 '1':283,319,752,801 '2':342,438,815 '3':373,832 '3.0':8,49,65,130,942 '4':779 '6':762 '7':773 'access':807,846,850,860 'anim':176 'api':41,75,102,126,248,255,267,289,450,830,839,858,944 'api.create':887 'api.poll':913 'approach':931 'array':513 'aspect':573,764 'audio':36,231,237,577,583,587,591,597 'audio-sync':35 'authent':154,798 'b':476,484,493 'base':24,77,193,298,557,686,692,701,876 'c':488,502 'calcul':518 'call':127,249,290,831 'camera':214 'cannot':720 'capabl':115,160 'chang':198 'class':151 'code':897 'complet':100,668,915 'complex':87 'complianc':82 'constraint':42,89,109,462,938 'construct':74,124,265,281,287,440,447,510,816,865 'consult':320 'core':159,329,431 'correct':251,947 'cover':13 'creat':222,824,880,909 'creation':156 'critic':657 'custom':507,704,733 'd':497,535 'data':902 'decis':261,456 'decision-mak':260 'default':684 'descript':171,182 'design':278,285,294 'detail':385 'determin':346 'direct':593 'discov':465 'distinct':227 'divid':272 'durat':520,530,568,698,714,754,760 'e':503,508 'e.g':197 'edit':23,188,543,552,694 'effect':242,340 'element':412 'enabl':55 'end':630 'engin':46 'ensur':81,459,805,932 'environ':803,845 'equal':708 'error':618,951 'exampl':119,143,337 'exclus':111 'execut':784,786 'exhaust':649 'exist':191,208,614 'explicit':425,680 'extens':467 'f':509,516,907 'factor':314 'fals':501 'featur':6,28,432,564,695,768 'few-shot':140,334 'fewer':950 'field':107 'file':91,98,122 'final':449,533,921 'first':293 'follow':96,258,350,387,454,665,819 'formula':136,332,391 'full':5 'full-featur':4 'g':517,524 'generat':11,33,52,57,165,221,232,233,789 'get':842,903,927 'good':317 'graph':472 'guid':47,323,389,669 'h':525,531 'handl':578,584,588,592,797,946 'id':900,905,911,917 'identifi':343 'ignor':567,699 'imag':19,173,179,362,411,770,774,780 'image-to-video':18,172 'import':313,840 'includ':39,94,105,238 'incompat':622,716 'index':748 'input':538,613,625,777,783 'intellig':742 'intent':80,246 'interdepend':464 'invoc':118 'j':542,551,558 'json':826 'jwt':153 'k':548,581 'key':640,808,812,843,847,851,853,857,861,863 'kling':2,7,48,64,129,254,806,810,838,849,855,871,941 'kling-studio':1 'kling-v3-omni':870 'klingapi':841,859 'l':553,565 'lead':948 'level':529,759 'list':650,719,771 'lr':594 'm':560,570 'main':275 'major':146 'make':262 'manipul':59 'match':756 'matrix':116 'max':761,772,778 'mermaid':471 'mode':25,29,702,705,769 'model':67,85,436,741,868 'modifi':189 'movement':215 'multi':31,219,366,394,478,486,490,499,511,522,712,735,746 'multi-shot':30,218,365,393,477,485 'multipl':226,371 'must':257,292,416,664,678,707,731,749,755 'mutual':110 'n':566,575 'name':869 'non':659 'non-obvi':658 'nuanc':936 'o':571,579 'obvious':660 'offici':101,135,331 'ok':629 'omit':683 'omni':9,50,66,131,435,740,873,888,943 'os.environ.get':848,854 'output':598 'p':576,580,585 'paramet':88,103,280,439,461,569,641,674,875 'path':550 'payload':268,452,534,818,827,866,867,891 'poll':158,800,882 'predict':954 'principl':134,330 'print':906,920 'process':270 'prompt':45,132,183,196,277,284,296,308,322,341,376,386,399,423,443,512,515,523,713,747 'prompt_guide.md':673 'provid':69,409,539,728,793 'python':149,794,836 'q':582,631 'qualiti':305 'r':586,590 'r1':113,595,604 'r10':114 'r2':600,610 'r3':606,635 'r4':611,615,626 'r5':617,637 'r6':628,633 'ratio':574,765 'read':120,324 'readi':446 'refer':27,90,97,104,205,212,410,426,545,555,559,562,670,676,697,725 'references/api_reference.md':99 'references/prompt_guide.md':128 'request':76,303,355,451 'requir':766 'respect':470 'respons':886,894 'result':318,912,919,955 'result.get':924 'rule':43,112,642,661,675 'run':833 'scenario':147,345,351 'scene':228,372 'script':795,835 'scripts/kling_api.py':148 'secret':811,852,856,862 'separ':398 'set':489,498,504,526,554,561,572,601,607,802,814 'shot':32,142,220,230,336,358,367,381,395,479,483,487,491,496,500,505,729,736,763 'shot/scene':402 'singl':311,357,380,384,482,495 'single-shot':356,379,481,494 'skill':12,54,93 'skill-kling-studio' 'sound':241,602,608,619,715 'source-wells1137' 'speech':239 'stage':276,282,437 'start':475,750 'static':178 'stop':638 'stop/error':639 'storyboard':369 'structur':71,930 'studio':3 'style':200,217 'subgraph':589 'subject':199 'sum':710 'summari':653 'support':745 'sync':37 'synchron':236 'syntax':138,405,420 'task':155,790,884,885,890,893,899,904,908,910,916 'task_response.get':896,901 'td':473 'templat':137,404,419 'test':468,644 'text':15,162,361 'text-to-video':14,161 'text/image-to-video':549 'textual':170 'top':528,758 'top-level':527,757 'topic-agent-skills' 'topic-agentskills' 'topic-audio-generation' 'topic-claude-code' 'topic-claude-code-marketplace' 'topic-claude-code-plugin' 'topic-claude-code-skill' 'topic-claude-code-skills' 'topic-claude-skills' 'topic-content-creation' 'topic-image-generation' 'topic-openclaw' 'total':519,753 'tree':457 'true':492,737 'two':274 'type':108,506,556,563,677,730 'understand':327 'unreli':690 'url':923,928 'use':62,206,252,403,417,691,791 'user':79,245,301,353,408 'util':150 'v3':872 'valid':40 'variabl':804 'video':10,17,21,22,26,38,51,61,164,167,175,185,187,192,202,204,209,224,234,359,364,368,414,537,612,624,718,726,776,782,788,889,922,925 'video-to-video':184,201 'want':596 'without':775 'workflow':72,243,263,821,879 'write':133,339,374,382,396 'yes':541,599,616 'z':532,632,634,636","prices":[{"id":"24f5b58f-5a3c-4eac-8e2d-c12d35e87c63","listingId":"b0dbba75-216f-4b14-90b3-7277b04f0d7a","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"wells1137","category":"media-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:23:51.856Z"}],"sources":[{"listingId":"b0dbba75-216f-4b14-90b3-7277b04f0d7a","source":"github","sourceId":"wells1137/media-skills/kling-studio","sourceUrl":"https://github.com/wells1137/media-skills/tree/main/skills/kling-studio","isPrimary":false,"firstSeenAt":"2026-04-18T22:23:51.856Z","lastSeenAt":"2026-05-01T07:01:41.575Z"}],"details":{"listingId":"b0dbba75-216f-4b14-90b3-7277b04f0d7a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"wells1137","slug":"kling-studio","github":{"repo":"wells1137/media-skills","stars":24,"topics":["agent-skills","agentskills","audio-generation","claude-code","claude-code-marketplace","claude-code-plugin","claude-code-skill","claude-code-skills","claude-skills","content-creation","image-generation","openclaw","skill-md","skillsmp"],"license":null,"html_url":"https://github.com/wells1137/media-skills","pushed_at":"2026-03-04T08:32:42Z","description":"A collection of open-source Agent Skills for content creation — images, audio, and video.","skill_md_sha":"f3a5776013972ba04a423c1f61fece31228f7da7","skill_md_path":"skills/kling-studio/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/wells1137/media-skills/tree/main/skills/kling-studio"},"layout":"multi","source":"github","category":"media-skills","frontmatter":{"name":"kling-studio","description":"Full-featured Kling 3.0 Omni video generation skill. Covers text-to-video, image-to-video, video editing (base mode), video reference (feature mode), multi-shot generation, and audio-synced video. Includes validated API constraint rules and prompt engineering guide."},"skills_sh_url":"https://skills.sh/wells1137/media-skills/kling-studio"},"updatedAt":"2026-05-01T07:01:41.575Z"}}