Wan 3.0 Prime · Text to Video
Prompt-only video with sound, on someone else's GPU
- video
- task id
No source image, no reference, no keyframes - type a shot description and get back a clip with audio sliced into the same file. Wan 3.0 Prime is the fast tier of Alibaba's 3.0 video family, and this node is the plainest way to try it from inside ComfyUI: you're buying render seconds from SpicyAPI's servers instead of fitting a video model on your card.
Where it fits
The open-weights story in video went Wan 2.1 → Wan 2.2, and 2.2 is still the thing you download when you want to run video locally. Wan 3.0 didn't come with that door. It's a hosted generation, and it's the one with synchronised audio out of the box - the same capability gap Google's Veo opened and MiniMax's H3 was the first open answer to. So the honest framing is: reach for this when you want a polished clip with sound and don't want a two-stage silent-render-plus-audio workflow, and stay local when the shot is something a hosted filter won't take or when you'd rather not pay per second.
This particular variant is text-driven, so it's also the fastest way to storyboard: write four prompts, get four clips, cut them together. Pair it with a Chat node or a local LLM if you don't feel like writing camera moves by hand.
The knobs, and the two that matter
The schema is small and honest:
- prompt - describe subject, action, camera, light, pacing, and boundaries. Boundaries matter here; without them the model invents an ending.
- aspect_ratio - default 16:9, with 9:16, 1:1, 4:3, 3:4 and
adaptiveavailable.adaptivefollows the intent of the prompt. - resolution - 480p, 720p or 1080p, default 720p.
- duration_seconds - default 5, and you can pass
-1for smart duration, which lets the model decide how long the shot should be instead of forcing a 5-second edit onto a 12-second idea. That's the setting most people never touch and should. - enable_thinking - off by default. It makes the model reason about the brief first, which helps with busy prompts and costs you time.
- generate_audio - on by default.
- enable_prompt_expansion - off by default here; it's the Pro tiers that ship it on.
- seed.
Wire video into Save Video. task id is a second output - a STRING with the SpicyAPI task id, useful when a run fails and you want the console log or support to find it.
Install
Manager → SpicyAPI, or:
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Restart, open Settings > SpicyAPI, paste a key from spicyapi.ai/console/keys, restart again so the node list comes from your account. Servers: SPICY_API_KEY in the environment works and is the better habit. Zero pip dependencies on purpose - the pack only uses libraries ComfyUI already ships. Python 3.10+ and the V3 node API (tested with ComfyUI 0.39).
What a run costs
Wan 3.0 Prime is $0.0612/s at 480p, $0.126/s at 720p, and $0.252/s at 1080p, so a 5-second 720p clip is around 63 cents and a 10-second 1080p clip is $2.52. Two habits keep that from surprising you: set Max cost per run in the SpicyAPI settings (the pack quotes each request first and refuses anything above your ceiling before charging), and leave the seed on fixed while you iterate on the prompt. Queueing the identical graph twice reuses the first result instead of quietly buying a second one. When you do want a fresh take, switch control after generate to randomize - and budget for it.
Cancelling is one-directional: stopping the wait in ComfyUI does not stop the job on SpicyAPI. It completes, is billed if it succeeds, and the result is recoverable in your console for up to 14 days.
Troubleshooting
The pack's error messages are unusually specific, so read them rather than guessing. No SpicyAPI key is set → add the key or the env var. 40310 → verify your email. 40004 no deployment serves this combination → change the option the message names; resolution-versus-duration pairs are the usual offenders. Anything ending in request_id ... is support-ready as-is. If you see the proxy/firewall notice, check that HTTPS_PROXY actually points somewhere that works.
One more thing worth knowing before you build a pipeline on it: this vendor has no visible track record in the Reddit corpus - no threads at all. Early adoption is fine, but start with cheap 480p runs and read the node code (MIT, a couple thousand lines) if you want to know exactly what leaves your machine.
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 SpicyAPI task id, for the console logs or support. |