Seedance 2.5 · Text to Video
A whole scene from a sentence
- video
- last frame
- task id
If you want one node in this pack that shows you what the money is for, it's this one. Seedance 2.5 Text to Video turns a prompt into up to 30 seconds of video with a synchronised soundtrack, at up to 1080p, with nothing installed locally. No VAE, no text encoder, no 20-minute model download, no VRAM anxiety. It's the least fiddly video generation you can do in ComfyUI and the most expensive per second, and both facts come from the same place.
The rate starts at 18.51 credits per second. Five seconds is about 93 credits; thirty seconds is roughly 555. Cheap enough to play, expensive enough that you shouldn't be burning runs at 1080p to find out whether your prompt works. One budgeting caveat: the README puts a credit at a tenth of a cent while the price strings on the nodes convert at a full cent - a 10x gap. Trust the badge against your real balance, not your own arithmetic.
What happens when you queue
PopNow operates the API these nodes call, so this pack is the vendor's own ComfyUI front end - the schema comes from the model, the price badge on the node updates as you change settings, and every run is quoted with jobs/quote before anything is held. Submissions carry an idempotency key, so a retry after a network blip doesn't create a second task. Failed runs are refunded; runs that succeed are charged whether you like the output or not.
The generation itself runs on PopNow's servers. Your prompt goes to ByteDance's model, which means their content filter applies and there's no local way around it. That's the standing trade for closed video models inside ComfyUI. You're buying capability you can't download.
Inputs you'll actually touch
prompt- subject, action, camera movement, mood. On 30-second runs, write it as beats ("a cyclist crests the hill, camera tracks alongside, she slows at the top") rather than a single frozen image description. The model has time to do more than one thing now.duration_seconds- 4 to 30, integer, default 5. The billed quantity. Start at 4.resolution- 480p, 720p, 1080p. 480p for a look-dev pass, 1080p once the shot is locked. No 4K on 2.5.aspect_ratio- 21:9, 16:9, 4:3, 1:1, 3:4, 9:16,adaptive.adaptivelets the model decide, which is fine for experiments and wrong for deliverables.generate_audio- on by default. Native, synchronised. If you're scoring separately, turn it off.output_format-mp4ormov.enable_web_search- off. Only flip it if the render needs facts you don't have.watermark,seed- off and fixed, respectively.
Outputs
video → Save Video (or a preview node while you iterate). last frame → an IMAGE, only filled when return_last_frame is on; with it off the socket still exists and blocks anything downstream with a message telling you to switch it on. task id → the string for the API console or support.
Install
Manager: search PopNow, Install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
Then paste a key from popnow.ai/api/console/keys into Settings > PopNow, or export POPNOW_API_KEY, and restart once more so the node list comes from your account. There is genuinely nothing else to install: the pack's pyproject.toml has an empty dependency list, and it uses only Python 3.10+, ComfyUI's node API, and the libraries ComfyUI already ships.
If you had the older single-file popnow_api.py in custom_nodes, delete it - same node type underneath, and leaving both can confuse you rather than ComfyUI.
Where it goes wrong
PopNow 40201- no credits. At this rate, buy before you batch.PopNow 40004- that combination isn't served, and the message names the field. Long duration plus the top resolution is the usual culprit.PopNow 40310- verify your email from the signup link. Nobody expects this one.content_rejected/generation_failed- the model declined or couldn't finish. Refunded, so reword and rerun rather than sulking.- An error with
request_id ...at the end - that id is exact; hand it to support and skip the guesswork. - Cancelling - stops your wait, not the run. It finishes server-side, bills on success, and lives in your API console.
One habit worth forming: set Settings > PopNow > Max credits per run the day you install. Everything on this node is metered by seconds, and the only thing standing between a mis-click and a 30-second 1080p charge is that ceiling, which is checked before anything is held.
Inputs (10)
| 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 | INT | 54–30 | Clip length in seconds. This is the billed quantity. |
| generate_audio | BOOLEAN | true | Generate a native soundtrack synchronised to the picture. |
| output_format | COMBO | mp4 | Container of the returned video. |
| enable_web_search | BOOLEAN | false | Let the model search the web for information related to the prompt before rendering. |
| 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. |
| watermark | BOOLEAN | false | Ask the model to watermark the video as AI-generated. |
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. |