Kling - V3 Turbo Text to Video
Prompt in, clip out, no image needed
- video
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
Starting from nothing
This is the text-to-video member of the V3 Turbo family: no source frame, no reference video, just a prompt and a few dropdowns between you and a finished clip. V3 Turbo sits between the older V2.x line and the expensive Omni flagships - quick, cheap enough to iterate, and clearly newer than the V2.1 generation.
KIE_Next_kling_v3_turbo_text_to_video_293f63fe, in ComfyUI-KIE-Nodes-Next, under KIE Next / Video / Kling. Kling is Kuaishou's closed model with no downloadable weights, so there's no local version to run: the job goes to KIE.ai, a third-party reseller with its own account, key and credit balance. That is not the same as ComfyUI's official Partner Nodes, and it's worth knowing which one you're using - different account, different meter, different everything.
Inputs
- prompt - required, up to 2500 characters. The default is a full shot description (a European villa terrace, a conversation, camera work) and it's a reasonable model to copy: subject and setting, then camera, then the beat. Text-to-video has no frame to lean on, so you're doing all the work here.
- duration - a free-text field, default
5, documented from 3 to 15 seconds. It's not a dropdown, so type digits and nothing else.7works;7sis a gamble. - aspect_ratio -
16:9,1:1,9:16. - resolution -
720por1080p. If you need 4K, that's the Omni nodes. - timeout_seconds - 1200 seconds of polling. callback_url - leave empty for normal desktop use.
No seed, no negative prompt, no CFG. What you see is the entire surface, which is either refreshing or frustrating depending on how much you like dials.
Mechanism
The node composes the documented request body with model kling/v3-turbo-text-to-video and POSTs it to KIE's createTask. From there it polls the task record until the state is success, starting at roughly 2.5-second intervals and backing off to a 15-second ceiling; transient failures and 429s are retried with backoff inside the client, so a momentary rate limit doesn't burn the run. Once the task lands, the MP4 is downloaded to output/KIE-Results/videos/ and returned as a native ComfyUI VIDEO, at which point you're back in ordinary ComfyUI territory - save it, pull frames, interpolate, upscale locally.
The call is blocking, and the poller reports the last-known state and progress when it gives up, which is your cue to raise timeout_seconds rather than re-queue.
Outputs
video (wire it onward), url (the hosted file), all_urls_json, task_id, raw_json (where a failure explains itself), and credits_consumed / credits_left. Both credit numbers render on the node after each run - the single most useful habit with these nodes is to glance at them before queuing the next variation. credits_left reads -1 if the balance endpoint is down; that's cosmetic, the clip still comes back.
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 saved key, kept out of your workflows, and echoed back as a masked fingerprint with a ✅ CONNECTED row. Headless installs can export KIE_API_KEY - it takes priority over the saved key. Dependencies are only requests, Pillow, numpy, PyYAML, and there are no model downloads because nothing runs locally. ComfyUI Manager install works where the pack is registered; the repo also ships a ZIP and a one-click Windows installer in dist/.
Traps
- A malformed duration. Free text means typos reach the API. Digits.
- Assuming V3 means the top tier. This is the Turbo branch: fast and cheaper, not the Omni flagship. If the motion looks a step behind what you saw in a Kling 3.0 demo, that's the tier, not the prompt.
- Iterating blind. There's no seed, so "same prompt, different take" isn't a thing on this node - every attempt is a fresh roll and a fresh charge. Rewrite the prompt when you want something different.
- A missing node right after install. The pack generates model nodes from KIE's documentation index at startup and re-syncs at most once every 24 hours, so first launch shows only a bootstrap set of polished definitions. Restart and give the sync a moment.
- Old ComfyUI builds. Errors about
comfy_api.latestand a video-from-file helper mean your ComfyUI is too old to wrap the downloaded clip as aVIDEO. Update ComfyUI, not the pack.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Outdoor terrace of a European villa, by a dining table with a blue and white checkered tablecloth, a young white woman in a blue and white striped short-sleeve shirt and khaki shorts, with a brown belt, sits barefoot, opposite a young white man in a white T-shirt. The camera zooms in, the woman swirls the juice in a glass, her eyes looking at the distant woods, and says, "These trees will turn yellow in a month, won't they?" Close-up of the man, he lowers his head and says, "But they'll be green again next summer." Then the woman turns her head, smiles at the man opposite, and says, "Are you always this optimistic? Or just about summer?" Then the man lifts his head, looks at the woman and says, "Only about summers with you." | The text description of the video you want to generate (Max length: 2500 characters) |
| duration | STRING | 5 | The duration of the generated video in seconds Optional duration: 3s - 15s |
| aspect_ratio | COMBO | 16:9 | The aspect ratio of the generated video frame |
| resolution | COMBO | 720p | Resolution of the generated video (720p or 1080p) |
| 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 | — |