Kling 4.0 · Reference to Video
A casting sheet, a motion reference, and @tags
- reference_image_urls
- reference_video_urls
- reference_audio_urls
- video
- task id
This is the node for "I have a character, an outfit, a location and a piece of footage I like the camera from - make me a shot". Instead of one start frame you hand it sets of reference images, videos and audio clips, then address them by tag in the prompt: @Image1, @Video1, @Audio1. From about 32.4 credits per second, and reference video seconds are billed too, at a lower rate than output seconds.
The mechanism
Everything you connect gets uploaded to PopNow - images as PNG/JPEG (10 MiB ceiling each), video re-muxed to MP4 (90 MiB ceiling), audio converted to 16-bit WAV - and Kuaishou's model composes the shot from them. The node quotes first, submits with an idempotency key, polls with progress on the node, and returns the finished clip as a VIDEO. No local model, no IP-Adapter, no reference tricks to assemble by hand.
The three reference inputs are autogrow socket groups: connect one image to reference_image_urls and a second socket appears, up to ten. Numbering follows connection order, which is what @Image1, @Image2 refer to.
Inputs
prompt - say what each reference is and what the shot should do with it. Name them explicitly: "@Image1 walks into the frame wearing @Image2's jacket, camera moves like @Video1". Vague references are the number one reason this node produces something generic.
reference_image_urls - up to 10 images: characters, objects, outfits, places.
reference_video_urls - up to 5 clips, 30 seconds total, for motion, camera and pacing. Their seconds are billed too, at a lower rate, so a 20-second reference isn't free.
reference_audio_urls - up to 3 clips of 5–30 seconds each, for a voice or a sound.
keep_original_audio - off by default. Turn it on if you supplied a reference video and want its sound kept instead of generating new audio. Only used when there is a reference video.
duration_seconds - 3 to 30, per-second billing. aspect_ratio - auto or a fixed ratio. resolution - 720p or 1080p.
Outputs
video (VIDEO) and task id (STRING). The video behaves like any other ComfyUI video - Save Video, or another PopNow node downstream. The task id is what the API console and support use.
Install
Manager → search PopNow → Install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
Then a key from popnow.ai/api/console/keys into Settings > PopNow, or POPNOW_API_KEY in the environment. Restart again so the catalog is read from your account. No model downloads, no dependencies, works on a machine with no GPU. Delete custom_nodes/popnow_api.py if it's still around from the single-file release.
What goes wrong
Uploads are cached by content hash for 12 hours per API key, so re-running with a tweaked prompt doesn't re-send your ten reference images. That's the good news. The bad news is the 90 MiB per-video cap - reference footage adds up fast when you connect five clips, and the error is a flat "larger than the 90 MiB upload limit".
Cost sneaks up in two places: the reference video seconds are billed on top of output seconds, and 30-second outputs at this rate are nearly a thousand credits a take. Put a ceiling in Settings > PopNow > Max credits per run and let the node refuse the expensive accidents for you.
Cancelling in ComfyUI stops the wait, not the job - the task keeps running on PopNow, is charged if it succeeds, and the result appears in the API console. 40201 means empty wallet, 401 a dead key, 400/40004 a field or combination the model won't take.
And a workflow note: this node pays off when your references are consistent. Ten images of the same character from different angles gives the model a consistent identity. Ten images from ten different artists gives it ten arguments.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Say what each reference is and what the shot should do with it. Refer to images as @Image1, @Image2, to videos as @Video1 and to audio clips as @Audio1, numbered in upload order. | |
| aspect_ratio | COMBO | auto | Output aspect ratio; auto follows the reference images or video. |
| resolution | COMBO | 720p | Output resolution. 1080p costs more per second. |
| keep_original_audio | BOOLEAN | false | Keep the reference video's own sound instead of generating new audio. Only used with a reference video. |
| duration_seconds | INT | 53–30 | Output length in whole seconds, from 3 to 30. Billed per second. |
| reference_image_urlsopt | COMFY_AUTOGROW_V3 | Reference images for characters, objects, outfits or places, up to 10. Refer to them as @Image1, @Image2 and so on. | |
| reference_video_urlsopt | COMFY_AUTOGROW_V3 | Optional reference videos for motion, camera and pacing, up to 5 and 30 seconds in total. Refer to them as @Video1, @Video2. With a reference video the clip is billed at a separate per-second rate on the output seconds plus the reference seconds, counting at least as many reference seconds as output seconds. | |
| reference_audio_urlsopt | COMFY_AUTOGROW_V3 | Optional reference audio for a voice or a sound, up to 3 clips of 5 to 30 seconds each. Refer to them as @Audio1, @Audio2. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| task id | STRING | The PopNow task id, for the API console logs or support. |