Seedance 2.0 Fast · Image to Video
The 720p workhorse, with a last frame you can use
- image_url
- last_image_url
- video
- last frame
- task id
Seedance 2.0 Fast is the tier most people should actually default to: the 2.0 model, capped at 720p, with sound, at about two thirds of what the full 2.0 charges per second. Feed it a still, get a moving shot. If you're animating product shots, portraits or concept frames and 720p is enough for review, this is the node.
It also has the single most useful output in the family: last frame. Turn return_last_frame on and the clip's final frame comes back as a separate IMAGE, which means you can chain shots, or use it as the seed for the next scene, without a frame-extraction node.
How it works
Business as usual for this pack: the node builds the request, uploads your picture (cached for 12 hours per key, so a prompt tweak doesn't re-send it), quotes the job, submits under an idempotency key, polls with live status on the node, then downloads and decodes the MP4 to a ComfyUI VIDEO.
The last frame output deserves a note on mechanism. It's gated on return_last_frame: with the switch off, that output is an execution blocker rather than an empty image, so anything wired downstream simply doesn't run. That's the pack being polite - it stops a half-built graph instead of feeding a black square into an upscaler - but the symptoms look like "my downstream node didn't execute", so remember the switch.
The inputs that matter
image_url - the source image, which the tooltip frames as one you're authorised to process. Wire Load Image; a batch sends the first picture.
prompt - subject, action, camera, light, sound, and constraints. The tooltip's list is a good checklist, and mentioning sound pays off because generate_audio defaults on.
duration_seconds - a combo, with -1 as the interesting option: smart duration, where the model picks the length itself. Otherwise 4 to 15 seconds. Smart duration is genuinely useful for a shot you don't want to pad; it's also the one setting where you don't know the bill in advance, which is why the node quotes before running.
resolution - 480p or 720p. That's the Fast tier's deal: no 1080p, no 4K. Use 480p for concept passes.
aspect_ratio - defaults to adaptive, which follows your source, plus the usual 16:9/9:16/1:1/21:9 set.
bitrate_mode - standard or high. High gives crisper detail and a bigger file; it doesn't change what the model generates, just what it hands you. Worth it for anything you'll grade.
watermark - off by default. Leave it off unless you actually want the visible "AI generated" mark.
return_last_frame - see above. Turn it on the moment you plan to chain.
last_image_url - optional closing frame, if you need the shot to land somewhere specific.
seed - fixed by default so a re-queue reuses the result instead of billing twice; randomise deliberately.
Outputs
video for Save Video, last frame (an IMAGE, needs the switch), and task id for the API console or support.
Installing it
Manager → PopNow → Install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
Key from popnow.ai/api/console/keys into Settings > PopNow, or POPNOW_API_KEY in the environment; restart again so the catalog loads. No downloads, no extra dependencies.
Where people get burned
The 720p ceiling is the obvious one. If a client wants 1080p, this isn't the node - go up to Seedance 2.0 · Image to Video and pay for it.
Smart duration (-1) is worth treating with mild suspicion on your first runs: you can't predict the seconds, so you can't predict the cost. The quote protects you, but only if you've set Max credits per run to something you're comfortable with.
And the general rule for anything hosted: the filter belongs to ByteDance, not to PopNow, so a refusal can't be worked around by changing packs.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe the intended subject, action, camera, light, sound, and constraints. | |
| image_url | IMAGE | A source image that you are authorised to process. | |
| 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. |
| last_image_urlopt | IMAGE | Optional closing image for the chosen video workflow. |
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. |