Image2Video
Turn a still into a KLing AI clip, with real camera moves
- client
- image
- image_tail
- url
- video_id
Image-to-video is the mode most people actually mean when they say "I want AI video" - anchor to a real starting frame and let the model animate it, rather than gambling on pure text-to-video composition. KLing is one of the stronger closed models at this specifically (it shows up regularly in the same breath as Google Veo and Runway when people compare paid video services), and this node is the direct wire into that model from inside a ComfyUI graph. It's also the node people report actually costs real money to use - one image-to-video user on Reddit mentioned KLing's API running "around $0.50 per call," which is worth knowing before you queue up a batch.
How it works
You give it a starting frame (and optionally an end frame), a prompt describing the motion, and it ships the job to KLing's servers, which return a video URL once the async render finishes - polled at whatever interval the upstream Client node is set to. Unlike the open local video models most ComfyUI users are used to (Wan, LTX), there's no local sampler, no schedule, no VRAM math - the model, the steps, the whole render happens on Kuaishou's infrastructure. What you control from ComfyUI is really the request: which model version, how strong the prompt adherence, how long, and whether the camera moves.
The inputs and outputs that matter
Required is just model - six versions from kling-v1 up through kling-v2-1-master, newer generally meaning better motion coherence.
Everything else is optional, and this is where the real control lives:
image- your starting frame.image_tail- an optional end frame, letting you anchor both ends of the clip and have KLing interpolate the motion between them, similar in spirit to start/end-frame conditioning on open models like Wan.prompt/negative_prompt- describe the motion you want, not just the scene (the image already provides the scene).mode-stdorpro. Pro costs more and renders slower but is the higher-fidelity tier.duration-5or10seconds.camera_control_type(None,simple, or a handful of named presets likedown_backandright_turn_forward) pluscamera_control_config(which axis - horizontal, vertical, pan, tilt, roll, zoom) andcamera_control_value(-10 to 10, how strong). This is KLing's actual camera-motion system, not a prompt trick - genuinely useful, but check KLing's own docs for which model/mode combinations support it, since not every version accepts every camera preset.cfg_scale(0–1) - prompt adherence strength.
Outputs are url (a link to the finished clip) and video_id - the important one, since it's what you feed into Video-Extender, Video2Audio, or Lip-Sync later in the same pack to keep working on the same generation without re-uploading anything.
Installing it
ComfyUI Manager: search ComfyUI-KLingAI-API. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/KwaiVGI/ComfyUI-KLingAI-API
cd ComfyUI-KLingAI-API && pip install -r requirements.txt
No local model weights - you need a KLing AI API key from their developer console wired into a Client node, and the area on that client (global vs china) has to match the region your key was issued for.
Common issues
Budget for it: video generation is the priciest call type in this pack, and a pro mode, 10-second, camera-controlled request costs more than a quick std 5-second test - start cheap while you're dialing in a prompt. Beyond cost, the usual API-node failure modes apply: an unauthenticated or wrong-region Client fails every downstream node at once, and a video job that seems to hang is normal - these are genuinely multi-minute renders on KLing's side, not something stuck locally. If camera_control_type seems to do nothing, double-check it's actually compatible with the model/mode pair you picked; KLing's camera system is picky about which combinations it honors.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| client | KLING_AI_API_CLIENT | — | |
| model | COMBO | 6 options: kling-v1, kling-v1-5, kling-v1-6, kling-v2-master, kling-v2-1, kling-v2-1-master | |
| imageopt | IMAGE | — | |
| image_tailopt | IMAGE | — | |
| promptopt | STRING | — | |
| negative_promptopt | STRING | — | |
| cfg_scaleopt | FLOAT | 0.50–1 | — |
| modeopt | COMBO | 2 options: std, pro | |
| durationopt | COMBO | 2 options: 5, 10 | |
| camera_control_typeopt | COMBO | 6 options: None, simple, down_back, forward_up, right_turn_forward, left_turn_forward | |
| camera_control_configopt | COMBO | 6 options: horizontal, vertical, pan, tilt, roll, zoom | |
| camera_control_valueopt | FLOAT | 1-10–10 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| url | STRING | — |
| video_id | STRING | — |