NS WaveSpeed VEO 3.1 Fast Image to Video
Cheap takes from a still, with the audio toggle intact
- client
- video_url
NSWaveSpeedVeo31FastImageToVideo from symbiotica-ai/comfyui-nodes is the image-to-video half of Veo 3.1's Fast tier: feed it a still, get back a clip on the cheap-and-quick plan. If you've already read the Fast text-to-video node, you know the deal - this is the same cost logic aimed at your reference images instead of your prompts. It's the node you run a dozen times to find the right motion, then abandon for the standard tier when the take is actually going to ship.
How it works
A URL string for your still (from ComfyUI's Upload Image node) plus a prompt describing the motion, POSTed to WaveSpeed's Veo 3.1 Fast endpoint, with a video_url string coming back. Same family controls as the other Veo nodes: aspect_ratio (16:9 / 9:16), duration (4/6/8s), resolution (720p/1080p), generate_audio for native synchronized sound, plus optional negative_prompt and seed (default -1 = random). enable_sync_mode defaults off - submit, poll every second, block until done, Cancel works because the polling honors ComfyUI's interrupt flag.
The tooltip on image has the one tip that actually matters for this tier: feed it bright, high-contrast images. Fast tiers have less compute to spend on finding the subject in a muddy frame, so a well-lit, unambiguous still gives you dramatically more consistent motion. Garbage in, morphing out - and on Fast, moreso than on the full node.
The inputs that matter
image- the still, as a URL. Bright, high-contrast, clean.prompt- the motion: "slow cinematic zoom out as wind moves through trees."generate_audio- Veo's native audio, available even on Fast.client- theWAVESPEED_AI_API_CLIENTsocket from the NS WaveSpeed Client node.
Output: video_url (STRING). Preview in a browser 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 files - pure API wrapper.
Common issues
Don't ship from the Fast node by habit. It's the iteration tier; the standard i2v node is the finishing tier. Switching back when the take is good is the whole workflow, and it's the difference between a cheap session and a wasted one (external-api-nodes.md).
Murky inputs produce morphing. Fast rewards clean stills. If your clips keep melting, the first fix is a better frame, not a better prompt.
"API_KEY is empty." Missing or unwired NS WaveSpeed Client node - the key lives there.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| client | WAVESPEED_AI_API_CLIENT | — | |
| image | STRING | Source image URL for video generation (connect from Upload Image node). Recommended: bright, high-contrast images | |
| prompt | STRING | Describe desired motion and video characteristics (e.g., 'Slow cinematic zoom out as wind moves through trees') | |
| 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 automatic audio synchronized with the video |
| negative_promptopt | STRING | Specify unwanted elements or characteristics 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 | — |