Grok Imagine Video
XAI's Video Model, Now a ComfyUI Node
- referenceImages
- frameImages
- video
Grok was a text model, then an image model, and now xAI ships video - and thanks to this Runware pack node, you can run it from ComfyUI without owning any of the hardware it would take. The Grok Imagine Video node is a thin client for xAI's video model: you type a prompt (or hand it images, frames, or existing footage), it runs in the cloud, and a native VIDEO comes back.
The genuinely useful part of this model is that it's not just text-to-video. The referenceImages socket lets you anchor a subject, frameImages lets you define keyframes the clip animates between, and the video input takes a URL/path/UUID of footage you want to edit. So you can take a generated image from elsewhere in your graph, feed it here, and ask for motion on that exact subject instead of rolling the dice on a fresh generation.
What you set
Only positivePrompt is required, and the size dropdown is the first thing you'll actually touch - it's a preset list (480p and 720p in a bunch of aspect ratios, plus "from input" options that respect your source) rather than raw width/height. That's a deliberate design choice: video models are picky about resolution buckets, and the presets are the ones that work.
- size - pick your bucket. 480p is cheap and fast, 720p if the shot needs detail.
- duration - a toggle (flip it on) plus
duration_valuein seconds, 1–15. Longer isn't always better; 15 seconds is a lot of temporal coherence for any model to hold, so shorter clips tend to look tighter. - frameImages / referenceImages / video - the media inputs described above.
- numberResults - up to 4 variations per queue.
The safety.mode dropdown (none/fast/full) is worth a look if the model's built-in moderation is fighting you or, conversely, if you're generating client content and want the belt-and-braces check. Output is a single video.
The one setting beginners trip on
This pack gates its model parameters behind on/off toggles - duration is a boolean, and the real value lives in duration_value, which stays greyed out until you flip the switch. Same pattern as the other video nodes here. Want an 8-second clip? Toggle duration on, then set duration_value to 8. Typing the number first does nothing.
Install
It's the same story as every node in this pack:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Or install "Runware" from ComfyUI Manager and restart. You'll need an API key from the Runware dashboard (Settings → Runware API key, or the RUNWARE_API_KEY env var), and video is the priciest thing in this pack - the node shows the per-run cost on its title bar, so keep an eye on it. There are no model files to download; the entire model lives on xAI's side, which is the appeal and also why there's no offline mode.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| referenceImagesopt | IMAGE | — | |
| frameImagesopt | IMAGE | — | |
| videoopt | STRING | Video input (UUID or URL). | |
| sizeopt | COMBO | 480p (16:9) | Output size. Only one of resolution or dimensions is sent. |
| durationopt | BOOLEAN | false | Enable to set duration. This setting has usage rules in this model, so it is off unless you enable it. |
| duration_valueopt | INT | 61–15 | 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. |
| 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 | — |