Sora 2 Pro
The 'turn the dial up' Sora node
- frameImages
- video
If you've used the regular Runware_openai_sora_2 node, you already know this one - the widget set is identical, the pack is the same, and even the model family is the same. Sora 2 Pro (openai:3@2) is the bigger, pricier tier of OpenAI's video model, and the only real difference in practice is what it costs per run and how hard it works on complex scenes.
Think of it like picking a larger restaurant portion: same menu, same chef, more money, more capability. When the standard Sora 2 gives you a scene that's almost right but falls apart on complex motion, crowd scenes, or long camera moves, Pro is the node you swap in to get the take that holds together.
How it works
Exactly like its sibling. The node is a thin generated wrapper around Runware's videoInference task type. Your prompt (and optionally IMAGE frames) get shipped to Runware's cloud as base64 data, Sora 2 Pro renders there, and the returned file comes back into ComfyUI as a native VIDEO tensor. Your local GPU never touches the generation. The only thing this node changes versus the base Sora node is the model AIR in the request - openai:3@2 instead of openai:3@1.
The inputs that matter
positivePrompt(required) - still the whole ballgame. Pro is a text-and-motion model; describe the shot, the camera, the pacing.duration- 4 to 20 seconds via dropdown, or(default). Remember total frames = duration × model fps, and every second costs you.frameImages-IMAGEinput for starting from existing frames or a lead-in shot.videoId- remix or extend a previously generated video by pasting its ID. Continuation chains work by feeding each result's ID into the next run.width/height- 1024×1024 defaults, keep them sane.numberResults- up to 4 variations, each on its own seed.
The safety.* group, ttl, outputFormat (MP4/WEBM/MOV) and outputQuality behave as described by their tooltips; they're the standard Runware plumbing you can ignore until you need it.
Installing it
Same as every node in this pack - you install the pack, not the model. ComfyUI Manager, search Runware, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Grab an API key from runware.ai/api-keys and paste it into ComfyUI Settings → Runware API key, or export RUNWARE_API_KEY. Nothing downloads; the model is cloud-only.
Where people get burned
- The cost is the whole story. The node title bar shows a per-run price, and Pro's is meaningfully higher than base Sora 2's. It's the right tool for the take that has to be right, and the wrong tool for iterating on ideas. Draft with
Runware_openai_sora_2, polish with Pro. - No key, no run - you'll get the pack's standard "No Runware API key" error if you skip setup.
- Latency is real. Pro renders slower and spends longer in the cloud; a full 20-second generation is a wait, not a blink.
- Don't double-stack safety toggles unless you have a compliance reason. Each
safety.modetier (none/fast/full) does more content checking and can refuse or scrub more aggressively.
Sora 2 Pro is a simple node that hides a simple decision behind a bill. If you know Sora 2, you know this; you're just deciding whether the shot is worth the upgrade.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| frameImagesopt | IMAGE | — | |
| sizeopt | COMBO | 720p (16:9) | Output size. Only one of resolution or dimensions is sent. |
| durationopt | COMBO | (default) | Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps). |
| numberResultsopt | INT | 11–4 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| videoIdopt | STRING | ID of a previously generated video. Used for remixing or extending. | |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. |
| safety.modeopt | COMBO | fast | Safety checking mode for video generation. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | MP4 | File format for the generated video. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |