Nodes/KIE.ai Nodes Next/Kling V2.1 Master Image to Video
ComfyUI Node

Kling V2.1 Master Image to Video

The older, cheaper, weirdly solid workhorse

By felipederosilva·Created about a month ago·Updated a day ago· 3
Kling V2.1 Master Image to Video
  • 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►

The unglamorous pick

Everyone's arguing about Kling 3.0 and Omni multi-shot. Meanwhile V2.1 Master is still the tier a lot of people actually ship with, because it's an image-to-video call that costs less, finishes faster, and does the boring job - take this still, make it move for five or ten seconds - without asking you to plan shot lists.

KIE_Next_kling_v2_1_master_image_to_video_e9976503, in ComfyUI-KIE-Nodes-Next, under KIE Next / Video / Kling. Kuaishou's model, closed weights, so the call goes out to KIE.ai - a reseller with its own account and credits, not Comfy's official Partner Nodes. Wire a local image in, get an MP4 back.

The inputs

  • prompt - up to 5000 characters, and unlike the newer nodes this one is genuinely descriptive: the default is a full paragraph. For image-to-video, spend it on the motion, not on re-describing the picture the model can already see.
  • image_url (IMAGE, required) - the first frame. Native Comfy input; the pack PNG-encodes it and uploads it for you, so there's no URL pasting.
  • duration - 5 or 10 seconds.
  • negative_prompt - up to 500 characters, default blur, distort, and low quality. Short and concrete beats a wall of tags; these aren't local samplers and the negative prompt here is a hint, not a conditioning channel.
  • cfg_scale - a 0–1 slider, default 0.5, and it does what you'd expect inverted: lower values track your prompt more loosely, higher values hug it harder. On this node the useful range is narrow. 0.5 is the sane start; if output looks stiff or overcooked, go down, not up. This is the one dial in the pack that most resembles a local sampler setting, and it also confuses people the most.
  • timeout_seconds - 1200 seconds of polling. callback_url stays empty.

Mechanism

The node POSTs to KIE's createTask with kling/v2-1-master-image-to-video, then poll recordInfo until the task reports success - the poll interval starts around 2.5 seconds and backs off to a 15-second cap - then download the result into output/KIE-Results/videos/ and wrap it as a ComfyUI VIDEO. Retries on 429s and 5xx responses are handled inside the client with backoff, so a momentary rate limit doesn't kill the run.

Because the result is a real VIDEO object, the interesting workflow shape is: local image generation or an upscale first, this node to animate, then back into local territory for interpolation or a further upscale. Nothing forces the whole graph to be API calls.

Outputs

video, url, all_urls_json, task_id, raw_json, credits_consumed, credits_left. The two credit figures print on the node after each run. credits_left returning -1 just means KIE's balance endpoint was unavailable for that poll.

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. It's validated against KIE before overwriting a working key, kept out of workflow files, and reported back as a masked fingerprint with ✅ CONNECTED. Headless installs can export KIE_API_KEY - that takes priority. Dependencies are only requests, Pillow, numpy, PyYAML, and there are no model files to download because nothing is running locally. Manager install works when the pack is listed; the repo also ships a ZIP and a one-click Windows installer under dist/.

Where people get burned

  • Treating cfg_scale like a local CFG. It isn't. The scale is 0–1, and 0.5 is already the middle of the road. Cranking it to 1.0 doesn't make the model listen harder, it makes it stiffer.
  • Prompting the image instead of the motion. The frame is already there. Describe what happens next.
  • Missing nodes on a fresh install. The pack generates its model nodes from KIE's documentation index at startup and re-syncs at most once a day, so a brand-new install only ships a handful of bootstrap models at first. Restart and give the sync a minute.
  • KIE task ... failed means the provider refused the job - check raw_json, it's usually the prompt or a picture the model won't animate.
  • Clicking Generate again mid-run. Every submission is a separate paid task. The poller waits; you should too.
  • An error about comfy_api.latest means your ComfyUI build is too old to wrap the downloaded clip as a VIDEO. Update ComfyUI, not the pack.
CategoryKIE Next/Video/Kling

Inputs (7)

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: 5000 characters)
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—