Nodes/ComfyUI-Grok-Proxy/Grok Proxy Video Generate (Compatibility)
ComfyUI Node

Grok Proxy Video Generate (Compatibility)

Grok Video Without Breaking Your Old Workflows

By zoidypuh·Created 3 months ago·Updated 3 months ago· 0
Grok Proxy Video Generate (Compatibility)
  • image
  • video_path
  • video_url
  • request_id
promptA cinematic slow-motion shot
proxy_base_urlhttp://127.0.0.1:8317/v1
api_keydummy
modelgrok-imagine-video
duration10
aspect_ratio16:9
resolution720p
output_prefixgrok_video
poll_interval_seconds5
max_wait_seconds600
request_timeout_seconds60
seed0
image_url
reference_images_json[]
extra_json{}

Read the name like a warning label. "Grok Proxy Video Generate (Compatibility)" is not the node you should build a new workflow around - it's the node that keeps an old workflow alive after the pack renamed its video node. If you're opening a saved workflow and this thing shows up, the whole point is that it still loads and still runs. If you're starting fresh, reach for the pack's plain "Grok Video" node instead and use this one as the fallback it's named after.

What it actually does: it takes your prompt, ships it to a local proxy that fronts xAI's Grok video models, polls until the video is done, and downloads the result into output/grok_proxy/. None of the generation happens on your GPU - the heavy lifting is on Grok's servers, so this is an API-wrapper node (the same contested corner of the ecosystem as the official Grok Imagine partner node), just routed through a proxy you control.

How it works

Under the hood it's three steps, all plain HTTP. First it POSTs to {proxy_base_url}/videos/generations with your prompt, model, duration, aspect_ratio, resolution, and seed. Then it polls GET /videos/{request_id} every poll_interval_seconds (default 5) until the job is done or max_wait_seconds (default 600) runs out - a timeout error if the proxy never hands back a video URL. Finally it downloads the file, keeping the .mp4/.mov/.webm/.mkv extension, and returns it as a path.

Three outputs, all plain strings: video_path (the file in output/grok_proxy/), video_url (the proxy's hosted URL, if it has one), and request_id (handy for debugging). Wire video_path into a video loader or preview node to actually see the clip - unlike the newer Grok Video node, this compat shim doesn't hand you a tensor.

The inputs that matter

For a first run you barely touch anything: prompt, model (default grok-imagine-video; the dropdown refreshes from the proxy's /models endpoint when available), duration (1–15s), aspect_ratio, and resolution (720p/480p).

The optional inputs give it image-to-video chops: image or image_url (never both - it errors if you connect both), or reference_images_json for a list of reference images. extra_json lets you smuggle extra parameters into the request payload. And here's a real gotcha: the default api_key is literally dummy, and the default proxy_base_url is http://127.0.0.1:8317/v1. Out of the box this node expects a proxy already running on that port. The pack is proxy-neutral on purpose - point proxy_base_url at any local proxy that exposes OpenAI-style /videos/generations routes, or set COMFY_GROK_PROXY_BASE_URL / COMFY_GROK_PROXY_API_KEY as environment variables.

Installing it

No model files, no heavy deps - the code runs on ComfyUI's bundled torch/PIL and Python's stdlib, and there's no requirements.txt at all. Install via ComfyUI Manager (search "ComfyUI-Grok-Proxy") or:

cd ComfyUI/custom_nodes
git clone https://github.com/zoidypuh/ComfyUI-Grok-Proxy.git

Then restart ComfyUI. The real dependency is the proxy itself and a Grok API account behind it - the node is just the plumbing.

Where people get burned

  • It hangs and times out. Almost always the proxy at 127.0.0.1:8317 isn't running or doesn't implement the video routes. Check proxy_base_url, then the proxy's logs.
  • max_wait_seconds too low. Grok video jobs can outrun the default 600s on slow days. Bump it; the poll loop just keeps waiting.
  • "Use either the image input or image_url, not both." That's the node talking - disconnect one.
  • reference_images_json rejected. It must be a valid JSON list, and it can't be combined with image/image_url on Grok video.

One more thing, because it matters with anything in this category: this node sends your prompt and images to a remote server and the proxy holds the credential. Only install from Manager or the official repo, and don't paste a real API key into a workflow you share - the field serializes into the file. Keep it dummy locally and let the proxy handle auth.

CategoryGrok/Compatibility

Inputs (16)

NameTypeDefaultDescription
promptSTRINGA cinematic slow-motion shot
proxy_base_urlSTRINGhttp://127.0.0.1:8317/v1
api_keySTRINGdummy
modelSTRINGgrok-imagine-video
durationINT101–15
aspect_ratioCOMBO16:98 options: auto, 16:9, 4:3, 3:2, 1:1, 2:3, +2
resolutionCOMBO720p2 options: 720p, 480p
output_prefixSTRINGgrok_video
poll_interval_secondsINT51–60
max_wait_secondsINT60030–7200
request_timeout_secondsINT605–600
seedINT00–18446744073709550000
image_urloptSTRING
imageoptIMAGE
reference_images_jsonoptSTRING[]
extra_jsonoptSTRING{}

Outputs (3)

NameTypeDescription
video_pathSTRING
video_urlSTRING
request_idSTRING