Superside Kling 2.1 Image-to-Video
Kling 2.1 from a still — three quality tiers, one node, and the gotcha about URLs
- image
- tail_image
- STRING
Kling is a closed, hosted model - there's no local install, no weights to download, period. If you want Kling 2.1 inside your ComfyUI workflow, an API wrapper like this one is the only door. This node gives you the three quality tiers of Kling 2.1 image-to-video (master, pro, standard) in a single node, calling the fal.ai endpoints under the hood. Feed it a still, write a motion prompt, and it animates the frame into a short clip.
The honest framing from the community's point of view: this is the "model you can never run locally" category of API node - not the "no GPU yet" one. The trade is per-call cost (video is the expensive direction, and it adds up faster than image calls) and that your image and prompt are processed on fal's servers. For getting a real Kling clip without the Kling web app, that's the price.
The inputs that matter
prompt,image,api_key- the essentials. The prompt is a motion brief ("the camera slowly pushes in while the leaves sway");imageis the first frame.model_tier(defaultpro) - master / pro / standard. The author's tooltip is the whole story: master is premium, pro is professional-grade, standard is cost-efficient. If you're iterating, standard is where you tune; master is where you spend.duration- 5 or 10 seconds. 10s is more impressive and more expensive.tail_image(Pro tier only) - an end frame. Give it a second image and Kling animates from frame A to frame B. One of the most useful controls on the node, and easy to miss because it's tucked under optional.negative_prompt(default "blur, distort, and low quality") andcfg_scale(default 0.5) - CFG is how tightly it follows the prompt; Kling runs in a lower range than image models, so keep it near the default.
The output gotcha: it's a URL, not a video
This is the thing that bites everyone once. The output is a STRING containing the URL of the finished video on fal's CDN - not a VIDEO tensor. You can't wire this straight into a SaveVideo node the way you'd expect. You'll need to grab that URL and either open it, download it with a tool that fetches a URL, or pass it to a node that turns a URL into a video. The README is upfront that the video-generation nodes return a URL string, and it's the single most common "why is nothing coming out" moment with these Kling nodes. (Contrast this pack's video-to-video nodes, which do return a real VIDEO.)
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/Superside/comfyui-superside-nodes
pip install -r requirements.txt
Restart ComfyUI, find it under Superside, and paste a fal key into api_key (blank falls back to a FAL_KEY env var).
Where people get burned
Besides the URL-vs-video surprise: watch the tier dial when you're iterating. "Pro" is the default, and a 10-second pro clip costs notably more than a standard one - build your prompt on standard, then switch up for the keeper. And remember video calls are slow; the node holds the connection while fal generates, so a stuck-looking run is often just Kling taking its time.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| image | IMAGE | — | |
| model_tier | COMBO | pro | Master: Premium quality | Pro: Professional-grade | Standard: Cost-efficient |
| api_key | STRING | — | |
| tail_imageopt | IMAGE | End frame image (Pro model only) | |
| durationopt | COMBO | 5 | 2 options: 5, 10 |
| negative_promptopt | STRING | blur, distort, and low quality | — |
| cfg_scaleopt | FLOAT | 0.500–1 | Classifier Free Guidance scale - how closely to follow the prompt |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |