Kling 3.0 · Text to Video
Write a shot list, get a multi-shot clip back
- video
- task id
Kling 3.0 text-to-video is the only node in this pack that will cut a scene for you. Write a prompt, choose 3 to 15 seconds at 720p, 1080p or 4K, decide whether you want native audio, and - if you want - hand it a shot list instead of a paragraph and get back a multi-shot sequence with actual cuts in it. No reference frame, so no composition guarantee, but the shot planning is the feature that makes this more than "type a scene and hope."
Rates run $0.0672/s silent at 720p, $0.0896/s silent at 1080p, $0.1008/s with audio at 720p, $0.1344/s with audio at 1080p, and a flat $0.336/s at 4K whether you asked for sound or not. Five seconds silent at 720p is about 34 cents; fifteen seconds with audio at 1080p is about two dollars.
The inputs
- prompt - scene, action, camera. With sound on, add dialogue in quotes and the sounds you want; the audio pass reads the same text.
- negative_prompt - concrete things to keep out. Works on this generation.
- aspect_ratio -
16:9(default),9:16or1:1. - resolution -
720p,1080por4k. - generate_audio - off by default, and it changes the rate when you turn it on.
- duration_seconds - whole seconds,
3to15, default5. - guidance_scale - 0 to 1, default
0.5. Literalness, not CFG. Higher sticks to the prompt; lower gives the model room to invent. - shot_type -
singlefor one continuous take,multito let the model cut your prompt into shots on its own,customizeto follow a list you supply. - multi_prompt - JSON, used with
customize: a list of objects withpromptandduration_seconds, and the durations must add up toduration_seconds. A three-shot sequence, all in one job:
[
{"prompt": "aerials of the canyon at first light", "duration_seconds": 3},
{"prompt": "low tracking shot along the riverbed", "duration_seconds": 4},
{"prompt": "close-up of the guide looking up at the ridge", "duration_seconds": 3}
]
Total: 10 seconds of duration_seconds on the node, and the shot list adds to ten. Mismatch it and the model has no honest way to render your plan.
Outputs are video (VIDEO - Save Video, preview, or a stitching node) and task id (STRING, the run's handle in the SpicyAPI console).
Install
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Restart ComfyUI, open Settings > SpicyAPI, paste a key from spicyapi.ai/console/keys and restart once more so the node list comes from your account. Manager search: "SpicyAPI". Servers and cloud boxes: set SPICY_API_KEY and skip the panel. No dependencies, no downloads, no GPU - Python 3.10+ and the V3 node API, which ComfyUI 0.39 has.
How to not waste money on it
Use single first. Multi-shot is impressive and it's also a bigger bet: you're asking the model to plan cuts and keep them coherent, and a five-second single shot is a fraction of the cost to iterate on. Move to multi once you know the prompt produces what you meant.
Long clips drift; that's what cuts are for. If you need twelve seconds, four shots of three seconds read better than one continuous twelve - and if you write them yourself in multi_prompt, you're the one deciding where the drift lands.
Set Max cost per run in the SpicyAPI settings before you start. Jobs are quoted first and anything above your ceiling aborts uncharged, and the node prints the real charge at the end. Seeds start fixed, so re-queueing an identical graph reuses the first result instead of charging you twice; switch control after generate to randomize when you want a new take. Interrupting a run stops your wait, not the job - the task keeps running, costs money if it succeeds, and lives in your console for up to 14 days.
Error codes worth knowing: 40310 means your account email isn't verified, 40004 means the option combination isn't served, and a proxy/firewall message means your HTTPS_PROXY setting is pointing at something that isn't working. And since the model list is fetched at startup, a model missing from your search needs a restart, not a reinstall.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe the scene, the action and the camera. With sound on, add dialogue in quotes and the sounds you want. | |
| negative_prompt | STRING | What to keep out of the clip: objects, looks or motion you do not want. | |
| aspect_ratio | COMBO | 16:9 | Output aspect ratio. |
| resolution | COMBO | 720p | Output resolution. Higher tiers cost more per second. |
| generate_audio | BOOLEAN | false | Generate a native soundtrack (voices, effects, ambience) with the picture. Audio costs more per second. |
| duration_seconds | INT | 53–15 | Output length in whole seconds, from 3 to 15. Billed per second. |
| shot_type | COMBO | single | single keeps one continuous shot; multi lets the model cut the prompt into several shots on its own; customize follows the shot list you give in multi_prompt. |
| multi_prompt | STRING | Shot list for shot_type customize: one entry per shot, in order, each with its own prompt and length in seconds. The lengths must add up to duration_seconds. JSON. A list of objects with "prompt", "duration_seconds". | |
| guidance_scale | FLOAT | 0.500–1 | How closely the clip follows the prompt, from 0 to 1. Higher sticks to the prompt more; lower gives the model more freedom. |
| seed | INT | 00–2147483647 | This model takes no seed, so the number is never sent. Changing it makes ComfyUI run the node again: set 'control after generate' to randomize for a new result on every run; every run is billed. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| task id | STRING | The SpicyAPI task id, for the console logs or support. |