xAI
Grok Imagine 1.5
grok-imagine-1.5/image-to-video
xAI's video generation model; image-to-video can animate still images and generate synchronized audio, supporting 480p to 1080p and clips up to 15 seconds long
Try grok-imagine-1.5/image-to-video
Input
Showcases
View all showcasesOutput
videoPricing
grok-imagine-1.5/image-to-video per second
| Specifications | Unit Price |
|---|---|
| 480P | $0.0114 |
| 720P | $0.0214 |
| 1080P | $0.05714 |
Positioning Overview
grok-imagine-1.5/image-to-video is an image-to-video model launched by xAI, accessible through the unified HiAPI.ai interface. It converts one or more reference images into a short clip of 1 to 15 seconds, outputs in three resolutions—480p, 720p, and 1080p—and uses an optional prompt to describe the desired motion. With multi-image input, an aspect ratio parameter can also control the framing. It suits developers and creative teams who need to quickly animate product images, concept frames, and brand assets for previewing and delivering short-form content.
Core Highlights
- Multi-image reference compositing for dynamic shots—Up to 7 reference images can be uploaded, and with multi-image input, aspect_ratio uniformly specifies the output frame.
- Duration and clarity combined on demand—Clip length is continuously adjustable from 1 to 15 seconds, and resolution covers 480p, 720p, and 1080p, letting you balance quality and cost by use case.
- Fine-grained motion control via prompts—Supports an optional prompt of up to 4096 characters to describe the desired camera and subject motion.
Capabilities
Image-driven video generation: Input 1 to 7 JPEG, PNG, or WebP images along with an optional prompt to generate a dynamic short clip—static assets need no reshoot.
Multi-tier resolution output: Choose from 480p, 720p, and 1080p—use low resolution for fast trial and error during drafting, then switch to 1080p for final delivery.
Flexible duration control: Duration is specified in whole seconds, ranging from 1 to 15 seconds; billing increases with output duration, making it easy to trim clip length to match the content rhythm.
Multi-image aspect ratio control: Offers six frame options—auto, 1:1, 16:9, 9:16, 3:2, and 2:3—for consistent composition with multiple reference images; with single-image input, the aspect ratio follows the original image.
Use Cases
- Animating static product images for e-commerce and product teams—Input a product hero image and a brief motion description to produce a several-second showcase clip for detail pages, ad creatives, or social media recommendation content.
- Concept validation and ad drafts for marketing teams—Use brand concept images to quickly generate dynamic previews in multiple durations and aspect ratios for internal review before formal production.
- Vertical short video production for social media—Generate clips from a single creative image with a motion prompt for daily content updates on feeds and short-video platforms.
- Storyboard previz for creative professionals—Turn keyframe illustrations or design drafts into short clips, providing intuitive dynamic references for client communication and pre-shoot previz.
Limitations and Selection Advice
Only image-to-video is supported; at least one reference image is required, and it cannot generate directly from plain text. Output is in short-clip form with a maximum duration of 15 seconds, so it is not suitable for long-form video storytelling. 1080p accepts only a single input image; when multi-image compositing is needed, only 480p or 720p can be used. With single-image input, aspect_ratio does not take effect, and the frame is determined by the original image. For projects requiring long shots, precise lip sync, and complex storytelling, evaluate whether multi-segment stitching can meet the need before deciding on the model.
What's new
View changelog →- New model New models: grok-imagine-1.5-lite/text-to-video and grok-ima…
Frequently asked questions
View all FAQs →-
Does Grok Imagine 1.5 Image to Video require an input image?
Yes. grok-imagine-1.5/image-to-video is an image-to-video route. The image establishes the subject and opening composition; the prompt directs motion, camera, and environmental change.
-
Which durations and resolutions does Grok Imagine 1.5 Image to Video support?
The current HiAPI contract supports 1–15s at 480p or 720p. Check the page controls and API docs for the current options.
-
How is Grok Imagine 1.5 Image to Video billed?
Billing follows output duration and the selected tier. The page follows the global display unit, while the successful task record contains the final charge.
-
How can I improve subject consistency?
Use a clear, unobstructed source with a complete composition. Describe the main action and camera first, then name the appearance, material, and background relationships that must remain stable. Validate a short clip first.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: grok-imagine-1.5/image-to-video
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for grok-imagine-1.5/image-to-video and route default — see the parameter table below.
promptstringOptionalmaxLength 4096Optional text prompt describing the desired motion in the generated video, up to 4096 characters; English works best.
durationintegerOptionalDefault: 8min 1max 15Duration of the generated video in seconds, an integer from 1 to 15, default 8 seconds; cost increases with duration.
image_urlsarrayRequiredminItems 1maxItems 7Array of reference images, supporting 1 to 7 images, each in JPEG, PNG, or WebP format, up to 20MB per image; SVG is not supported. When resolution is 1080p, only 1 image is allowed.
Array [ string ]
resolutionstringOptionalDefault: "480p"Output video resolution, default 480p; 720p costs more per second, and 1080p costs the most and only supports a single input image.
480p720p1080paspect_ratiostringOptionalDefault: "auto"Aspect ratio of the output video, default auto; this parameter has no effect when only a single input image is provided—the output follows the input image's aspect ratio—and applies only when multiple reference images are provided.
auto1:116:99:163:22:3callbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine-1.5/image-to-video",
"input": {
"duration": 8,
"image_urls": "…",
"resolution": "480p",
"aspect_ratio": "auto"
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "grok-imagine-1.5/image-to-video",
input: {
"duration": 8,
"image_urls": "…",
"resolution": "480p",
"aspect_ratio": "auto"
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "grok-imagine-1.5/image-to-video",
"input": {
"duration": 8,
"image_urls": "…",
"resolution": "480p",
"aspect_ratio": "auto"
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
Kling 3.0 Kuaishou $0.100 /second -
Wan 2.6 Flash Alibaba $0.043 /second -
Wan 3.0 Video Alibaba $0.040 /second -
Kling AI Avatar Kuaishou -- -
MiniMax H3 MiniMax $0.072 /second -
Wan 2.7 Video Alibaba $0.100 /second -
LTX 2.5 Fast Lightricks $0.086 /second -
Kandinsky 6.0 Pro $1.93 /video -
Vidu Q4 Preview Vidu $0.051 /second -
Creatify Boreal Creatify $0.015 /second -
Veo 3.1 Google $0.290 /second -
HappyHorse 1.0 Alibaba $0.168 /second



