Concurrent Submit | Zhenzhen Grok3 Video 30S
Grok video up to 30 seconds, and fire ten at once
- image1
- image2
- image3
- image4
- image5
- image6
- image7
- task
Grok's video model is one of the few that produces real 30-second clips, which puts it in a category most video models can't touch - the 5-to-10-second crowd has to fake long takes with cuts and interpolation. This node is the concurrent wrapper around Zhenzhen's Grok3 Video 30S endpoint, which means you can submit up to ten of those long clips in parallel instead of queueing them one at a time while ComfyUI sits there blocking.
It's a good fit for short-drama (漫剧) and character-piece work, which is exactly the use case the pack's changelog keeps name-dropping. Each clip carries audio and handles Chinese prompts well, and 30 seconds is long enough to carry a full scene beat.
What "Concurrent Submit" means here
This node is a wrapper around the plain ComflyGrok3VideoApi30S node, generated by the pack's ComflyConcurrent module. It takes the exact same inputs, but instead of running the API call inline and blocking the graph, it hands the job to a shared video worker pool (VIDEO_MAX_WORKERS, default 10, set with COMFLY_VIDEO_CONCURRENCY) and returns a task promise of type COMFLY_VIDEO_FUTURE immediately.
That task is the whole output, and it does nothing visible by itself. You wire it into ComflyConcurrent_Video_Await, which waits for every connected task and returns the finished videos in slot order (video_1 … video_10) plus a status JSON. Set failure_mode to placeholder there if you'd rather a failed clip show up as an empty slot than nuke the whole run.
[Submit: 30S Grok scene 1] ──task──┐
[Submit: 30S Grok scene 2] ──task──┼──▶ ComflyConcurrent_Video_Await ──▶ Save Video
[Submit: 30S Grok scene 3] ──task──┘
Inputs that matter
prompt is required and does the heavy lifting. ratio defaults to 1:1 with 2:3, 3:2, 16:9, 9:16 as options. duration is the headline feature: it defaults to 15 but goes from 6 to 30 seconds - that range is the whole point of the 30S endpoint. resolution is fixed at 720P for this node (the plain Grok3 Video node adds 480P/1080P; here you trade resolution for length).
Up to seven reference images (image1–image7) feed image-to-video and multi-ref generation - the pack supports the @img1 … @img7 syntax in the prompt to position references. seed is just a ComfyUI cache-control seed (Grok's API doesn't expose a native one), so if you set it fixed you'll get the cached result back; randomize to force a new run. api_key can stay blank once the pack's API Settings node is configured.
Install and gotchas
Same pack, same install as every other Zhenzhen node: ComfyUI Manager → search Comfyui-zhenzhen, or git clone https://github.com/T8mars/Comfyui-zhenzhen into ComfyUI/custom_nodes, then restart. No weights to download - the model lives on Zhenzhen's servers.
The one gotcha specific to the 30S endpoint is token groups. The README is explicit: the 30S model only works with the veo&grok-备用1 group at 720P, and veo&grok-备用2 for 720/1080P - but that second group caps duration at 10 or 15 seconds. If your run fails at submit with a group error, that's the cause, and no amount of prompt tuning fixes it. Long clips also mean long polls: the defaults are generous, but if a 30-second render times out at the Await node, remember the media is probably finished on the site's task page - the poll just gave up. A 500 is usually upstream Grok load; re-run it.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| model | COMBO | grok-video-3 | 1 options: grok-video-3 |
| ratio | COMBO | 1:1 | 5 options: 2:3, 3:2, 16:9, 9:16, 1:1 |
| duration | COMBO | 15 | 25 options: 6, 7, 8, 9, 10, 11, +19 |
| resolution | COMBO | 720P | 1 options: 720P |
| api_keyopt | STRING | — | |
| image1opt | IMAGE | — | |
| image2opt | IMAGE | — | |
| image3opt | IMAGE | — | |
| image4opt | IMAGE | — | |
| image5opt | IMAGE | — | |
| image6opt | IMAGE | — | |
| image7opt | IMAGE | — | |
| seedopt | INT | 00–2147483647 | — |
| skip_erroropt | BOOLEAN | false | 开启后,节点失败时不报错、按旧行为返回默认空结果;关闭时(默认)失败直接抛出错误。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| task | COMFLY_VIDEO_FUTURE | — |