Skip to main content Manage control camera movements in Kling AI video generation. Use when creating cinematic effects,
dynamic shots, or specific camera movements. Trigger with phrases like 'klingai camera',
'kling ai camera motion', 'klingai cinematic', 'klingai pan zoom'.
npx skills add jeremylongshore/claude-code-plugins-plus-skills --skill klingai-camera-control ai automation claude-code devops mcp ai-agents
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
"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 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 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 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 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 # 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 horizontal5-8 Slow pan, good for landscapes Pan left horizontal-5 to -8 Reveal from right to left Tilt up vertical5-8 Upward reveal (buildings, trees) Tilt down vertical-5 to -8 Downward motion Zoom in zoom5-10 Focus on subject, dramatic Zoom out zoom-5 to -10 Reveal, establishing shot Dutch tilt roll3-5 Unsettling, artistic angle Push in tilt3-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 configMultiple 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
Resources Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).