SF WaveSpeed Sora 2 Image to Video
Sora 2 image-to-video — animate a still you already like, without a GPU
- client
- video_url
There was a time when Sora footage was something you watched on the internet and couldn't touch - "Nope, you can't have it!" was the running joke. Sora 2 changed that, and SF WaveSpeed Sora 2 Image to Video is how you touch it from ComfyUI: give it a source image, describe the motion, and get a video URL back. The model stays on OpenAI's servers via WaveSpeed, so your GPU does nothing and your wallet does the heavy lifting.
The workflow this enables is genuinely nice: generate a still you love (locally, in Qwen, wherever), then hand that specific image to Sora and have it move. Image-to-video keeps composition and character from the source instead of gambling on a fresh text-to-video roll. If you've been burned by video models that ignore your prompt, starting from an image removes half the variance.
It's part of the comfyui-stillfront pack, under Stillfront/WaveSpeed.
How it works
You provide the source image URL and a motion prompt; the node posts to WaveSpeed's openai/sora-2/image-to-video endpoint and returns the first output video URL. Everything runs hosted - no local model, no VRAM.
The inputs that matter:
image- source image URL from an Upload Image node.prompt- describe the desired motion and characteristics ("camera slowly pushes in, the character turns and waves"). This is a motion brief, not a scene description - the scene is already in the image.duration- 4, 8, or 12 seconds, with pricing printed right in the tooltip: 4s = $0.40, 8s = $0.80, 12s = $1.20. That's per clip, and it's the number to budget around.enable_sync_mode- default off. Both paths wait and hand you the URL; the async path polls with a longer timeout.
Output is a single video_url STRING - feed it to a URL-based video loader/display, or save it with a text node.
Installing it
Pack install plus WaveSpeed key:
cd ComfyUI/custom_nodes
git clone https://github.com/razvanmatei-sf/comfyui-stillfront
cd comfyui-stillfront
pip install -r requirements.txt
Restart, then wire in an SF WaveSpeed Client node with your key (or config.ini / WAVESPEED_API_KEY).
Troubleshooting
- Video ignores the prompt. With image-to-video the image carries most of the meaning; the prompt steers motion. If the output moves but doesn't match your description, simplify the prompt to one or two clear actions.
- Character warps during motion. Sora 2 is better than Sora 1 at identity, but 12 seconds is a long time for any video model. Shorter clips, less camera movement.
- "No output received." The
imageURL wasn't reachable, or it's not a URL the API can fetch. Upload the image properly and re-wire it. - The bill. At $0.40–$1.20 per clip, drafts add up fast. Use 4-second runs to find the motion, then spend on the 8 or 12.
The broader context, worth keeping in mind: open-source video (Wan and friends) genuinely closed the gap with Sora, per the community - but it needs your hardware and a few hours of setup. This node is the "I just want it to work and I'll pay" path, and for image-to-video specifically it's a strong one.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| client | WAVESPEED_AI_API_CLIENT | — | |
| image | STRING | Source image URL for video generation (connect from Upload Image node) | |
| prompt | STRING | Positive prompt guiding video generation - describe desired motion and characteristics | |
| duration | COMBO | 4 | Video duration in seconds (4s=$0.40, 8s=$0.80, 12s=$1.20) |
| enable_sync_modeopt | BOOLEAN | false | Wait for generation to complete before returning |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_url | STRING | — |