OpenAI Sora API Plus节点
9, HD, and duration
- video
- video_url
- tokens_usage
The Sora node with the dials
Sora is a closed model - no weights, no local run, API only (closed-source-models.md) - and this is the version of zhenzhen's Sora wrapper that actually lets you steer it. Where the plain OpenAI_Sora_API node is "key, prompt, go," this one adds three controls that matter: aspect_ratio, hd, and duration. It's the same OpenAI-compatible chat/completions streaming call under the hood, same sora_video2 default model, just with the parameters the server actually accepts exposed on the canvas.
The controls worth touching
- aspect_ratio -
16:9by default,9:16for vertical. For short-form video, this is usually the first thing you set. - hd - defaults to
true. This is the big one. HD Sora renders are much slower and pricier; the README's history is full of "HD takes forever" warnings, with 15s HD runs in the multi-minute range. Turn it off for drafts. - duration - 10 or 15 seconds. The README's pain is concentrated here too: 25s used to exist and caused endless timeouts and "don't combine with HD" footnotes. The current schema keeps it simple at 10/15.
- base_url -
https://ai.t8star.org/v1by default, zhenzhen's overseas proxy. Leave it unless you're pointed elsewhere. - model -
sora_video2by default, free-form string. The proxy serves whatever's live on the site right now; the README shows this field cycling throughsora-2,sora-2-pro, and newer variants as OpenAI's own availability shifts. - api_key - your zhenzhen key, typed straight into the node (no shared settings node for this one).
- user_prompt - the generation description.
Optional image input flips it into image-to-video: the node base64-encodes the image and sends it OpenAI multimodal style, so you get first-frame control. skip_error stops a failed call from killing your graph - returns an empty result instead.
How it works
Same streaming mechanism as the plain node: POST chat/completions with stream: true, read the incremental delta.content lines, fall back to non-streaming if nothing comes back, then extract the video URL from the accumulated text and download it into a ComfyUI VIDEO. 600-second timeout, and long HD jobs ride it hard - a "timeout" often means the render finished and the wait just got long, so check the site's async-task page before rerunning and burning another credit.
Outputs
video (ready to preview/save), video_url (raw link), tokens_usage (usually empty with these chat-compat proxies - a debug string, not a meter).
Install and the standing advice
Same pack install as everything else:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen
or ComfyUI Manager → "Comfyui-zhenzhen", then restart. When a 500 hits, the README's refrain is worth repeating: it's usually OpenAI's load, rerun once before you blame your settings. And given how much of the changelog is upstream-availability whiplash, treat the model string as a thing to re-check at the site's price page whenever Sora seems flaky.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| base_url | STRING | https://ai.t8star.org/v1 | — |
| model | STRING | sora_video2 | — |
| api_key | STRING | — | |
| user_prompt | STRING | 请描述要生成的视频内容 | — |
| aspect_ratioopt | COMBO | 16:9 | 2 options: 16:9, 9:16 |
| hdopt | BOOLEAN | true | — |
| durationopt | COMBO | 15 | 2 options: 10, 15 |
| skip_erroropt | BOOLEAN | false | 开启后,节点失败时不报错、按旧行为返回默认空结果;关闭时(默认)失败直接抛出错误。 |
| seedopt | INT | 00–18446744073709550000 | Execution seed for ComfyUI cache control. Fixed reuses the cached result; randomize/increment/decrement requests a new run. This compatibility seed is not sent to APIs that do not expose a native seed parameter. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_url | STRING | — |
| tokens_usage | STRING | — |