Kling Camera Preset
Cinematic Camera Moves Without Learning What a Dutch Angle Is
- camera_control
Kling Camera Preset is the lazy-typographer's version of the pack's manual camera control. Instead of dialing six axes by hand, you pick from 15 pre-built camera moves - orbit_left, dolly_in, zoom_out, pan_right, tilt_up, crane_up, roll_cw and friends - and optionally scale the whole thing with an intensity slider. One dropdown and one multiplier, and you've got a cinematic move wired into your Kling video. It's the node you reach for when you want the shot to feel directed without becoming a camera-operator.
Like its manual sibling (Kling Camera Control), this is a pure-config node: no API call, no credits, no auth. It just outputs a KLING_CAMERA object that the pack's generation nodes consume.
How it works
Two inputs:
preset- a dropdown of 15 named moves. Behind the scenes each preset is a shorthand for a type plus axis values:orbit_leftis a horizontal move of -7,dolly_inis a zoom of +5,pan_rightis a pan of +5,tilt_upis a tilt of +5,crane_upis a vertical move of +5, and so on. There's anoneoption that outputs an empty camera object, which is useful when you want a node in place but no motion.intensity- a FLOAT multiplier from 0 to 1.5, default 1.0. At 1.0 you get the preset's stock values; at 0.5 a gentler version; at 1.5 a more aggressive one. This is the single knob you'll actually fiddle with.
The single output is camera_control (KLING_CAMERA), which you wire into the optional camera_control input of a Kling Image-to-Video, Keyframe Video, or Text-to-Video node.
The one real gotcha: it's not literally cinematic
Worth saying plainly: these are preset values, not a guarantee of quality. An orbit_left at intensity 1.0 gives Kling "a horizontal move left," and whether that reads as a graceful orbit or a nauseating slide depends on your scene, your subject, and the model's mood. The value of the node is that the naming and the intensity knob let you iterate quickly - try orbit_right at 0.7, then dolly_in at 1.2, compare, keep the winner. It's a fast search, not a magic bullet.
When to use which camera node
- Camera Preset - when a named move covers what you want. This is the default choice; it's one dropdown and it produces the same
KLING_CAMERAtype as the manual node. - Camera Control - when you want something specific (a gentle push-in at exactly 2.3) that no preset matches, or when you're deliberately experimenting with one axis.
- You can't feed both into the same generation node - they're alternative producers of the same type. Pick one per video.
Common issues
- "Nothing moved" - you left
presetonnone, or wired the output into a node that doesn't takecamera_control. Check the optional input is actually exposed on the generation node you picked. - Too strong / too weak - that's what
intensityis for. The defaults are tuned to read clearly, but scene content changes everything; drop to 0.5–0.8 for subtlety on busy subjects. - Preset works better on some models than others - newer models (v3) interpret camera config more faithfully than v1.x. If a move looks ignored, that's often the model, not the node.
Install
Ships in ComfyUI-Kling-Direct, so:
cd ComfyUI/custom_nodes
git clone https://github.com/IxMxAMAR/ComfyUI-Kling-Direct
or ComfyUI Manager → search "Kling Direct" → install → restart. No models, no GPU, no extra dependencies. It's a small config node, and that's the point - it gets you 80% of a directed shot in about ten seconds.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | none | Camera-movement preset. Wire into TextToVideo / ImageToVideo. |
| intensity | FLOAT | 1.00–1.5 | Multiplier on the preset's axis value (1.0 = preset default). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| camera_control | KLING_CAMERA | — |