Kling Video Generation @fal
Call Kling from ComfyUI via fal.ai
- image
- STRING
This node generates video with Kling - the text-to-video and image-to-video model - by calling fal.ai's hosted API. Unlike almost everything else in this pack, it does not run on your GPU. There's no model to download, no VRAM cost; it packages your prompt, ships it to fal's servers, and gives you back a URL to the finished video. Which also means it costs money: fal bills per generation, and you need your own fal API key. Read that twice before you wire it up - this is a paid cloud call wearing a ComfyUI node.
Why use it at all? Kling is a strong closed-source video model that you can't run locally, and this puts it inside a ComfyUI graph so you can drive it from the same workflow as everything else. If your bottleneck is "I want good video and I don't have the hardware for a local video model," a hosted-API node is a reasonable trade. If you'd rather keep everything local and free, this isn't your node.
How it works
You fill in a prompt (and optionally a starting image for image-to-video), pick the clip length and aspect ratio, choose a quality mode, and paste your fal key. On execution the node makes an authenticated request to fal's Kling endpoint, waits for the job, and returns the resulting video's URL as a string. The heavy lifting happens on fal's infrastructure; your machine is just orchestrating.
Inputs and outputs
prompt(STRING, multiline) - the text description of the video.duration(enum:5/10) - clip length in seconds. Longer costs more.aspect_ratio(enum:16:9/9:16/1:1) - landscape, vertical, or square.mode(enum:standard/pro) - quality tier.prois higher quality and pricier;standardis the cheaper default.fal_key(STRING) - your fal.ai API key. Required - no key, no generation.image(IMAGE, optional) - a starting frame for image-to-video. Leave it empty for pure text-to-video.
The output is a STRING - the URL of the generated video on fal's storage. To get the file into your graph, you'll typically download it from that URL with a load-from-URL step; the node hands you the link, not the pixels.
How to install it
Ships with the Mixlab pack.
- ComfyUI Manager: search
comfyui-mixlab-nodes, install, restart. - Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/shadowcz007/comfyui-mixlab-nodes.git, install requirements (install.baton Windows or../../../python_embeded/python.exe -s -m pip install -r requirements.txt), restart.
You'll also need a fal.ai account and an API key from your fal dashboard, and credits on that account.
Common issues
Auth errors / nothing generates: the usual culprit is the fal_key - missing, mistyped, or an account with no credits. This node can't work without a valid, funded fal key. Note the key is a secret; be careful not to share a workflow JSON with your key baked into it.
It's slow / seems to hang: hosted video generation takes real time on fal's side, and the node is waiting on that. That's expected, not a freeze - Kling jobs aren't instant.
I got a URL, not a video: by design. The output is the link. Add a download/load-from-URL node to pull the actual file into your graph if you want to process or save it locally.
Cost surprise: every run bills fal, and pro mode plus 10-second clips is the expensive corner. If you're iterating on prompts, do it in standard at 5 seconds to keep the meter down, then switch to pro for the final. This is the one node in the pack where hitting "queue" repeatedly actually costs you money.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| duration | COMBO | 5 | 2 options: 5, 10 |
| aspect_ratio | COMBO | 16:9 | 3 options: 16:9, 9:16, 1:1 |
| mode | COMBO | standard | 2 options: standard, pro |
| fal_key | STRING | — | |
| imageopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |