Nodes/ComfyUI Razv WaveSpeed Nodes/WaveSpeedAI Google VEO 3.1 Fast Image-to-Video
ComfyUI Node

WaveSpeedAI Google VEO 3.1 Fast Image-to-Video

Veo 3.1 video from a still, with synced audio — the hosted shortcut

By razvanmatei-sf·Created 12 months ago·Updated 9 months ago· 0
WaveSpeedAI Google VEO 3.1 Fast Image-to-Video
  • client
  • video_url
image
prompt
aspect_ratio16:9
duration8
resolution1080p
generate_audiofalse
negative_prompt
seed-1
enable_sync_modefalse

Veo is the video model the local community quietly envies - and Veo 3.1's claim to fame is that it generates audio natively, sound effects and dialogue synced to the picture, which is a capability gap open video models still haven't closed. You can't run it locally, ever. This node wraps the Fast variant of Veo 3.1 image-to-video on WaveSpeed AI, so a still image plus a prompt becomes a clip with optional generated audio, without touching Google's own product surfaces.

What it is

A hosted Veo 3.1 Fast image-to-video node. Feed it an image URL and a prompt describing motion; choose aspect_ratio (16:9 or 9:16), duration (4, 6, or 8 seconds), and resolution (720p or 1080p). The star setting is generate_audio - flip it on and the API returns a clip with audio generated to match, which is the feature that makes Veo hard to replace.

How it works

The familiar pack pattern: client from the WaveSpeedAI Client node, a POST to the Veo 3.1 Fast image-to-video endpoint, and a video_url string back. enable_sync_mode defaults off, so by default it submits and polls until done (up to 30 minutes). The tooltip on the image input offers a real tip: it recommends bright, high-contrast source images - Veo's motion interpretation degrades on dark, low-contrast frames. There's also a negative_prompt and seed in the optional set.

The inputs that matter

  • image - source frame as a public URL. Bright and high-contrast, per the author's tooltip.
  • prompt - motion and characteristics ("Slow cinematic zoom out as wind moves through trees").
  • generate_audio - the differentiator. On means synced audio comes back with the clip.
  • aspect_ratio / duration / resolution - shape, length, and quality. Duration is capped at 8 seconds here, which is a Veo trait, not a node quirk.
  • negative_prompt, seed, enable_sync_mode.

Output is video_url (STRING) - a URL, so pair it with a download/save node to keep the file.

Install & setup

cd ComfyUI/custom_nodes
git clone https://github.com/razvanmatei-sf/razv-wavespeed.git
cd razv-wavespeed
pip install -r requirements.txt

or ComfyUI Manager → "razv-wavespeed" → Install, restart. API key from wavespeed.ai in config.ini (from config.ini.tmp), the Client node, or WAVESPEED_API_KEY. Deps: requests, pillow, numpy<2.0.0, torch.

Common issues

  • Audio missing - you have to explicitly turn on generate_audio; the default is off.
  • Dark frames come out muddy - the model's known preference is bright, contrasty input. Brighten the source before uploading.
  • 8-second cap - Veo's clips are short; plan shots accordingly.
  • "No output received" - unreachable image URL or task timeout.
  • 401 - key issue.

Where this node is worth its price: any clip where synced audio matters - a product teaser, a narrative moment, a voice-style test. No open model does native synchronized audio the way Veo does, and this is the lowest-friction way to use it. If you just need motion without sound, WAN 2.5 via this same pack is cheaper and fine.

CategoryWaveSpeedAI/Google VEO 3.1

Inputs (10)

NameTypeDefaultDescription
clientWAVESPEED_AI_API_CLIENT
imageSTRINGSource image URL for video generation (connect from Upload Image node). Recommended: bright, high-contrast images
promptSTRINGDescribe desired motion and video characteristics (e.g., 'Slow cinematic zoom out as wind moves through trees')
aspect_ratioCOMBO16:9Video aspect ratio - 16:9 (landscape) or 9:16 (portrait)
durationCOMBO8Video duration in seconds
resolutionCOMBO1080pVideo output resolution
generate_audioBOOLEANfalseGenerate automatic audio synchronized with the video
negative_promptoptSTRINGSpecify unwanted elements or characteristics in the generated video
seedoptINT-1-1–2147483647Random seed for reproducible results. -1 for random seed
enable_sync_modeoptBOOLEANfalseWait for generation to complete before returning

Outputs (1)

NameTypeDescription
video_urlSTRING