Nodes/Symbiotica/NS WaveSpeed Sora 2 Text to Video
ComfyUI Node

NS WaveSpeed Sora 2 Text to Video

Sora 2 in your ComfyUI graph — for $0.40 per four-second clip

By symbiotica-ai·Created 6 months ago·Updated about 13 hours ago· 2
NS WaveSpeed Sora 2 Text to Video
  • client
  • video_url
prompt
size1280*720
duration4
enable_sync_modefalse

OpenAI's Sora is the poster child for "closed model you will never run locally" - no weights, no download, no VRAM requirement you can throw money at. NSWaveSpeedSora2TextToVideo from symbiotica-ai/comfyui-nodes is the workaround that makes sense inside ComfyUI: it calls Sora 2 through WaveSpeed's hosted API and hands you back a URL to the finished clip. If you want Sora-grade video in your workflow at all, this is the door - there isn't a local one.

How it works

Type a prompt, pick a size and a duration, hit run. The node POSTs to WaveSpeed (/api/v3/openai/sora-2/text-to-video), which runs Sora 2 on their hardware and returns a hosted mp4. With enable_sync_mode off (the default) the node submits and then polls the task endpoint every second until the video is done - video renders take a while, and the node blocks the graph meanwhile. It plays nice with Cancel: the polling loop checks ComfyUI's interrupt flag, so pressing Cancel actually stops the wait instead of burning to a timeout.

The prompt field is worth treating as a real instruction, not a caption. The tooltip asks you to describe the scene, style, camera movements, and audio cues - Sora 2 generates synchronized audio natively, so you can ask for the sound design in the same breath as the visuals.

The inputs that matter

  • prompt - scene, style, camera, and audio cues. This is where the quality lives.
  • size - 720*1280 (portrait) or 1280*720 (landscape). No 1080p on the non-Pro node.
  • duration - 4, 8, or 12 seconds, priced in the tooltip: 4s = $0.40, 8s = $0.80, 12s = $1.20. That's $0.10 a second, flat.
  • client - the WAVESPEED_AI_API_CLIENT socket from the NS WaveSpeed Client node.

The one output is video_url, a plain STRING - the hosted clip's address. The pack doesn't download it for you, so paste it in a browser to preview, or wire it into a download-from-URL node you already use.

Install and keys

# ComfyUI Manager: search "Symbiotica", or:
cd ComfyUI/custom_nodes
git clone https://github.com/symbiotica-ai/comfyui-nodes.git symbiotica
pip install -r symbiotica/requirements.txt

Restart ComfyUI. No model files - this node is a pure API wrapper (deps: requests, pillow). You do need a wavespeed.ai account with credit, and a key from it. Put that key in the NS WaveSpeed Client node's api_key field, or once in ComfyUI Settings → search "Symbiotica" → WAVESPEED_API_KEY, or as the WAVESPEED_API_KEY env var. Wire the client node's client output into this node's client input.

Common issues

"API_KEY is empty." Missing client node, or the key isn't on it. The key never lives on this node itself.

The cost math bites in a loop. A 12-second clip is $1.20, and a batch of five is $6 before you've looked at a frame. This is the standing objection to the whole API-node category - per-call metering adds up, and your prompt leaves your machine (external-api-nodes.md). WaveSpeed also requires a minimum top-up (community reports put it around $10), which is a weird first-dollar amount for a $0.40 experiment.

Wrong "WaveSpeed"? In ComfyUI land, "WaveSpeed" more often names the local first-block-cache speed-up for Flux/Hunyuan, not the wavespeed.ai platform. A workflow that says "WaveSpeed" might want either - check which before installing.

Categoryneuralsins/WaveSpeed

Inputs (5)

NameTypeDefaultDescription
clientWAVESPEED_AI_API_CLIENT
promptSTRINGDescribe the scene, style, camera movements, and audio cues for video generation
sizeCOMBO1280*720Video resolution - 720*1280 (portrait) or 1280*720 (landscape)
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