Kling V2.1 Standard
The cheapest way to animate a still, and when that's enough
- image_url
- video
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
The honest framing
If your image already looks good, and what you want is five seconds of believable drift, breath, steam, hair or camera push - V2.1 Standard exists so you don't pay Omni prices for it. It's the entry tier of the Kling line in this pack, and it's the node I'd reach for first when I'm testing whether a still is animatable at all.
KIE_Next_kling_v2_1_standard_f18ec531, in ComfyUI-KIE-Nodes-Next under KIE Next / Video / Kling. Kling is Kuaishou's closed model, so there is no weights download and no local option; the call goes out to KIE.ai, a reseller with its own account and credits - not ComfyUI's official Partner Nodes. Metered per clip, and moderation applies at the provider.
Inputs
- prompt - up to 5000 characters. The default here is instructive: "Begin with the uploaded image as the first frame. Gradually animate the scene: steam rises and drifts upward from the train; lantern lights flicker subtly; cloaked figures begin to move slowly…" That's the right shape for Standard. Small, specific motions, listed. Big cinematic action is where this tier shows its limits.
- image_url (
IMAGE, required) - the first frame. Native socket, auto-uploaded for you. - duration -
5or10seconds. - negative_prompt - up to 500 characters, default
blur, distort, and low quality. - cfg_scale - a 0–1 slider, default 0.5. Lower loosens prompt adherence, higher tightens it. Not a local CFG. No, 1.0 isn't "better".
- timeout_seconds - 1200 seconds. callback_url - leave it empty unless you run a webhook server.
What the node is doing
Your image is PNG-encoded and uploaded to KIE's file host, then the node POSTs kling/v2-1-standard to createTask with your fields. It polls the task record until it reports success - starting near 2.5 seconds between checks, backing off to a 15-second ceiling - then downloads the MP4 into output/KIE-Results/videos/ and returns it as a VIDEO. Transient failures and rate limits are retried inside the client with backoff, so a 429 doesn't nuke your run.
Because the output is a native Comfy VIDEO, the rest of your graph keeps working normally: send it to a save node, extract frames, upscale locally, or chain into an interpolation node.
Outputs
video, url, all_urls_json, task_id, raw_json, credits_consumed, credits_left - with the credit numbers rendered on the node after each successful run, which is exactly what you want on the cheap tier, because it makes the upgrade decision quantitative. credits_left reading -1 just means the balance service was unreachable.
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 it overwrites a working key, kept out of your workflow JSON, and confirmed with a masked fingerprint plus ✅ CONNECTED. KIE_API_KEY in the environment still works for servers and takes priority over the saved key. Dependencies are requests, Pillow, numpy, PyYAML - no local models, no codec extras. ComfyUI Manager install works where the pack is listed; the repo also ships a ZIP and a Windows one-click installer under dist/.
Where people get burned
- Asking Standard for a hero shot. Strong camera moves, complex action and faces at speed are where the tier gap shows. Test cheap, ship the good one on a higher tier.
- Typing the motion into the prompt as if the image didn't exist. "A woman stands in a station" gives the model nothing. "Steam drifts up, lanterns flicker, she turns her head slowly" gives it a job.
- No node in the menu after install. The pack generates its model nodes from KIE's documentation index at startup, then re-syncs at most once every 24 hours; a fresh install starts with a small bootstrap set. Restart and check again.
- Assuming it's free to iterate. It isn't. Every Generate is a charge, and the poller is patient - don't resubmit because the first attempt felt slow.
- A failure message from KIE.
KIE task ... failed: <reason>is the provider's refusal;raw_jsonhas the details, and a rejected prompt or unsuitable image is the usual cause.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Begin with the uploaded image as the first frame. Gradually animate the scene: steam rises and drifts upward from the train; lantern lights flicker subtly; cloaked figures begin to move slowly — walking, turning, adjusting their belongings. Floating dust or magical particles catch the light. The text “KLING 2.1 STANDARD API — Now on Kie.ai” softly pulses with a golden glow. The camera pushes forward slightly, then slowly fades to black. | Text prompt describing the desired video content (Max length: 5000 characters) |
| image_url | IMAGE | — | |
| durationopt | COMBO | 5 | The duration of the generated video in seconds |
| negative_promptopt | STRING | blur, distort, and low quality | Description of elements to avoid in the generated video (Max length: 500 characters) |
| cfg_scaleopt | FLOAT | 0.500–1 | The 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_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| url | STRING | — |
| all_urls_json | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |