Klingai Camera ControlSAFE
Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.
Overview
Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.
4f83675ca38aOBSERVED · 2026-10-09Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| claude-code | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: klingai-camera-control description: 'Control camera movements in Kling AI video generation. Use when creating cinematic shots, pans, tilts, zooms, or dolly moves. Trigger with phrases like ''klingai camera'', ''kling ai camera motion'', ''klingai cinematic'', ''klingai pan zoom''. ' allowed-tools: Read, Write, Edit, Bash(npm:*), Grep version: 1.18.0 license: MIT author: Jeremy Longshore <[email protected]> tags: - saas - kling-ai - camera-control - cinematic compatibility: Designed for Claude Code --- # Kling AI Camera Control ## Overview Add controlled camera movements to text-to-video and image-to-video generation using the `camera_control` parameter. Supports pan, tilt, zoom, roll, and dolly. Available on v1.6+ models. **Supports:** `POST /v1/videos/text2video` and `POST /v1/videos/image2video` ## Camera Control Parameters ```json "camera_control": { "type": "simple", # "simple" = one movement axis "config": { "horizontal": 0, # Pan: -10 (left) to 10 (right) "vertical": 0, # Tilt: -10 (down) to 10 (up) "zoom": 0, # Zoom: -10 (out) to 10 (in) "roll": 0, # Roll: -10 (CCW) to 10 (CW) "pan": 0, # Dolly: -10 (left) to 10 (right) "tilt": 0, # Dolly: -10 (down) to 10 (up) } } ``` **Rule:** For `type: "simple"`, only ONE field in `config` can be non-zero. ## Cinematic Shot Examples ### Slow Pan Right ```python response = requests.post(f"{BASE}/videos/text2video", headers=get_headers(), json={ "model_name": "kling-v2-6", "prompt": "A medieval castle on a cliff at sunrise, fog in the valley below", "duration": "5", "mode": "professional", "camera_control": { "type": "simple", "config": {"horizontal": 5, "vertical": 0, "zoom": 0, "roll": 0, "pan": 0, "tilt": 0} }, }) ``` ### Dramatic Zoom In ```python response = requests.post(f"{BASE}/videos/text2video", headers=get_headers(), json={ "model_name": "kling-v2-6", "prompt": "Close-up of a tiger's face, intense eyes, jungle background", "duration": "5", "mode": "professional", "camera_control": { "type": "simple", "config": {"horizontal": 0, "vertical": 0, "zoom": 7, "roll": 0, "pan": 0, "tilt": 0} }, }) ``` ### Tilt Up Reveal ```python response = requests.post(f"{BASE}/videos/text2video", headers=get_headers(), json={ "model_name": "kling-v2-6", "prompt": "A skyscraper, starting from the base looking up, glass and steel", "duration": "5", "mode": "standard", "camera_control": { "type": "simple", "config": {"horizontal": 0, "vertical": 8, "zoom": 0, "roll": 0, "pan": 0, "tilt": 0} }, }) ``` ### Dolly Forward ```python response = requests.post(f"{BASE}/videos/text2video", headers=get_headers(), json={ "model_name": "kling-v2-master", "prompt": "Walking through a dark forest, trees on both sides, moonlight filtering through", "duration": "5", "mode": "standard", "camera_control": { "type": "simple", "config": {"horizontal": 0, "vertical": 0, "zoom": 0, "roll": 0, "pan": 0, "tilt": 5} }, }) ``` ## Camera Control with Image-to-Video ```python # Animate a landscape photo with a slow zoom out response = requests.post(f"{BASE}/videos/image2video", headers=get_headers(), json={ "model_name": "kling-v2-1", "image": "https://example.com/landscape.jpg", "prompt": "Gentle wind, clouds moving slowly", "duration": "5", "camera_control": { "type": "simple", "config": {"horizontal": 0, "vertical": 0, "zoom": -5, "roll": 0, "pan": 0, "tilt": 0} }, }) ``` **Important:** For image-to-video, `camera_control` is mutually exclusive with `image_tail`, `dynamic_masks`, and `static_mask`. ## Shot Type Quick Reference | Shot Type | Config Field | Value | Description | |-----------|-------------|-------|-------------| | Pan right | `horizontal` | 5-8 | Slow pan, good for landscapes | | Pan left | `horizontal` | -5 to -8 | Reveal from right to left | | Tilt up | `vertical` | 5-8 | Upward reveal (buildings, trees) | | Tilt down | `vertical` | -5 to -8 | Downward motion | | Zoom in | `zoom` | 5-10 | Focus on subject, dramatic | | Zoom out | `zoom` | -5 to -10 | Reveal, establishing shot | | Dutch tilt | `roll` | 3-5 | Unsettling, artistic angle | | Push in | `tilt` | 3-5 | Dolly forward (depth effect) | | Pull back | `tilt` | -3 to -5 | Dolly backward (reveal) | ## Intensity Guidelines | Value Range | Effect | |-------------|--------| | 1-3 | Subtle, barely perceptible | | 4-6 | Moderate, natural-feeling | | 7-8 | Strong, dramatic | | 9-10 | Maximum, may feel unnatural | **Recommendation:** Start at 4-6 for most cinematic shots. Go higher for dramatic reveals or action sequences. ## Error Handling | Error | Cause | Fix | |-------|-------|-----| | `400` invalid camera config | Multiple non-zero values in simple mode | Set only one field to non-zero | | Jerky motion | Value too high | Reduce to 4-6 range | | No visible movement | Value too low (1-2) | Increase to 3+ | | Mutual exclusivity error | Combined with masks/image_tail | Use only camera_control OR masks | ## Prerequisites - An approved visual brief, rights-cleared or synthetic source material, sandbox workspace, content-policy review, credit cap, draft-only destination, and removal owner. ## Instructions 1. Test one camera preset on a watermarked sandbox draft; do not use private or unlicensed source material. 2. Verify motion settings, policy and rights outcome, duration, credit estimate, and draft destination before submission. 3. Review the canary for unwanted movement or prohibited content, then halt and remove it on any policy, rights, or budget concern. 4. Promote only after owner approval and retain a redacted receipt with the asset removed at the agreed boundary. ## Output Produce a camera-control receipt with brief classification, preset values, mode/duration,
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (0)
No findings outside the package's declared scope.
Gates applied: no_behavioural_pass.
4f83675ca38afull audit observations/trust-audit/skill/jeremylongshore__klingai-camera-control.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-09 | 4f83675ca38a | SAFE | B | 89 | first audit |
Questions
What does the Klingai Camera Control skill do?
Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.
Is Klingai Camera Control safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can Klingai Camera Control access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
Which assistants does Klingai Camera Control work with?
Its documentation mentions claude-code. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (4f83675ca38a), read on 2026-10-09. The repository is watched, and a new audit runs when it changes — this is the first audit.