Nodes/ComfyUI-JM-KLing-API/KLingAI Image to Video
ComfyUI Node

KLingAI Image to Video

Animate an image into a Kling video — with camera control

By juemingai·Created about a year ago·Updated 11 months ago· 3
KLingAI Image to Video
  • image
  • image_tail
  • task_id
  • task_status
  • created_at
  • updated_at
  • seed
api_token
image_typeBase64
image_url
model_namekling-v2-5-turbo
positive_prompt
negative_prompt
cfg_scale0.5
modestd
duration5
use_camera_controlfalse
camera_typesimple
camera_horizontal0.0
camera_vertical0.0
camera_pan0.0
camera_tilt0.0
camera_roll0.0
camera_zoom0.0
external_task_id
callback_url
seed-1

This is the most flexible node in the pack, and probably the one you'll actually use. Where the text2video node is prompt-in/video-out, KLingAI Image to Video takes an image you already like - generated in ComfyUI, or anywhere else - and animates it on Kling's servers. It also carries the widest model list in the pack, including the kling-v2-5-turbo models, plus full camera control. If you want the current-gen Kling models, this is where they live.

The mechanism is the same async dance as the rest of the pack: POST to https://api.klingai.com/v1/videos/image2video, get a task_id back, hand it to KLingAI Query Status, and let that poll until Kling returns a result URL. Your only real job is describing the motion.

Inputs that matter

  • api_token (required) - the JWT from the API Key node, as always.
  • image - feed a ComfyUI IMAGE tensor directly (say, from an upscaler or img2img node). It gets base64-encoded and uploaded in the request. Alternatively flip image_type to URL and drop a hosted image URL in image_url instead. Either path works; a tensor is more convenient inside a workflow.
  • model_name - seven choices: kling-v1, kling-v1-5, kling-v1-6, kling-v2-master, kling-v2-1, kling-v2-1-master, and the default kling-v2-5-turbo. Turbo is the fast/cheap one; the -master variants are the quality flagships.
  • positive_prompt / negative_prompt - describe the motion ("camera slowly pushes in, hair blowing in wind"). This is where most of the video quality comes from.
  • duration - 5 or 10 seconds.
  • mode - std or pro (better, pricier).
  • image_tail - optional last-frame IMAGE input. If Kling supports end-frame control on the model you picked, this lets you specify how the clip should end rather than letting it drift.
  • use_camera_control - the interesting one. Flip this on and you get camera_type plus six camera axes: camera_horizontal, camera_vertical, camera_pan, camera_tilt, camera_roll, camera_zoom, each -10 to 10. Preset types like down_back, forward_up, right_turn_forward, left_turn_forward, simple give you canned moves; the sliders let you hand-author a shot. Kling's camera control is genuinely good - this is the feature that makes the node worth reaching for over plain i2v.
  • cfg_scale - 0 to 1, default 0.5.
  • seed - local-only again; it gates when the node re-runs, not your generation.

The output

task_id, task_status, created_at, updated_at (STRING) and seed (INT) - identical shape to text2video. task_id into Query Status, url from that into the Video Downloader.

A realistic first workflow

API Key → (image you already have, via a Load Image node) → this node → Query Status → Video Downloader. Set image_type to Base64, leave model_name on kling-v2-5-turbo for your first run, write a prompt describing the motion you want, and queue. Expect the render to take a few minutes.

Where people get burned

  • Feeding an image in more than one way. If you attach both an IMAGE tensor and a URL, the behavior is defined by image_type - pick one lane and stick to it.
  • Camera control doing nothing. The camera inputs only apply when use_camera_control is on, and not every model honors every axis. When in doubt, use a camera_type preset and keep the manual sliders at 0.
  • Model not found. Kling retires or renames models from time to time; a 4xx with "model not found"-ish text usually means your chosen model_name is stale. Step down a version.
  • Credits. pro mode plus 10 seconds plus a -master model is the most expensive combo in this pack. Budget accordingly - the KB's community price references hover around a dollar-plus per premium 5-second clip.
CategoryJM-KLingAI-API/image-2-video

Inputs (22)

NameTypeDefaultDescription
api_tokenSTRING
image_typeoptCOMBOBase642 options: Base64, URL
imageoptIMAGE
image_urloptSTRING
model_nameoptCOMBOkling-v2-5-turbo7 options: kling-v1, kling-v1-5, kling-v1-6, kling-v2-master, kling-v2-1, kling-v2-1-master, +1
positive_promptoptSTRING
negative_promptoptSTRING
cfg_scaleoptFLOAT0.50–1
modeoptCOMBOstd2 options: std, pro
durationoptCOMBO52 options: 5, 10
image_tailoptIMAGE
use_camera_controloptBOOLEANfalse
camera_typeoptCOMBOsimple5 options: simple, down_back, forward_up, right_turn_forward, left_turn_forward
camera_horizontaloptFLOAT0.0-10–10
camera_verticaloptFLOAT0.0-10–10
camera_panoptFLOAT0.0-10–10
camera_tiltoptFLOAT0.0-10–10
camera_rolloptFLOAT0.0-10–10
camera_zoomoptFLOAT0.0-10–10
external_task_idoptSTRING
callback_urloptSTRING
seedoptINT-1-1–18446744073709550000

Outputs (5)

NameTypeDescription
task_idSTRING
task_statusSTRING
created_atSTRING
updated_atSTRING
seedINT