Seedance 2.0 Fast · Reference to Video
Images, clips and audio as source material
- reference_image_urls
- reference_video_urls
- reference_audio_urls
- video
- last frame
- task id
Image-to-video gives the model a first frame and asks it to move. Reference-to-video gives it material and asks it to make something in that style - a character, a look, a motion, a mood. It's the node you want when you're not animating a still but building a shot around references.
Seedance 2.0 Fast's version takes three flavours of reference: images, video and audio, each on its own autogrow socket. That last one is rarer than it should be, and the video one changes how the bill works.
How the references work
Each input is a socket group that grows: connect one image and you get reference_image_0, connect another and a second socket appears. Feed a batch and each picture in it becomes a reference. Same for reference_video_urls and reference_audio_urls.
Everything gets uploaded to PopNow first - images as PNG when they fit under the 10 MiB ceiling, video and audio re-encoded to MP4 and WAV under 90 MiB - and uploads are cached per key for 12 hours, so the second run with the same references is a prompt-only round trip.
The thing to understand about pricing here: the per-second rate on the badge drops when a video reference is connected, which looks like a discount until you realise what it means. Reference footage is billed on the same linear basis as clip length, so a long reference costs more in its own right. The low number is not a shortcut.
The inputs that matter
reference_image_urls - characters, style, composition. For Seedance 2.0 proper this takes up to nine; on Fast, keep it focused, because a dozen halfway-relevant references just averages into mush.
reference_video_urls - motion and pacing. This is the killer feature and the expensive one. Short, on-target clips beat long ones both on results and on bill.
reference_audio_urls - the generated soundtrack follows them. Underused. If you have a track you want the cut to sit on, this is how you say so.
prompt - subject, action, camera, light, sound, constraints. With references in play, your prompt's job shifts from describing the look to describing the relationship: what comes from which reference, what changes, what must hold.
duration_seconds - 4 to 15, or -1 for smart duration where the model picks the length. The billed quantity either way.
resolution - 480p or 720p; Fast doesn't go higher. aspect_ratio defaults to adaptive, so it follows your references; override when you need a fixed frame.
return_last_frame - off by default, and worth turning on if you plan to chain. With it off the last frame output blocks downstream nodes rather than returning a blank image.
bitrate_mode and watermark - file quality and the visible "AI generated" mark. Both cosmetic, both off/standard by default.
seed - fixed by default so a re-queue reuses the previous result instead of billing again.
Outputs
video, last frame (an IMAGE, needs the switch), task id. The task id is the thing to keep when a render looks wrong - it maps to the exact job in the API console.
Installing it
In Manager, search PopNow, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
Key from popnow.ai/api/console/keys → Settings > PopNow, or POPNOW_API_KEY in the environment. Restart once more so the node list comes from your account. Nothing else to install.
Where people get burned
Reference confusion is the real failure mode: three images, a clip and an audio track with a one-line prompt gets you a plausible average of everything. Write the prompt as if you're directing an editor - "the woman from image 1, the camera move from the video, cut to the beat of the audio, no text overlays".
Cost sneaks up through the video references. Every second of reference footage is charged, so a 15-second reference is not a free style hint.
And the usual hosted-model reality: you can't patch the filter, you can't run it offline, and cancel doesn't refund. Set Max credits per run.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe the intended subject, action, camera, light, sound, and constraints. | |
| aspect_ratio | COMBO | adaptive | Output frame ratio. |
| resolution | COMBO | 720p | Output resolution. |
| duration_seconds | COMBO | 5 | Requested output duration in seconds. Pass -1 for smart duration: the model picks the length itself instead of a fixed number. |
| generate_audio | BOOLEAN | true | Request synchronised output audio. |
| 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 | Authorised image references. | |
| reference_video_urlsopt | COMFY_AUTOGROW_V3 | Authorised video references. | |
| reference_audio_urlsopt | COMFY_AUTOGROW_V3 | Authorised audio references. |
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. |