Seedance 2.0 · Image to Video
4K, and you'll pay for it
- image_url
- last_image_url
- video
- last frame
- task id
This is the full-fat one. Seedance 2.0 animates a still at up to 4K with native audio, and it's the strongest video node in the ByteDance corner of this pack. It's also where the community's loudest objection to API nodes gets concrete: the reaction to Seedance 2.0 arriving in ComfyUI as a metered call was, roughly, "great, another subscription" - with the reply that this is simply what the render costs once nobody's subsidising it.
Both are true. Use it for finals, not for finding out whether an idea works. At the time of writing the badge started around 10.5 credits ($0.105) per second, and in the shipped price table the 4K tier is several times the 720p rate, so the resolution dropdown is the most expensive control you'll touch.
How it works
The node builds the request from the widgets, uploads the opening frame, quotes the run, submits it under an idempotency key, polls while showing the estimate and elapsed time, then downloads and decodes the result to a VIDEO. Any field you leave at a default is dropped from the payload so the model decides - including duration_seconds at -1, which means "smart duration, you pick".
The last frame output is gated on return_last_frame. With the switch off, that socket is an execution blocker rather than an empty image, so downstream nodes don't run at all. That's deliberate - it stops a black frame reaching your upscaler - but it reads as a mystery the first time it happens.
The inputs that matter
image_url - first frame. last_image_url - optional closing frame, and the tooltip carries a real constraint: it's only accepted together with image_url. There's no "end frame from nothing" mode.
prompt - subject, action, camera movement, mood. Mention sound; generate_audio defaults on and the soundtrack lands inside the video file.
resolution - 480p, 720p, 1080p or 4k, with no super-resolution tiers offered. This decides your budget more than anything else on the node.
duration_seconds - 4 to 15, or -1 for smart duration. Billed quantity.
aspect_ratio - adaptive by default (follows your image), plus 21:9, 16:9, 4:3, 1:1, 3:4, 9:16.
generate_audio - native synchronized soundtrack. On by default; cheap to leave on at this tier relative to the base rate.
bitrate_mode - standard or high. High gives crisper delivery for a bigger file; it's encoding, not generation.
watermark - off by default.
seed - fixed, so a re-queue reuses the cached result rather than billing twice.
Outputs
video → Save Video. last frame → an IMAGE you can feed into the next shot's image_url, which is how a multi-shot sequence gets continuity without a separate frame extractor. task id → the API console and support.
Installing it
Manager → search PopNow → Install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
Grab a key at popnow.ai/api/console/keys, restart ComfyUI, enter it in Settings > PopNow (or set POPNOW_API_KEY), and restart once more so the node list reflects your account. No model files to download, no dependency install - which is the whole argument for a pack like this on a machine without a GPU.
Where people get burned
Cost, mostly, and mostly at 4K. A 15-second 4K render is the sort of number that makes people write the Reddit comment quoted above. Go to Settings > PopNow > Max credits per run and set a ceiling before you experiment; the run is quoted first, so an over-ceiling quote stops with nothing held.
Then the delivery details: 4K output is big, and the upload side has a 90 MiB ceiling on video inputs - irrelevant for image-to-video, very relevant once you start extending. If you go over, re-encode rather than retry.
And the rules of the category haven't changed: your frames and prompts leave your machine, the content filter is ByteDance's, and cancelling a run doesn't refund it.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | What to generate: subject, action, camera movement and mood. | |
| image_url | IMAGE | URL of the image used as the first frame. | |
| 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. |
| last_image_urlopt | IMAGE | URL of the image used as the closing frame. Only accepted together with image_url. |
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. |