Nodes/comfyui-stillfront/SF WaveSpeed VEO 3.1 Text to Video
ComfyUI Node

SF WaveSpeed VEO 3.1 Text to Video

Pure text-to-video on VEO 3.1, 1080p, with native audio — no GPU required

By razvanmatei-sf·Created 9 months ago·Updated 7 months ago· 0
SF WaveSpeed VEO 3.1 Text to Video
  • client
  • video_url
prompt
aspect_ratio16:9
duration8
resolution1080p
generate_audiofalse
negative_prompt
seed-1
enable_sync_modefalse

This is the one the whole video-GenAI discourse is actually about: type a sentence, get a cinematic clip. VEO 3.1 text-to-video, served through WaveSpeed's API, no GPU, no checkpoints, no model downloads - just a prompt and a few settings, and a video_url comes back.

The community's honest take on this model family is that it's ahead of anything you can run locally: motion, lighting, and most distinctively, native audio. VEO is the only major video model that generates synchronized sound and dialogue as part of the output - that's a capability gap open models still haven't closed. If your project needs footage with real audio and you don't have a budget for filming it, this node is the practical route. It's the "one sentence → finished clip" workflow, which also means it's the right tool for storyboarding or pitching a scene before you spend hours on a local pipeline.

How it works

Wire the SF WaveSpeed Client node into client and describe the scene in prompt. At run time the node POSTs to /api/v3/google/veo3.1/text-to-video and polls until the render completes, then returns a single video_url string. Everything happens on WaveSpeed's servers; your machine just holds the API key and waits.

The pack's own notes say standard VEO 3.1 takes roughly two to three minutes per eight-second clip. That's the cost of the quality tier. If you want a faster, cheaper iteration loop, the pack's sibling "Fast" text-to-video node exists for exactly that - this one is for the shots you're going to keep.

The inputs that matter

  • prompt - the whole ballgame. VEO rewards descriptive scene language: subject, camera move, lighting, mood.
  • aspect_ratio - 16:9 for landscape, 9:16 for portrait (vertical video).
  • duration - 4, 6, or 8 seconds. Longer costs more.
  • resolution - 720p or 1080p. Test at 720p, ship at 1080p.
  • generate_audio - flip this on for VEO's native synced audio. This is the model's signature capability and the reason to use it at all; leaving it off wastes the whole advantage.
  • negative_prompt, seed, enable_sync_mode - standard; seed -1 means random, sync mode changes the API path but the node blocks until the clip is done either way.

Installing it

Through ComfyUI Manager, search comfyui-stillfront and install. Manually:

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

You need a WaveSpeed API key from wavespeed.ai. Set it in config.ini (copy config.ini.tmp to config.ini first), as the WAVESPEED_API_KEY environment variable, or paste it into the SF WaveSpeed Client node's api_key field. The README's clone URL is outdated (stillfront/...); the repo actually lives at razvanmatei-sf/comfyui-stillfront.

Where people get burned

Pure text-to-video means pure text-to-video: if you want a specific subject to appear, a text description is a weak guarantee. That's why the pack also ships image and reference variants - reach for those when you need a face or object locked down.

Then there's the money and time reality. This is per-generation API usage, and the good tier is not cheap; an 8-second 1080p clip with audio bills real credits. A bad key fails fast with Unauthorized, but a slow render just quietly takes minutes. Don't fire it at full settings to "test" - that's how surprise bills happen. Start short and low-res, then scale up once the prompt actually works.

CategoryStillfront/WaveSpeed

Inputs (9)

NameTypeDefaultDescription
clientWAVESPEED_AI_API_CLIENT
promptSTRINGText description of the desired video scene
aspect_ratioCOMBO16:9Video aspect ratio - 16:9 (landscape) or 9:16 (portrait)
durationCOMBO8Video duration in seconds
resolutionCOMBO1080pVideo output resolution
generate_audioBOOLEANfalseGenerate native audio synchronized with the video
negative_promptoptSTRINGSpecify what to avoid 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