Nodes/KIE.ai Nodes Next/Kling V2.1 Pro
ComfyUI Node

Kling V2.1 Pro

The image-to-video node that also lets you pin the last frame

By felipederosilva·Created about a month ago·Updated about 22 hours ago· 3
Kling V2.1 Pro
  • image_url
  • tail_image_url
  • video
  • url
  • all_urls_json
  • task_id
  • raw_json
  • credits_consumed
  • credits_left
◄promptPOV shot of a gravity surfer diving between ancient ruins suspended midair, glowing moss lights the path, the board hisses as it carves through thin mist, echoes rise with speed ►
◄duration5►
◄negative_promptblur, distort, and low quality►
◄cfg_scale0.50►
◄timeout_seconds1200►
◄callback_url►

The one with two ends

First frame and last frame. Give it a start image and an end image and the model has to interpolate a plausible path between them, which is a completely different proposition from "make this still move" - it's the difference between letting the model improvise and giving it a target.

KIE_Next_kling_v2_1_pro_7ddc162c is that node, in ComfyUI-KIE-Nodes-Next under KIE Next / Video / Kling. Kuaishou's model, closed weights, so it's an API call to KIE.ai - the reseller route with its own key and credits, not Comfy's official Partner Nodes. Both frames upload automatically from native IMAGE sockets; no URL fiddling.

Inputs

  • prompt - up to 5000 characters. With both frames pinned, the prompt's job changes: describe the transition, not the scene. The frames carry composition; the prompt carries what happens in between.
  • image_url (IMAGE, required) - the opening frame.
  • tail_image_url (IMAGE, optional) - the closing frame. Optional here, which is the headline difference between this node and its V2.5 Turbo counterpart, which insists on both.
  • duration - 5 or 10.
  • negative_prompt - up to 500 characters, default blur, distort, and low quality. Leave it.
  • cfg_scale - 0 to 1, default 0.5. Lower tracks the prompt more loosely, higher more tightly. This range confuses people coming from local samplers where CFG is 1–20; 0.5 is the middle of the road here, not a timid setting.
  • timeout_seconds - 1200 seconds of polling. callback_url - empty.

How it works

Two image uploads (PNG-encoded, pushed to KIE's file host), then a POST to createTask with kling/v2-1-pro, then polling of the task record until it reports success - interval climbing from ~2.5s to a 15s cap - then a download into output/KIE-Results/videos/ and a native VIDEO object out the other side.

Because the output is a proper VIDEO, the natural workflow is a sandwich: local generation for the two frames, this node for the motion, local tools for interpolation or upscale afterwards. On the local side of that comparison, Wan 2.2 i2v runs free on your own card and the community has rated its best output above Kling 2.0 Master - a reminder that the API nodes are for the jobs you can't do locally, not for everything.

Outputs

video, url, all_urls_json, task_id, raw_json, credits_consumed, credits_left. Wire video into a save or preview. The credit receipt prints on the node after each run; credits_left reading -1 means the balance endpoint was unavailable, not that your clip failed.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next

Restart ComfyUI, then Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. Validated before it replaces anything, stored outside your workflow, confirmed by a masked fingerprint and ✅ CONNECTED. For headless installs, KIE_API_KEY in the environment takes priority over the saved key. Dependencies are just requests, Pillow, numpy, PyYAML; the repo also ships a ZIP and a one-click Windows installer in dist/ for the Manager-averse.

Where people get burned

  • Frames that don't belong to the same shot. If the start and end images have different lighting, lens character or subject scale, the model will try to travel between them and the middle will look like a morph. Matching the two frames is the whole craft of this node.
  • Expecting the tail frame to be exact. It's a target the model interpolates toward, not a stitch. The final frame will be close, not identical.
  • Skipping the tail frame and still paying Pro prices. If you just want "make this still move," V2.1 Standard or Master does that for less.
  • KIE task ... failed - read raw_json, it's usually a prompt the provider objected to.
  • Nodes missing after a fresh install. The pack builds model nodes from KIE's live documentation index at startup and re-syncs at most once a day. Restart and wait a moment before assuming something's broken.
  • Old ComfyUI. If the node errors while wrapping the downloaded file as a VIDEO with a message about comfy_api.latest, update ComfyUI.
CategoryKIE Next/Video/Kling

Inputs (8)

NameTypeDefaultDescription
promptSTRINGPOV shot of a gravity surfer diving between ancient ruins suspended midair, glowing moss lights the path, the board hisses as it carves through thin mist, echoes rise with speed Text prompt describing the video to generate (Max length: 5000 characters)
image_urlIMAGE—
durationoptCOMBO5The duration of the generated video in seconds
negative_promptoptSTRINGblur, distort, and low qualityTerms to avoid in the generated video (Max length: 500 characters)
cfg_scaleoptFLOAT0.500–1The CFG (Classifier Free Guidance) scale is a measure of how close you want the model to stick to your prompt (Min: 0, Max: 1, Step: 0.1) (step: 0.1)
tail_image_urloptIMAGE—
timeout_secondsoptINT120030–7200—
callback_urloptSTRINGOptional KIE callback URL. Leave empty for normal ComfyUI use.

Outputs (7)

NameTypeDescription
videoVIDEO—
urlSTRING—
all_urls_jsonSTRING—
task_idSTRING—
raw_jsonSTRING—
credits_consumedFLOAT—
credits_leftFLOAT—