Nodes/comfyui-stillfront/SF WaveSpeed Wan 2.5 Image to Video
ComfyUI Node

SF WaveSpeed Wan 2.5 Image to Video

Animate a still with Wan 2.5 — and optionally drive the video with an audio clip

By razvanmatei-sf·Created 9 months ago·Updated 7 months ago· 0
SF WaveSpeed Wan 2.5 Image to Video
  • client
  • video_url
image
prompt
resolution720p
negative_prompt
audio
duration5
enable_prompt_expansionfalse
seed-1
enable_sync_modefalse

Wan is where local video generation consolidated - but only up to 2.2. Everything after that, including 2.5, is API-only, which is why you'd reach for this node: it's Wan 2.5 image-to-video served over WaveSpeed's API. You give it a still, it animates it. No 25-minute local renders, no VRAM juggling, no model downloads. The trade is that it costs real money per generation and it needs an internet connection, but for a one-off animated shot it beats babysitting a local pipeline.

Wan 2.5 is the model the community actually rated as a genuine step up from 2.2 in the one serious head-to-head it ever got - and WaveSpeed was first to host it. This standard variant is the one to reach for when you want the full quality range: it offers 480p, 720p, and 1080p, plus the option to guide generation with an audio clip.

How it works

Standard pack anatomy: wire an SF WaveSpeed Client into client. The node POSTs your image URL and prompt to /api/v3/alibaba/wan-2.5/image-to-video and polls until the render finishes, then returns a video_url string. No local model runs; your machine just signs the API call and waits.

The inputs that matter

  • image - the still to animate, as a URL string (from an Upload Image node).
  • prompt - what should happen in the video. Wan is decent at following motion descriptions, so spell the movement out.
  • resolution - 480p, 720p, or 1080p. Default is 720p, which is the sane starting point.
  • audio - the interesting one: a URL to an audio clip (wav/mp3, 3–30 seconds, ≤15MB) that guides the video generation. Wan 2.5 can sync motion to audio, which is a capability most local models don't give you for free. Leave blank for silent motion.
  • duration - 5 or 10 seconds.
  • enable_prompt_expansion - off by default; turns the API's automatic prompt-enhancement on.
  • negative_prompt, seed, enable_sync_mode - the standard trio; seed -1 for random, sync mode changes the API path but the node blocks until done either way.

Output: video_url, a string you can open or feed into a URL-consuming node.

Installing it

ComfyUI Manager, search comfyui-stillfront, install. Or manually:

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

Get a WaveSpeed API key from wavespeed.ai and set it in config.ini (copy config.ini.tmp first), as the WAVESPEED_API_KEY environment variable, or in the SF WaveSpeed Client's api_key widget. The README's stillfront/... clone URL is stale; the repo is razvanmatei-sf/comfyui-stillfront.

Where people get burned

The image field is a URL string, not an IMAGE tensor - a normal Load Image node won't connect. Same for audio: it wants a URL to a hosted audio file, not a local path. That's the whole pack's convention, and it trips up anyone coming from a local workflow.

Then there's the "fast" sibling: this pack also ships an Image to Video Fast variant, which costs less and returns quicker but tops out at 1080p with a narrower resolution list (720p/1080p only). If you're iterating, use Fast; if you want the full 480p-to-1080p ladder, this is the node.

CategoryStillfront/WaveSpeed

Inputs (10)

NameTypeDefaultDescription
clientWAVESPEED_AI_API_CLIENT
imageSTRINGImage URL to animate (connect from Upload Image node)
promptSTRINGText description for video animation
resolutionCOMBO720pVideo output resolution
negative_promptoptSTRINGDescribe what you don't want in the video
audiooptSTRINGAudio URL to guide video generation (3-30 seconds, wav/mp3, ≤15MB)
durationoptCOMBO5Video duration in seconds
enable_prompt_expansionoptBOOLEANfalseAutomatically expand and enhance the prompt
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