Protoface Wan 3.0 · Text to Video
480p Is Your Friend
- video
- files
- run id
Pure text-to-video on Wan 3.0 base. No still, no references, no seed frame to hide behind - prompt in, clip out. It's the cheapest way to find out whether a shot idea works before you invest in a frame for it.
The honest case for this node
Every local video workflow I've seen has the same first step: throw away seven generations to find the one composition that isn't nonsense, then upscale the winner. Doing that locally on Wan 2.2 costs you about half an hour per throw. On a 3090 without speed LoRAs the KB's reports put 2.2 at 30-plus minutes per five-second clip; even on a 5090 it's tens of minutes. That's the economics text-to-video-as-exploration is fighting.
API video flips it: 480p at five seconds is a cheap experiment, and the aspect ratio is a dropdown rather than a crop. If your bottleneck is "the idea isn't good enough yet", this node is a brainstorming tool that happens to output pixels.
Once an idea survives, take the frame or the prompt to image-to-video or Prime and spend real money.
How it works
Protoface ships no Wan weights. It ships a catalog of model/task request schemas, generates a native ComfyUI node per pairing at startup (alibaba/wan-3.0 × video.generate here), and routes every one of them through a single shared adapter over HTTP. Validate → upload → submit → poll → download → decode into a native VIDEO.
Before submitting, the adapter records the request identity locally in SQLite: account namespace, your request_scope, the node id, the generation_id, the model, the schema version, and a hash of the actual payload. Requeue the same graph untouched and it resumes that run; touch a parameter and it's a new request - which is exactly the boundary you'd want if you were writing the billing code yourself.
The controls
prompt is everything. Two things from the KB's Wan prompting notes that hold up here: describe subject and setting first, then motion and camera, and don't stack contradictory camera moves. A model that has to reconcile "slow dolly in" with "handheld whip pan" produces mush.
duration is 2–30, default 5. Start at five. The longer the clip, the more likely the motion you described resolves somewhere you didn't ask for.
resolution is 480p / 720p / 1080p, default 720p. This is the single most useful knob and the easiest to forget: 480p for scouting, 720p for review, 1080p for delivery.
aspect_ratio is required and defaults to 16:9, with 9:16, 1:1, 4:3, 3:4 available. Pick it before you generate; a 16:9 clip cropped to 9:16 is a different shot.
enable_audio defaults true - native synchronized audio, which is the capability local Wan 2.2 doesn't have. Setting it false is legitimate when you're scoring with your own music and don't want a competing ambience bed.
enable_prompt_expansion defaults false. Good. seed is optional (send -1 for random), and generation_id is the paid-job identity - fixed to reuse, incremented to buy.
Outputs
video (list of native VIDEO), files (original media, for Protoface Save File), run id (string; hand it to Protoface Resume Run). Nothing exotic - the point is that the output is a normal ComfyUI video object, not a special Protoface thing you have to unwrap.
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 users: search Protoface, install protoface-nodes, restart, reload the page. ComfyUI 0.41.0+ and Python 3.10+ required; the pip step installs httpx, jsonschema, Pillow and av. Nothing to download - no checkpoint, no VAE, no text encoder, no VRAM planning. Then click Protoface in the lower-right corner and paste your account key.
Note the pack also has Templates → the Protoface extension with a MiniMax H3 text-to-video example, which is the quickest way to see how a working node is configured before you build your own.
Traps and fixes
A model announced last week isn't in the search list. ComfyUI → Protoface → Refresh catalog, then restart ComfyUI and reload the browser. Ordinary new models arrive this way; genuinely new schema constructs need a pack update.
"Protoface request_scope is missing." You're running headless without a scope. The frontend assigns it for you; a script has to.
Requeueing after a browser disconnect charged me twice. It shouldn't - unless you incremented generation_id or edited the prompt. Requeue unchanged or use Resume Run.
A very long 1080p job hit the wall. Default job timeout is 7200 seconds; PROTOFACE_JOB_TIMEOUT_SECONDS and PROTOFACE_CONCURRENCY (default 2 concurrent requests) are the operator levers.
Comfy Cloud. Won't install it. Arbitrary custom nodes aren't allowed there, and Protoface bills its own account rather than Comfy credits.
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 | — |