zhenzhen-grok-video-tools-fal
Grok Video Tools as a ComfyUI edit node
- video
- video
- video_url
- response
Most video nodes start from nothing - text in, clip out. This one starts from a clip you already have, and does one of two jobs: extend_video (keep the moment going past where it stopped) or edit_video (re-shoot it into something else, like "colorize" or "make it claymation"). It's the xAI Grok Video Tools endpoint wrapped up as a ComfyUI node, and it's the natural next step after a Grok text-to-video node gives you a clip you like but want longer or different.
Like every node in the Comfyui-zhenzhen pack (T8mars' fan-priced API reseller, ai.t8star.org), this is a pure API wrapper. No local model, no GPU work on your side, per-call credits, and your api_key lives in the node widget. The -fal in the name means the request goes through Zhenzhen's proxy of fal.ai's queue API - submit, poll, download - and billing is pre-deducted with the difference refunded after the job lands.
How it works
You give it a video, it gives you a video. The video comes in through either the video input (a VIDEO tensor from elsewhere in your graph - say, a previous Grok generation or a locally-loaded clip) or a video_url string, with video_way choosing upload vs video_url. The mode switch picks the endpoint:
extend_video- continuation.durationmatters here (1–15s, default 6): how many seconds to keep going.edit_video- restyle.resolutionmatters here (auto/480p/720p), and the prompt is the instruction - the default is literally "Colorize the video."
The result is returned as a VIDEO output you can save directly, plus video_url and response strings for grabbing the file or debugging.
Inputs that matter
prompt- the instruction. For extend it's usually short or empty; for edit it's the whole job.mode- extend or edit; pick the one you actually want, becausedurationandresolutionswap meaning between them.video/video_url- wire one. Ifvideois connected,video_urlis ignored.poll_interval/max_poll_attempts- patience controls; the 600 × 6s default is a one-hour ceiling, generous for these jobs.
Installing it
Install the pack once via ComfyUI Manager (search Comfyui-zhenzhen) or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen
Restart ComfyUI, paste your key into the widget. There are no model downloads - the "dependency" list in the repo is mostly the standard ComfyUI stack plus openai/opencv-python for the pack's other nodes.
Common issues
- "API key not provided" - the widget is empty; fill it. There's no global key file anymore, keys belong in the node.
- Connection / 443 errors - overseas servers; Zhenzhen's README expects you to run a VPN in TUN mode and to disable junk antivirus/router filtering. The node auto-fails over between
.organd.cn. - 500 errors - usually the upstream vendor choking, not you. The pack's own docs: just run it again.
- Extend producing something weird - a one-line or empty prompt gives Grok very little to work with. For
edit_videoespecially, put the style word in the prompt ("restyle as watercolor") and let the defaultresolution: autokeep the source's look.
If your pipeline is "generate with Grok → tweak with this node," you're using the pack the way it's designed: each step is a separate, individually-priced API call, and you only pay for the passes you actually need.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Colorize the video | — |
| modeopt | COMBO | edit_video | 2 options: extend_video, edit_video |
| videoopt | VIDEO | — | |
| video_urlopt | STRING | Public video URL. Ignored when video input is connected. | |
| api_keyopt | STRING | — | |
| durationopt | INT | 61–15 | Used by extend_video mode. |
| resolutionopt | COMBO | auto | Used by edit_video mode. |
| video_wayopt | COMBO | upload | 2 options: upload, video_url |
| poll_intervalopt | INT | 61–60 | — |
| max_poll_attemptsopt | INT | 60010–3600 | Default 600*6s = 3600s timeout. |
| 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 | — |
| response | STRING | — |