zhenzhen-grok-video-1.5-fal
XAI's video model as a ComfyUI node, billed by the second
- image
- video
- video_url
- response
xAI's Grok video is a closed model with no open weights - the only door into it is an API. This node is that door, and it's also a discount door: it routes through Zhenzhen's proxy of the fal.ai queue API rather than xAI's own endpoint, and you pay per clip in cheap credits instead of buying a subscription you'll use once.
This is one of the many API-wrapper nodes in the Comfyui-zhenzhen pack (author T8mars, "Zhenzhen"), which is basically a fan-service reseller: the README is upfront that it keeps under 10% margin and exists to give the community cheap access to new overseas models. The model behind this node is xAI's Grok Imagine Video 1.5, and Zhenzhen's changelog prices it at 0.5 credits for a 6-second clip and 0.7 for 10s or 15s. At that rate it's one of the cheaper ways to play with the current xAI video line without committing.
How it works
Nothing runs on your machine. The node POSTs your prompt (and optionally an image) to https://ai.t8star.org/fal, which proxies fal.ai's queue API - that's the -fal suffix in the name. A job gets submitted, then the node polls it every poll_interval seconds (default 6) up to max_poll_attempts (default 600, i.e. a full hour), then downloads the finished MP4 and hands it to ComfyUI as a real VIDEO-typed output. If you've ever watched a fal job page spin, this is the same dance, just automated inside your graph.
One billing wrinkle worth knowing: fal channels are pre-deducted. The site takes the estimated cost upfront and refunds the difference when the job finishes, so a "charged" amount on your balance doesn't mean that's what the clip ultimately cost.
The inputs that matter
prompt- the only required field. Write it like you'd prompt any video model: subject, action, camera, mood. Chinese works too; xAI handles it.image/image_url- attach a first frame for image-to-video. Ifimageis wired up,image_urlis ignored, so don't set both.duration- 5 to 30 seconds; 5s is the cheapest test duration (the tooltip says so), so start there before spending on a 30s run.resolution- 720p or 480p. There's no 1080p here; if you need sharper, this isn't the node.image_way-base64embeds the image in the request;image_urluploads it to the proxy first and sends a link. URL is friendlier for big inputs.poll_interval/max_poll_attempts- together they set your patience ceiling. Leave them alone unless long clips keep timing out.
Outputs: video (a real VIDEO tensor you can feed straight into ComfyUI's Save Video / VHS nodes), plus video_url (a STRING if you'd rather grab the file yourself) and response (the raw API payload, handy for debugging).
Installing it
The pack installs once and gives you every Zhenzhen node. In ComfyUI Manager, search Comfyui-zhenzhen and hit install. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen
Then restart ComfyUI. No model files, no GPU requirement - the only setup is pasting an api_key from the site into the node widget. Keys live in the widget now; the old project-level config file was retired.
Common issues
- "API key not provided" - the key field is empty. Fill it in; there's no global config anymore.
- 443 / connection errors - the API servers are overseas, and Zhenzhen's README is blunt about it: you need a proxy/VPN (ideally TUN mode), and aggressive antivirus or router settings can block it too. The node auto-switches between the
.organd.cnmirrors when one is unreachable, but it can't fix your route for you. - 500 errors - frequently the upstream vendor's load, not your fault. The pack's standing advice: just re-run.
- The seed is cache control only. It's not sent to the API, so you can't use it to reproduce a clip; it only decides whether ComfyUI treats the run as new or reuses a cached result.
If you just want to test the water, set duration to 5, resolution to 480p, and prepare to be billed in fractions of a credit. That's the entire point of this node.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| imageopt | IMAGE | — | |
| image_urlopt | STRING | Optional public image URL. If image is connected, this is ignored. | |
| api_keyopt | STRING | — | |
| durationopt | INT | 55–30 | Video duration in seconds. 5s is the lowest-cost test duration. |
| resolutionopt | COMBO | 720p | 2 options: 720p, 480p |
| image_wayopt | COMBO | base64 | 2 options: image_url, base64 |
| poll_intervalopt | INT | 62–30 | — |
| 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 | — |