Nodes/KIE.ai Nodes Next/Kling - V2.5 Turbo Image to Video Pro
ComfyUI Node

Kling - V2.5 Turbo Image to Video Pro

Fast, and both frames are mandatory

By felipederosilva·Created about a month ago·Updated a day ago· 3
Kling - V2.5 Turbo Image to Video Pro
  • image_url
  • tail_image_url
  • video
  • url
  • all_urls_json
  • task_id
  • raw_json
  • credits_consumed
  • credits_left
◄promptA team of paratroopers descends into enemy territory, as they pass through clouds, the camera switches to a slow pan above the battlefield lighting up with►
◄duration5►
◄negative_promptblur, distort, and low quality►
◄cfg_scale0.50►
◄timeout_seconds1200►
◄callback_url►

Turbo means draft, not degraded

The Turbo line is Kling's speed tier: fewer compromises than you'd fear, cheaper than the flagship, and much better at being run five times while you figure out what you want. This is the Pro variant, and it's the one where you pin both ends of the clip.

KIE_Next_kling_v2_5_turbo_image_to_video_pro_2934702e, under KIE Next / Video / Kling in ComfyUI-KIE-Nodes-Next. Kling is Kuaishou's closed model - no weights - so the generation is a metered API call to KIE.ai, the reseller route with its own key and credit balance, not ComfyUI's official Partner Nodes.

The thing that will trip you up first

tail_image_url is required. Not optional, required - right there in the node's schema alongside the prompt and image_url. On the V2.1 Pro node the closing frame is optional; here both sockets must be connected or the run won't start.

Why? The node's fields come from KIE's documented request example for this endpoint, and that example includes both frames. So if your intended workflow was "animate this one still," this isn't the node - Kling V2.1 Master Image to Video or Standard is, and V2.5 Turbo Text to Video covers the prompt-only case. If you do want first-and-last-frame interpolation with Turbo speed, this node is exactly right, and the four inputs are all you need:

  • prompt - up to 2500 characters. Describe the transition between your two frames.
  • image_url (IMAGE) - the opening frame.
  • tail_image_url (IMAGE) - the closing frame. No way around it here.
  • duration - 5 or 10 seconds.
  • negative_prompt - up to 500 characters, default blur, distort, and low quality.
  • cfg_scale - 0 to 1, default 0.5. Lower is looser prompt adherence, higher is tighter. There's no reward for pushing it to the top of the range.
  • timeout_seconds - 1200 seconds of polling. callback_url - leave empty.

Mechanism

Two PNG encodes, two uploads to KIE's file host, one POST to createTask with kling/v2-5-turbo-image-to-video-pro, then polling of the task record until the state is success - the interval climbs from about 2.5 seconds to a 15-second cap - then a download into output/KIE-Results/videos/ and a native ComfyUI VIDEO out the far end. Retries with backoff handle 429s and transient server errors internally.

Since the result is a VIDEO object, you can keep the graph hybrid: local generation for both frames, this node for the motion, local tooling afterwards. Nothing forces you to do the whole thing through the API.

Outputs

video, url, all_urls_json, task_id, raw_json, credits_consumed, credits_left. Credits spent and remaining are also displayed on the node after every run, so a batch of drafts is auditable at a glance. credits_left shows -1 when KIE's balance lookup fails; the clip is unaffected.

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. The key is verified against KIE before it replaces an existing one, stored in Comfy's user config rather than your workflow, and confirmed with a masked fingerprint plus a ✅ CONNECTED status. Servers can set KIE_API_KEY, which takes priority. Dependencies are only requests, Pillow, numpy, PyYAML. Manager search works where the pack is listed; a ZIP and a one-click Windows installer sit in the repo's dist/.

Traps

  • Forgetting the tail frame. You'll get a "required input is missing" style failure before anything is sent. That's the good news - you didn't pay for it.
  • Two frames from different shots. If start and end don't match in lighting and lens character, the interpolation looks like a morph. Matching them is the craft.
  • Assuming "Turbo" means "cheap enough to spam." It's cheaper, not free, and the node blocks until the job returns. Queue one, read the receipt, then decide.
  • Fresh-install missing node. The pack builds its model nodes from KIE's documentation index at startup and re-syncs at most once every 24 hours, so first launch only shows a bootstrap set. Restart and give it a minute.
  • Old ComfyUI. If the node fails while wrapping the downloaded clip as a VIDEO with a message about comfy_api.latest, update ComfyUI rather than reinstalling the pack.
CategoryKIE Next/Video/Kling

Inputs (8)

NameTypeDefaultDescription
promptSTRINGA team of paratroopers descends into enemy territory, as they pass through clouds, the camera switches to a slow pan above the battlefield lighting up withThe text prompt describing the video to generate (Max length: 2500 characters)
image_urlIMAGE—
tail_image_urlIMAGE—
durationoptCOMBO5The duration of the generated video in seconds
negative_promptoptSTRINGblur, distort, and low qualityNegative prompt to exclude certain elements from the 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)
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—