Wan 3.0 Pro · Text to Video
The 4K tier is a 1080p render in a bigger coat
- video
- task id
Read the tooltip on resolution before you spend anything. A native Wan 3.0 render tops out at 1080p, and the 2k and 4k tiers are that render enlarged - not more detail, more pixels. If you queued 4K expecting a sharper frame, budget for disappointment; if you queued 4K because your delivery spec wants a 4K container, carry on.
Why there's a node at all
Alibaba stopped shipping open weights after Wan 2.2. Wan 2.5, 2.6, 2.7 and now 3.0 are API-only - there is no checkpoint to download, no GGUF, no 4-step Lightning LoRA to try. So "Wan 3.0 in ComfyUI" doesn't mean a local graph. It means a node that reaches out and runs it on someone's H800. This is that node, from the PopNow pack.
That reframes the whole thing. You're not choosing between a local sampler and a cloud one; you're choosing between Wan 3.0 and whatever you already have installed. If local Wan 2.2 workflows pay your bills, this is the paid holiday version. The tradeoff is the one that comes with every API node: per-second billing and prompts that leave your machine.
How it works underneath
The pack generates one node class per model in PopNow's public catalog, and each node's widgets are built from that model's published input schema - so the fields you see are exactly what alibaba/wan-3.0-pro/text-to-video accepts, no more. On queue, the node takes your widget values and builds a request, skipping any field you left at "model default" or -1. It asks PopNow for a quote first, holds that much against your credit balance, submits with an idempotency key so a network retry can't bill you twice, polls the task, downloads the MP4 and hands it to ComfyUI as a normal VIDEO, which is what Save Video and the frame extractors already expect.
The node's status line shows the estimate, queue position and, at the end, what the run was actually charged.
The fields you'll actually set
prompt gets subject, motion and camera - the tooltip's own list. duration_seconds runs 2 to 30, or -1 to let the model pick a length from the prompt; with no image input there's nothing else for it to read, so smart duration is mostly a pleasant surprise generator. aspect_ratio is 16:9, 4:3, 1:1, 3:4, 9:16 or adaptive, which follows the input media and the intent - on a text-only node, "adaptive" means the model decides.
generate_audio is on by default, and audio is a big part of what you're paying Wan 3.0 for, so leave it. enable_prompt_expansion is also on by default here: the service rewrites your brief into something fuller before generating. Great when your prompt is three words; annoying when you've tuned phrasing and want the seed to mean something. Turn it off before you conclude a seed "doesn't work".
seed defaults to fixed on purpose - the same workflow queued twice reuses the first result instead of quietly charging for a second. Flip control-after-generate to randomize when you actually want a new one.
Output: video, plus task id, which is the string you hand to PopNow's API console or support when something went wrong.
Cost, honestly
From 21.6 credits per second at the starting tier, 1 credit = $0.001. A 5-second 1080p clip starts around 108 credits - about eleven cents. Thirty seconds is roughly 65 cents, and going up a resolution tier moves the rate. Cheap for what it is, and still cheap enough to burn through in an afternoon of "one more variant."
Set Settings > PopNow > Max credits per run to a number you're comfortable losing. Any run quoted above it stops before anything is held.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
Or in ComfyUI Manager, search PopNow and install. Nothing else to install - the pack uses only what ComfyUI already ships. Grab a key at popnow.ai/api/console/keys, restart, paste it in Settings > PopNow (or set POPNOW_API_KEY), then restart once more so the node list is rebuilt from your account.
If you used the old single-file custom_nodes/popnow_api.py, delete it first - the PopNow Generate node in this pack is the same node type, so your saved workflows keep working.
Where people get burned
Cancelling a run stops the wait, not the job: it keeps generating on PopNow, gets charged if it succeeds, and the result sits in the API console. There's a hard ceiling of 30 seconds per clip, so long takes are a chain of extends, not one render. A 40201 is simply an empty wallet; a 40310 is an unverified email. A 400 that names a field means the model refused that value - the node's description links the model page with the legal ones.
And no, you don't need a GPU. That's the entire point.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe the subject, motion and camera. | |
| resolution | COMBO | 1080p | Output resolution tier. A native Wan 3.0 render tops out at 1080p, so the 2k and 4k tiers are delivered by enlarging that render instead of rendering natively at those sizes. |
| aspect_ratio | COMBO | adaptive | Output aspect ratio; adaptive follows the input media and the intent. |
| duration_seconds | COMBO | 5 | Output duration 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 | Include an audio track in the output. |
| enable_prompt_expansion | BOOLEAN | true | Expand the prompt 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. |