xai/grok-imagine-video-1.5-preview, served by Comfy Router from xAI.
Input: Text, Image · Output: Video
Quick start
Create a key in your Comfy workspace and export it asCOMFY_API_KEY. The Python and TypeScript snippets use the Comfy SDKs (pip install comfy-sdk and npm install @comfyorg/sdk); the cURL snippet is the same call over raw HTTP.
Model ID: xai/grok-imagine-video-1.5-preview
Endpoint: POST https://api.comfy.org/v2/models/xai/grok-imagine-video-1.5-preview
- Wait for the result
- Queue and collect later
The same body, sent to
POST https://api.comfy.org/v2/models/xai/grok-imagine-video-1.5-preview/requests. Router answers 201 with a request_id as soon as the run is admitted, and the result is collected once it is ready, from this process or another one. Queued delivery walks through status, cancellation and collection.Schema
Input
string
default:"\"16:9\""
Aspect ratio of the generated videoPossible values:
1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3integer
default:"8"
Video duration in seconds. Range [1, 15]. Default 8.Range:
1 to 15object
Input image object for xAI endpoints
string
Type of the image inputPossible values:
image_urlstring
required
URL of the input image (public URL or base64-encoded data URI)
string
Model to be used. Supported: grok-imagine-video (default), grok-imagine-video-1.5-preview, grok-imagine-video-1.5, grok-imagine-video-1.5-lite. The deprecated grok-imagine-video-beta id is aliased to grok-imagine-video.
object
Optional output destination for generated video
string
required
Prompt for video generation. Maximum 4,096 characters.
object[]
One or more reference images to guide the video generation (reference-to-video mode). Mutually exclusive with image. Router forwards application/json only and neither this object nor XAIImageObject accepts a file_id, so file-backed image inputs are not supported on this route.
string
required
URL of the reference image. Supports HTTPS URLs (public) or base64-encoded data URLs (e.g., data:image/jpeg;base64,…).
string
Resolution of the output video
string
Size of the output video
string
A unique identifier representing your end-user
GET /v2/models/xai/grok-imagine-video-1.5-preview/openapi.json, the same document it validates a call against before the request reaches the provider.
Output
string
Never carries a reason on this document: a non-empty block reason is an input-moderation refusal, which Router answers as a Comfy Router error rather than with this body. Absent, null or empty here.
string
The model used to generate the video
string
Absent or
done on this document. pending is the body of a poll Router has not finished and is never returned as a 200; Router accepts a missing status when video.url is populated, so a caller must not require it.Possible values: doneobject
Usage information for the video generation request
integer
The cost of this request expressed in USD ticks. One USD cent equals 100,000,000 ticks, so one US dollar equals 10,000,000,000 ticks.
object
required
The finished generation. Required here, unlike on the poll document: a terminal result with no
video.url is answered as a Comfy Router error, so a 200 always carries it.integer
Duration of the generated video in seconds
boolean
Whether the video generated by the model respects moderation rules
string
required
Non-empty on this document. Router reports success only when this leaf is populated; it is the re-hosted Comfy-signed URL described above, or xAI’s own short-lived URL when the re-host could not be performed.
Examples
Input
Output
Before you ship
The SDKs create anIdempotency-Key and reuse it for automatic retries. For manual retries, reuse the original key. Router can hold the connection for up to 10 minutes.
When a request fails, Router sends an X-Comfy-Error-Type response header explaining why. A 422 means Router rejected the input before calling the provider, and a 413 means the request body was larger than Router accepts. Download generated assets promptly because result URLs can expire.
Any size limit named in a field description above is the provider’s own bound on that field, quoted from the provider’s specification. Router applies a separate cap to the whole request body, which base64-encoded media counts against: see request body size.
This page documents one partner model called through Comfy Router. The same comfy-sdk / @comfyorg/sdk package also ships a second client, for running a whole ComfyUI workflow graph on Comfy Cloud: Comfy(api_key=...) / new Comfy({ apiKey }), with client.workflows, client.assets and client.jobs. See Comfy SDKs.
Headers
Authentication, idempotency, request IDs, error buckets, retry pacing, spend limits.
Using the Router API
Model discovery, validation errors, retries, and billing.
Limitations
What Router does not do today, and what to use instead.