Kling 4.0 · Image to Video
30 seconds, and keyframes in between
- image_url
- last_image_url
- keyframe_image_urls
- video
- task id
Most image-to-video nodes give you one still and five seconds, and you extend by chaining clips and praying the seams hold. This one gives you up to 30 seconds and, more interestingly, in-between keyframes - up to eight images the clip has to pass through on its way from your opening frame to your closing frame. That's storyboard control in a single call.
It is also, at from 32.4 credits per second ($0.32/s), the most expensive Kling in the pack apart from the reference model. A 10-second clip is 324 credits, about 32 cents. A 30-second one is 972.
How it works
The node uploads your frames (PNG, or JPEG if a frame exceeds the 10 MiB ceiling), takes a price quote, submits the task, polls it - printing queue state and elapsed time on the node - then downloads the MP4 and returns it as a VIDEO. Kuaishou renders at 1080p, and the node's description warns it "may queue when busy", which is your clue that a long Queued state is normal rather than a hang.
Inputs that matter
image_url - the opening frame. One image; if you connect a batch only the first is used.
keyframe_image_urls - the special one. An autogrow socket group: connect one image and a second socket appears, up to eight. Order is the order you connect them, and the clip visits each one between the opening and closing frame.
last_image_url - an optional closing frame. Combine it with keyframes and you're effectively animating a shot list.
prompt - the tooltip calls this optional, and it means it: describe what happens after the opening frame, the action, the camera, and the sound. With keyframes wired, keep the prompt about motion and lens, not staging - the frames are the staging.
aspect_ratio - auto (follows the opening frame) or a fixed 16:9, 9:16, 1:1, 21:9. auto is right unless you're deliberately re-framing.
resolution - 720p or 1080p; 1080p costs more per second.
duration_seconds - 3 to 30, whole seconds, billed per second.
Outputs
video (VIDEO) and task id (STRING). Video into Save Video or into another PopNow node; the id into your notes for the API console.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
Restart, add a key from popnow.ai/api/console/keys via Settings > PopNow or POPNOW_API_KEY, restart again so the node list comes from your account's catalog. ComfyUI Manager users can search PopNow and install from there. Nothing else gets installed - no models, no pip packages. Remove custom_nodes/popnow_api.py if you used the old single-file node.
Getting keyframes right, and what goes wrong
Keyframes are a consistency problem disguised as a convenience. If your eight in-between images have different lighting, different lenses or a slightly different face, the clip will dutifully travel through all of them and look like a slideshow with motion blur between. Generate the frames from one render, or from one character reference, so only the pose changes.
Budget matters more here than anywhere else in the pack because 30 seconds is a real option. At 32.4 cr/s, one 30-second take is nearly a thousand credits. Set Settings > PopNow > Max credits per run before your first run, and iterate at 720p/5 seconds until the motion is right.
If a run sits at Queued for minutes, that's the model's queue, not your machine. Interrupting doesn't cancel the job - it keeps going on PopNow, gets charged if it succeeds, and shows up in the API console. You can pick the result up there, or just wait next time.
Codes: 40201 for an empty wallet, 401 for a bad key, 40004 for a settings combination that can't be served, content_rejected for a refusal (refunded). Video inputs elsewhere in the pack cap at 90 MiB; here your stills cap at 10 MiB each as uploads, so keep the keyframes sane.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Optional: describe what happens after the opening frame - the action, the camera and the sound. | |
| image_url | IMAGE | Opening frame (JPEG or PNG). The clip starts from this image. | |
| aspect_ratio | COMBO | auto | Output aspect ratio; auto follows the opening frame. |
| resolution | COMBO | 720p | Output resolution. 1080p costs more per second. |
| duration_seconds | INT | 53–30 | Output length in whole seconds, from 3 to 30. Billed per second. |
| last_image_urlopt | IMAGE | Optional closing frame the clip should end on. | |
| keyframe_image_urlsopt | COMFY_AUTOGROW_V3 | Optional in-between frames, in the order they should appear: up to 9, or up to 8 when you also send a closing frame. The clip passes through each one between the opening and the closing frame. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| task id | STRING | The PopNow task id, for the API console logs or support. |