Protoface Wan 3.0 Prime · Text to Video
30-Second Clips With the Audio Already In
- video
- files
- run id
Local Wan stops at 2.2. Everything after that - 2.5, 2.6, 2.7, and now 3.0 - is API-only, so if you want the current Wan without a hosted account you don't get it. This node is the plain text-to-video door into Wan 3.0 Prime: prompt in, up to 30 seconds of video with native audio out.
Text to video, and when it beats animating a frame
The KB's Wan section is blunt about the ceiling that actually bites: five-second clips were the community's standing complaint for a year, and every workaround - SVI, VACE joins, chunk stitching - was engineering around a generation-length limit. Wan 3.0's 2–30 second range is the direct answer to that, and it's the single best reason to spend money here instead of booting a local 2.2 workflow to get six seconds and a seam.
Text-to-video, though, is the operation where you give up your strongest lever. With no start frame, the model picks the composition. If you have a still you like, use the image-to-video node - same model, same price tier, dramatically more control. Come here when you genuinely want the model to invent, or when you're exploring a look before you commit a frame to it.
How it works
There's no Wan code in the pack. Protoface bundles a catalog of model/task request schemas and generates a native ComfyUI V3 node from each pairing; alibaba/wan-3.0-prime × video.generate is this one. Underneath, every Protoface node runs the same adapter: validate against the schema, submit, poll with a progress bar, download, decode into ComfyUI types.
Submission is journaled locally before it goes out. That's not a detail - it's what makes requeueing an unchanged graph safe. Same account, same scope, same node, same generation_id, same payload hash → the adapter resumes the recorded run rather than submitting a second paid request. Different prompt or different parameter → new request, new charge, as it should be.
The controls, in the order they'll bite you
prompt is the whole input here, so it carries the weight. For Wan, the KB's video-prompting advice holds: separate what's in the shot from what happens in the shot, and name the camera move explicitly if you want one. enable_prompt_expansion defaults false - leave it off unless your prompt is genuinely thin, because the optimizer will rewrite your carefully structured description into someone else's.
duration is an integer from 2 to 30, default 5. This is your main cost dial. Six to eight seconds is where most usable output lives; the 30-second end is for when you've already proven the prompt at 720p.
resolution offers 480p, 720p, 1080p with 720p as default. Draft at 480p, finish at 720p or 1080p.
aspect_ratio is a required combo defaulting to 16:9, with 9:16, 1:1, 4:3 and 3:4 alongside it. Nothing clever here - pick the platform shape up front rather than cropping later.
enable_audio defaults true, and that's the other reason to be here. Native synchronized audio is something local Wan 2.2 simply doesn't produce; you'd be running MMAudio or a separate audio model afterwards. Turn it off if you're dropping your own track on top and want to skip that generation.
seed is optional (-1 random). generation_id stays put unless you want a fresh paid job.
Outputs
video is a list of native VIDEO objects - preview, combine, or feed into an Extend pass. files gives you the original file as a PROTOFACE_FILE for Protoface Save File. run id is your recovery handle.
Install
cd ComfyUI/custom_nodes
git clone --branch v0.1.0 --depth 1 https://github.com/protoface-ai/protoface-comfyui.git protoface
python -m pip install -r protoface/requirements.txt
Manager route: search Protoface, install protoface-nodes, restart, reload the browser. Requirements are ComfyUI 0.41.0+ and Python 3.10+, plus httpx, jsonschema, Pillow and av. No checkpoints, no VRAM math - the model runs on Protoface's side. Then open Protoface in the lower-right corner and paste your API key; it's held in server memory, so a restart means re-entering it (or set PROTOFACE_API_KEY_FILE).
There are also ready-made templates under Templates → the Protoface extension, which is a faster way to see how the controls are supposed to be wired than starting from a blank canvas.
Troubleshooting
Nothing happens, no error, no clip. Check the Protoface settings dialog shows https://api.protoface.com and that your account has credits - auth and credit failures look like silence rather than a crash.
The browser disconnected mid-poll. The job is still running. Don't increment generation_id; requeue unchanged or use Protoface Resume Run with the run id from the log.
av import errors. PyAV wouldn't build in your interpreter, which usually means ComfyUI's Python isn't the one you pip'd into. Reinstall with the interpreter ComfyUI actually runs on - on Windows portable that's .\python_embeded\python.exe -m pip.
Long jobs and timeouts. Default job timeout is 7200 seconds; PROTOFACE_JOB_TIMEOUT_SECONDS raises it if you're routinely doing 30-second 1080p work.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | The positive prompt for the generation. | |
| resolution | COMBO | 720p | The resolution of the generated video. |
| duration | INT | 52–30 | The duration of the generated media in seconds (2-30s). |
| aspect_ratio | COMBO | 16:9 | The aspect ratio of the generated video. |
| enable_audio | BOOLEAN | true | Whether to include audio in the generated video. |
| enable_prompt_expansion | BOOLEAN | false | If set to true, the prompt optimizer will be enabled. |
| seed | COMBO | The random seed to use for the generation. -1 means a random seed will be used. | |
| generation_id | INT | 00–9007199254740991 | Keep fixed to reuse/resume this paid job. Increment for a fresh paid generation; independent of the model seed. |
| request_scope | STRING | Automatically assigned per node. Headless clients must supply a stable unique workflow/node ID. This is not a secret. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| files | PROTOFACE_FILE | — |
| run id | STRING | — |