WaveSpeedAI OpenAI Sora 2 Text-to-Video
Sora 2 from text alone — no image, no subscription, just a prompt and $0.40
- client
- video_url
Sora 2's text-to-video is the one that made everyone re-watch their own prompts - describe a scene with camera language and you get back something that moves like it was shot. It's closed, it's API-only, and if you want it in a ComfyUI graph instead of a chat box, this node is the bridge. Unlike the pack's Sora image-to-video nodes, there's no image to upload: you feed it a prompt and a duration, and out comes a video_url. A 4-second clip is $0.40.
What it is
The text-to-video member of the pack's Sora 2 family, and the purest "prompt goes in, video comes out" node in the whole pack. Required inputs are just client, prompt, size, and duration. The size dropdown is explicit pixel values - 1280*720 (landscape) or 720*1280 (portrait), defaulting to landscape - and duration runs 4 / 8 / 12 seconds at $0.10/s per the tooltip.
How it works
client from the WaveSpeedAI Client node carries your API key; the node POSTs {prompt, size, duration} to the Sora 2 text-to-video endpoint and polls (or awaits, per enable_sync_mode, default off) until the job finishes. The result is a video_url string. Nothing local runs except the HTTP call and whatever node you use to download the clip afterward. Give the prompt real camera direction - Sora responds to "slow dolly in, shallow depth of field, lens flare at sunset" in a way it doesn't to keyword soup.
The inputs that matter
- prompt - the whole ballgame. Scene, style, camera, and audio cues; the tooltip explicitly suggests describing camera movements and audio.
- size -
1280*720or720*1280. Pick before you write the prompt, since a portrait script reads differently than a landscape one. - duration - 4, 8, or 12 seconds; the price scales linearly.
- enable_sync_mode - wait for completion or submit-and-poll.
Output is video_url (STRING).
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. No model downloads.
Common issues
- Video looks generic - the prompt is the product. Add explicit camera and audio cues; Sora 2 rewards direction.
- Long render, then "No output received" - Sora takes minutes per clip; near the 30-minute ceiling longer renders can time out. Retry with a shorter duration.
- Still not a subscription - you pay per clip through WaveSpeed AI's credits; there's no Sora Plus membership hiding in here.
- 401 - key issue.
The framing that matters: image-to-video is the more controllable Sora mode, and this node's sibling covers it. Text-to-video is for the times you have no starting frame and want to see what Sora's imagination does on its own - which, for $0.40 and no upload step, is a cheap and genuinely fun thing to try.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| client | WAVESPEED_AI_API_CLIENT | — | |
| prompt | STRING | Describe the scene, style, camera movements, and audio cues for video generation | |
| size | COMBO | 1280*720 | Video resolution - 720*1280 (portrait) or 1280*720 (landscape) |
| 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 | — |