NS WaveSpeed VEO 3.1 Fast Text to Video
The iteration node for when you don't want to pay for the good take yet
- client
- video_url
Every API video node family eventually gets a Fast variant, and the logic is always the same: you don't want to pay full freight for the take you're going to throw away. NSWaveSpeedVeo31FastTextToVideo from symbiotica-ai/comfyui-nodes is WaveSpeed's cheaper, quicker Veo 3.1 tier - same model family, same inputs, less money and less waiting per render, with the tradeoff that the clips aren't quite the finished-grade quality of the standard node.
How it works
It's a straight text-to-video call to WaveSpeed (/api/v3/google/veo3.1/text-to-video on the fast tier). Prompt in, video_url string out. Everything you'd expect from the family is here: aspect_ratio (16:9 / 9:16), duration (4/6/8s), resolution (720p/1080p), negative_prompt, seed (default -1 = random), and generate_audio for Veo's native synchronized sound. enable_sync_mode defaults off - submit, poll every second, block until done, Cancel works because the poll checks ComfyUI's interrupt flag.
The one thing to wrap your head around: Fast isn't "Veo with a quality slider at 80%" that you ship. It's the node you run ten times while you're finding the prompt, and the standard node you run once when the prompt is right. On a metered API, that's the difference between an expensive exploratory session and a cheap one. The Fast tooltip even nudges you on the image-to-video side to feed bright, high-contrast stills - the tier rewards clean inputs.
The inputs that matter
prompt- the scene and its audio.aspect_ratio- 16:9 or 9:16.duration/resolution- 4/6/8s, 720p/1080p.generate_audio- native audio on or off.client- theWAVESPEED_AI_API_CLIENTsocket from the NS WaveSpeed Client node.
Output: video_url (STRING) - browser-preview it or feed a download-from-URL node.
Install and keys
# ComfyUI Manager: search "Symbiotica", or:
cd ComfyUI/custom_nodes
git clone https://github.com/symbiotica-ai/comfyui-nodes.git symbiotica
pip install -r symbiotica/requirements.txt
Restart, add the NS WaveSpeed Client node with your wavespeed.ai key (widget, Settings → Symbiotica, or WAVESPEED_API_KEY), wire client in. No model downloads.
Common issues
Fast is a trap only if you forget what it's for. The standard tier exists for a reason. If you keep the Fast node in the graph for the final render out of muscle memory, you'll ship a clip that's a notch below what you paid for. Same caution applies the other way: iterating on the full-price node is how a storyboard session becomes a surprise bill (external-api-nodes.md).
"API_KEY is empty." The NS WaveSpeed Client node isn't wired in - the key lives there, not on this node.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| client | WAVESPEED_AI_API_CLIENT | — | |
| prompt | STRING | Text description of the desired video scene | |
| aspect_ratio | COMBO | 16:9 | Video aspect ratio - 16:9 (landscape) or 9:16 (portrait) |
| duration | COMBO | 8 | Video duration in seconds |
| resolution | COMBO | 1080p | Video output resolution |
| generate_audio | BOOLEAN | false | Generate native audio synchronized with the video |
| negative_promptopt | STRING | Specify what to avoid in the generated video | |
| seedopt | INT | -1-1–2147483647 | Random seed for reproducible results. -1 for random seed |
| enable_sync_modeopt | BOOLEAN | false | Wait for generation to complete before returning |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_url | STRING | — |