Wan 3.0 Prime · Text to Video
Thirty seconds, sound included, no weights
- video
- task id
Native audio was the last thing open video models couldn't do. Veo 3 had it, nobody else did, and it was the single capability gap the local crowd kept having to work around with a foley node and a hope. That gap has been closing through 2026, but not on your GPU - the models that generate picture and sound together are almost all API-side, and Wan 3.0 is one of them.
This node is the Prime tier of Wan 3.0's text-to-video: prompt in, up to thirty seconds of footage with a soundtrack, at 9.18 credits ($0.0918) per second. You're paying roughly a third more per second than base Wan 3.0 for the same fields rendered quicker, which is exactly what Prime means in this pack.
How it works
Generated from the model's input schema, quoted before credits are held, submitted with an idempotency key, polled while the node shows progress, and downloaded as a ComfyUI VIDEO. The interesting mechanics are in the schema itself rather than the plumbing.
generate_audio defaults to on. That's a deliberate default: this model's pitch is picture and sound together, and the pack doesn't make you find a switch to get what you asked for. Turn it off when the clip is going under your own music.
duration_seconds runs 2 to 30 plus -1. -1 is smart duration - the model reads your prompt and picks a length. It's a weird-looking option in a dropdown and it's genuinely useful: instead of you guessing whether an action needs six seconds or eleven, let the model decide and see what it thinks.
The inputs that matter
prompt - the tooltip's checklist is worth following literally: subject, action, camera, light, pacing, boundaries. With thirty seconds to fill, "boundaries" is the field that keeps the model from inventing a second act you didn't ask for.
resolution - 480p, 720p, 1080p. aspect_ratio - 16:9, 9:16, 1:1, 4:3, 3:4, or adaptive; the default is model default, meaning nothing is sent and the task adapts to the intent. For anything headed to a vertical platform, set it explicitly.
enable_thinking - off by default. It makes the model reason about the brief before rendering: slower, better on complicated prompts, and it switches itself on when a reference file or link is involved. enable_prompt_expansion rewrites your brief before generation - helpful for terse prompts, destructive for carefully worded ones.
seed defaults to fixed behaviour. Re-queue the same graph and ComfyUI gives you the cached result rather than a second bill; move control-after-generate to randomize when you want a new roll.
Outputs: video and task id.
Installing it
Manager > Custom Nodes Manager > search PopNow > Install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
Restart, create a key at popnow.ai/api/console/keys, paste it into Settings > PopNow or export POPNOW_API_KEY, restart again. No model downloads, no dependencies beyond ComfyUI, no GPU needed. If a model seems missing from the node search afterwards, restart - the list is rebuilt from your account's catalog at startup, not fetched as you type.
Delete custom_nodes/popnow_api.py if you're coming from the single-file version.
Where people get burned
The arithmetic. Thirty seconds at 9.18 credits is a couple of hundred credits on one queue click - tens of cents, yes, but a dozen of those is a real bill. Draft at 480p and five seconds, then scale the winner up.
The other trap is audio-enabled iteration. Sound doubles the thing you have to re-listen to on every take, and if you're going to mux your own audio anyway you've bought a soundtrack twice.
Codes: 40201 credits, 40004 unsupported settings combination with the field named, 400 a rejected value, 40310 unverified email, content_rejected declined and refunded. Interrupting doesn't cancel the task - it keeps running on PopNow and charges if it succeeds.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe the subject, action, camera, light, pacing, and boundaries for the shot. | |
| aspect_ratio | COMBO | 16:9 | Output aspect ratio; adaptive follows the input media and the intent. |
| enable_thinking | BOOLEAN | false | Let the model reason about the brief and the reference material before generating. Helps with complex references; slower. Switches on by itself when a reference file or link is given. |
| resolution | COMBO | 720p | Output resolution. |
| duration_seconds | COMBO | 5 | Requested output length in seconds. Pass -1 for smart duration: the model picks the length from the prompt and any input media instead of a fixed number. |
| generate_audio | BOOLEAN | true | Request generated audio with the video. |
| enable_prompt_expansion | BOOLEAN | false | Allow the service to expand the submitted creative brief before generation. |
| 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. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| task id | STRING | The PopNow task id, for the API console logs or support. |