Seedance 2.0 · Reference to Video
Nine photos, one shot, no GPU
- reference_image_urls
- reference_video_urls
- reference_audio_urls
- video
- last frame
- task id
Seedance 2.0 Reference to Video is the node you want when you have material and no camera: nine reference stills, a couple of short clips for motion, maybe an audio bed, and a prompt that says what should happen. It sends all of that to ByteDance's Seedance 2.0 model on PopNow's servers and hands you back a clip up to 4K with a native soundtrack. Your own GPU does nothing but decode the result.
That last part is the whole pitch, and also the thing to be clear-eyed about. There are no Seedance weights to download - it's a closed model, so a hosted call is the only door into ComfyUI. You're paying per second and your reference images leave your machine. If that trade is fine, this is one of the better-designed versions of it.
How the mechanism actually works
The pack builds one node per PopNow catalog model from that model's published input schema, so the widgets you see are what the model accepts - nothing more. When you queue, the node quotes the run first (jobs/quote), uploads anything you wired in, submits with an idempotency key, polls, then downloads the finished MP4 and decodes it into a ComfyUI VIDEO.
Uploads are cached by content hash for 12 hours. Rerun the graph with a new prompt and the same reference photos and it won't re-upload them, which matters on a 30 MB reference clip.
The inputs that matter
prompt- subject, action, camera movement, mood. Short and declarative beats a paragraph.reference_image_urls- an autogrow socket group; plug in up to 9 images. Each connection adds a new socket, so you don't need a batching node. Characters, style and composition carry over.reference_video_urls- up to 3 clips, 15 seconds total, for motion and pacing. Read the tooltip twice: reference footage is billed on the same linear per-second basis as output length, so a 15-second reference costs about as much as 15 extra seconds of generation.duration_seconds- the billed quantity.-1means "smart duration" and lets the model choose.resolution- 480p, 720p, 1080p or 4k. 720p at 5 seconds starts around 6.47 credits/second, so roughly 32 credits for a draft; 4K is where the meter starts moving.generate_audio- on by default. The soundtrack is generated with the picture, not added after.
Leave seed alone until something is worth repeating; the field defaults to fixed, so a re-queue sends the same seed. Switch ComfyUI's control-after-generate widget to randomize when you want a different take - every run is billed either way.
Outputs
video (wire to Save Video or a preview node), last frame (an IMAGE - only populated when return_last_frame is on), and task id (a string; paste it into the PopNow API console when a run goes wrong, or give it to support).
One trap, straight from the source: the last frame socket exists whether or not the switch is on. With return_last_frame off, anything downstream of that socket gets blocked with a message telling you to turn it on. That's not a bug, but it looks like one.
Install
Manager, search PopNow, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
Then get a key at popnow.ai/api/console/keys, paste it into Settings > PopNow (or set POPNOW_API_KEY), and restart once more - the node list is rebuilt from your account's catalog at startup. There is nothing to pip install: the pack's pyproject.toml declares an empty dependency list and uses only what ComfyUI already ships.
If you used the old single-file popnow_api.py, delete it; the node type is the same and workflows keep working.
Common issues
No PopNow API key is set/PopNow 401- key not set, mistyped, or revoked. Settings first, environment variable second.PopNow 40201- out of credits. Drop to 720p or shorten the clip.PopNow 40004- the model won't serve that combination (usually 4K plus an odd aspect ratio). Change the one the error names.PopNow 400mentioning a field - often a reference count or total length over the limit: 9 images, 3 clips, 15 seconds of video.- A long queue that never finishes - cancelling in ComfyUI stops your wait, not the job. It keeps running on PopNow, gets charged if it succeeds, and the result is sitting in your API console.
Set Settings > PopNow > Max credits per run before you experiment with 4K. The quote is checked against that ceiling before anything is held, which is the difference between a bad afternoon and a bad invoice.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | What to generate: subject, action, camera movement and mood. | |
| aspect_ratio | COMBO | adaptive | Aspect ratio of the generated video. |
| resolution | COMBO | 720p | Output resolution. Super-resolution tiers are not offered. |
| duration_seconds | COMBO | 5 | Clip length in seconds. This is the billed quantity. Pass -1 for smart duration: the model picks the length itself instead of a fixed number. |
| generate_audio | BOOLEAN | true | Generate a native soundtrack synchronised to the picture. |
| seed | INT | 00–2147483647 | Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed. |
| return_last_frame | BOOLEAN | false | Also return the clip’s final frame as a separate image. |
| bitrate_mode | COMBO | standard | Encoding bitrate of the delivered file: standard, or high for crisper detail and a larger file. |
| watermark | BOOLEAN | false | Add the model’s visible "AI generated" watermark to the video. |
| reference_image_urlsopt | COMFY_AUTOGROW_V3 | Reference image URLs (up to 9). Characters, style and scene composition are carried over from them. | |
| reference_video_urlsopt | COMFY_AUTOGROW_V3 | Reference video URLs (total length 15 s or less, up to 3). Motion and pacing are carried over from them. Reference footage is billed on the same linear basis as clip length, so longer references cost more. | |
| reference_audio_urlsopt | COMFY_AUTOGROW_V3 | Reference audio URLs (total length 15 s or less, up to 3). The generated soundtrack follows them. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| last frame | IMAGE | Needs return_last_frame turned on. |
| task id | STRING | The PopNow task id, for the API console logs or support. |