Nodes/comfyui-stillfront/SF WaveSpeed Sora 2 Image to Video
ComfyUI Node

SF WaveSpeed Sora 2 Image to Video

Sora 2 image-to-video — animate a still you already like, without a GPU

By razvanmatei-sf·Created 9 months ago·Updated 7 months ago· 0
SF WaveSpeed Sora 2 Image to Video
  • client
  • video_url
image
prompt
duration4
enable_sync_modefalse

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 image URL 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.

CategoryStillfront/WaveSpeed

Inputs (5)

NameTypeDefaultDescription
clientWAVESPEED_AI_API_CLIENT
imageSTRINGSource image URL for video generation (connect from Upload Image node)
promptSTRINGPositive prompt guiding video generation - describe desired motion and characteristics
durationCOMBO4Video duration in seconds (4s=$0.40, 8s=$0.80, 12s=$1.20)
enable_sync_modeoptBOOLEANfalseWait for generation to complete before returning

Outputs (1)

NameTypeDescription
video_urlSTRING