Grok Image to Video: How to Animate a Photo (Premium $30 and Up)
Grok animates a photo into a 6–15 s clip on Premium ($30) and up, not on Free or the $8 Plus. Start at 480p, 6 s; the API costs from $0.12 a clip.
On this page

Grok can turn a still image into a short video, but not for free. As of October 30, 2026, the plan table on xAI's pricing page lists video generation as "Not included" on Free and on the $8 Plus plan, and "Included" from The X Subscription Premium ($30 a month) upward. Guides from 2025 describe free video, but today's table does not include it. No plan is unlimited either: paid plans draw on one weekly usage pool shared by chat, images, video and voice. If you still pay for an older SuperGrok or X Premium plan, it keeps working, and the quickest check is to open Imagine and see whether the video mode is there.
On a plan that includes video, open Imagine on grok.com or in the Grok app, upload your image, switch to video, describe the motion you want, and start with 480p and 6 seconds. In a test on grok.com on October 30, 2026, that setting finished in under 20 seconds and kept the drawing's style, while the same image at 1080p and 10 seconds was gradually redrawn in a more realistic style by the end of the clip. Move up in resolution and length once the short version moves the way you want.
If you only need the occasional clip, the cheaper documented route is the xAI API, which charges per second. The same pricing table lists Grok API access from Plus ($8) up, not on Free, and API calls are billed separately from prepaid credits on console.x.ai. A 6-second clip on grok-imagine-video-1.5-lite costs $0.12 at the listed rate. So Plus plus API credits gets you image-to-video in your own code, while Premium is the lowest plan that does it in the app.
Which Grok plans can turn an image into video
Video generation is part of Premium, Super, Ultra, Teams and Enterprise on The X Subscription, and it is missing from Free and Plus, according to the comparison table on x.ai/pricing as of October 30, 2026. Plus does include image generation in Imagine, so a Plus account can still make the still image; it just can't animate it.
| Plan | Monthly price | Video generation | Usage pool |
|---|---|---|---|
| Free | $0 | Not included | Limited; image generation is "Limited" |
| Plus | $8 | Not included | Base weekly pool |
| Premium | $30 | Included | 4x Plus |
| Super | $100 | Included | 15x Plus |
| Ultra | $200 | Included | 50x Plus |
| Older SuperGrok, X Premium or Cursor plans | Your current price | Not listed in the new table | Your existing allowance |
The "Usage pool" column is the whole point behind "free" and "unlimited" searches. Since June 2026, xAI's Grok FAQ describes one weekly pool for all Grok products, and says a high-quality video uses "far more" of it than a chat message. xAI does not publish how much one clip draws. You can see your own share under Settings → Usage, which breaks the percentage down by product (including Imagine) and shows the weekly reset time. When the pool runs out, paid features pause until the reset, unless you buy Extra Usage Credits (on the web only) or move to a bigger plan.
Older plans are a separate case. xAI's X Subscription pricing page says existing SuperGrok, X Premium and Cursor plans continue unless you change or cancel them, but the new comparison table doesn't say what video those plans include. The test account behind this guide was on the legacy SuperGrok Plus plan (the old $100 tier). It made two clips on October 30, 2026, and Settings → Usage still showed 0% of its weekly pool used afterwards. That tells you a large legacy pool absorbs a couple of clips; it says nothing about how far Premium's 4x pool goes. Before switching plans just for video, look for the video mode on the plan you already have, because switching cancels the old plan.
What each tier costs in full, including annual prices and top-ups, is covered in Grok Bot X Subscription Pricing: $30 Minimum, Not the $8 Plus.
How to make a video from an image on grok.com
Making a clip takes one upload, one prompt and two settings, and nothing starts until you press Enter. These steps follow the grok.com web interface as it looked on October 30, 2026; the iOS and Android apps also have Imagine, but their layout may differ.
- Open Imagine at grok.com/imagine, or tap Imagine in the Grok app.
- Click + and upload your image. JPEG, PNG, WebP, HEIC and BMP are listed as supported; GIF and SVG work on some platforms and fail on others, so convert those first.
- Switch the mode from image to video.
- Check the shape of your image. Once the upload is attached, the aspect-ratio control disappears and the video takes the image's own proportions, so crop the image to 9:16, 1:1 or 16:9 before uploading if you need a specific frame.
- Type a prompt that describes the motion (the next section shows how). The prompt is optional, and the image alone will still animate.
- Pick a resolution (480p, 720p or 1080p) and a length (6s, 10s or 15s). Start with 480p and 6s.
- Press Enter. Uploading the image does not start a generation by itself, and grok.com's settings have no option to make it do so.
- When the clip appears, play it, then use Regenerate for another take, or download it from the player.
After the upload, the composer also shows small slots for a first frame and a last frame, with a tooltip that reads "Choose your first and last frames, or create seamless loops." Your image fills the first frame by default. A second image in the last-frame slot sets where the clip ends; in xAI's API docs, using the same image as first and last frame is how a loop is made. The test runs below used the first frame only.
480p vs 1080p, 6 vs 10 seconds: what changed in a real test
Start at 480p and 6 seconds, because that is the setting that stayed closest to the uploaded picture. On October 30, 2026, the same image and prompt were run twice on grok.com from one legacy SuperGrok Plus account: a 1600×900 flat illustration of a lighthouse at sunset, with no people in it. The short, low-resolution clip kept the drawing as drawn; the 1080p, 10-second clip took more than twice as long and ended up redrawing it.
| What was measured | 480p, 6s | 1080p, 10s |
|---|---|---|
| Time to finish | About 15–20 seconds | 45.5 seconds |
| Output reported by the player | 736×400, 6.04 seconds | 1920×1088, 10.04 seconds |
| Sound | Not checked | Generated audio track, muted by default |
| Motion from the prompt | Push-in, beam swept toward the sea, clouds drifted, boat moved | Push-in and beam sweep followed |
| Match with the upload | Flat style, stripes and colors kept | First frame matched; by the last second the island had become rocks, with extra rocks, splash and sun glitter on the water |
| Buttons offered afterwards | Replace audio, Regenerate, Extend, Upscale, Subtitles, Share | Replace audio, Regenerate, Subtitles, Share |
The drift is the result to plan around. The 1080p clip started on the exact uploaded frame and kept the lighthouse colors, but the longer it ran, the more the model filled in detail that the flat drawing never had. One image and two runs can't tell you how often this happens, only that it can. If your picture's look matters (a logo, a product shot, a cartoon), get the motion right at 480p and 6 seconds first, add an explicit line such as "keep the flat illustration style" to the prompt, and then try the longer or sharper version. If the long version still drifts and a loop is acceptable, putting your image in the last-frame slot as well makes the clip return to it, so the final frame can't wander.

The 480p clip also offered Extend and Upscale, which the 1080p clip did not. What Upscale does to style was not tested. 720p and 15-second runs weren't part of the test either; xAI's developer docs only say that higher resolutions and longer clips take more time to process.
How to write a Grok motion prompt for a photo
Your image already shows the scene, so the prompt should describe what moves, in which direction, and what must stay the same. Repeating what's in the picture ("a lighthouse at sunset by the sea") adds nothing, because xAI's image-to-video docs treat the uploaded still as the first frame and the prompt as what happens next. A useful motion prompt names a camera move, gives each moving thing a direction or speed, and ends with the parts that must not change.
The prompt used in both test runs follows that pattern:
Slow push-in. Waves roll toward the shore, the clouds drift right, the lighthouse beam sweeps across the sky, the small sailboat rocks gently. Keep the lighthouse and colors unchanged."Slow push-in" is the camera. Waves, clouds, beam and boat each get one verb and a direction. The last sentence protects the subject. In the 480p run, every one of those motions showed up. In the 1080p run, the lighthouse colors held but the overall style did not, which is why a style line ("keep the flat illustration style") belongs in the last sentence when the look of the image matters. For a portrait, the same pattern reads as: a slow camera move, one small action (the subject turns toward the camera and smiles), and "keep the face, hair and clothing unchanged."
Grok animate image moderated, stuck at 480p or not working: what to do
Most failures fall into a handful of states, and each has one correct next step. None of them has a setting that turns the check off, and the fix is always to change the input, the setting or the plan.
| What you see | Why it happens | What to do |
|---|---|---|
| No video mode, or an upgrade prompt when you try | Free and Plus don't include video generation | Move to Premium or higher for the app; on Plus, you can use the API with credits billed per second |
| The clip is blocked or marked as moderated | The image or the prompt tripped xAI's content rules | Change the image or the wording and submit again; xAI's docs list no setting that turns this off |
| You chose 720p and got 480p | Your tier's 720p cap is used up, and the Grok FAQ says 720p falls back to 480p automatically | Accept 480p for now, move to a larger plan, or use the API, where resolution is a request setting billed per second |
| Video and other paid features stop working | The weekly usage pool is used up | Wait for the reset, buy Extra Usage Credits on the web, or upgrade |
| The upload fails | GIF or SVG, or a file Grok can't read on that platform | Convert to JPEG, PNG or WebP and upload again |
| The video looks different from your picture | Longer, higher-resolution clips drift from the source style | Go back to 480p and 6 seconds, add a style line to the prompt, or pin a last frame |
Sites that advertise "unrestricted" Grok video are not xAI (see the last section), and xAI's rules still apply to its own model wherever it runs. Through the API, a moderated result looks different: a failed job with the code invalid_argument, or a finished job where respect_moderation is false and the video URL is empty. Either way, the input has to change.
Grok image to video API: cost per clip and a request you can copy
The xAI API is the cheaper route when you need a few clips a month, or when you want to call image-to-video from your own code. The x.ai/pricing table lists Grok API access from Plus ($8) up and not on Free, and xAI's developer quickstart has you sign up at console.x.ai, load credits and create an API key. According to xAI's pricing page, API usage is billed separately at standard model rates and doesn't draw from a Grok plan's weekly pool, so a subscription doesn't make API calls any cheaper.
Each model has one price per second of output, listed on xAI's model pricing page as of October 30, 2026. Cost per clip is that rate times the clip length:
| Model | Price per second | 6 s clip | 10 s clip | 15 s clip | Best for |
|---|---|---|---|---|---|
grok-imagine-video-1.5-lite | $0.020 | $0.12 | $0.20 | $0.30 | Simple animations; its 1080p is upscaled from 720p |
grok-imagine-video | $0.050 | $0.30 | $0.50 | $0.75 | The older model, up to 720p; the only one that can extend a clip |
grok-imagine-video-1.5 | $0.080 | $0.48 | $0.80 | $1.20 | Native 1080p, first and last frames, keyframes, reference images |
Divide $30, the price of one month of Premium, by the 6-second prices in the table and you get 250 Lite clips or 62 clips on Grok Imagine Video 1.5. That's a price comparison only, since xAI doesn't publish how many clips Premium's weekly pool covers. xAI's video overview also says prices vary by resolution, while its model and pricing pages list one rate per model, so check the real charge on your first call: every finished job returns usage.cost_in_usd_ticks, and dividing it by 10,000,000,000 gives US dollars. xAI's docs don't say whether failed or moderated jobs are billed. Video requests sent through the Batch API are billed at the same standard rates.
Image-to-video is one request plus polling. The request below follows the field names in xAI's video generation guide and Videos API reference; it wasn't run with a live xAI key for this guide. The image can be a public URL or a base64 data URL in JPEG, PNG or WebP.
# 1. Start an image-to-video job
REQUEST_ID=$(curl -s -X POST https://api.x.ai/v1/videos/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $XAI_API_KEY" \
-d '{
"model": "grok-imagine-video-1.5-lite",
"prompt": "Slow push-in. Waves roll toward the shore, the clouds drift right. Keep the lighthouse and colors unchanged.",
"image": {"url": "https://example.com/lighthouse.png"},
"duration": 6,
"resolution": "480p"
}' | jq -r '.request_id')
# 2. Poll until the job is done or failed
while true; do
RESULT=$(curl -s https://api.x.ai/v1/videos/$REQUEST_ID \
-H "Authorization: Bearer $XAI_API_KEY")
STATUS=$(echo "$RESULT" | jq -r '.status')
if [ "$STATUS" = "done" ]; then
echo "$RESULT" | jq '{url: .video.url, respect_moderation: .video.respect_moderation, cost_in_usd_ticks: .usage.cost_in_usd_ticks}'
break
elif [ "$STATUS" = "failed" ]; then
echo "$RESULT" | jq '.error'
break
fi
sleep 5
doneA few details change the result. The API ignores aspect_ratio for image-to-video and matches your image, just like the web app. If you leave out duration and resolution, you get 8 seconds at 480p, and the API accepts any length from 1 to 15 seconds. The video URL is temporary, so download the file as soon as the job is done. The xAI Python SDK and the Vercel AI SDK run the polling loop for you.

When a job fails, error.code tells you what to change:
error.code | Meaning | Next step |
|---|---|---|
invalid_argument | Bad duration, unreadable image, prompt too long, conflicting modes, or content blocked by moderation | Fix the input and submit a new job |
permission_denied | The key's team can't use this video operation | Check which team the key belongs to |
failed_precondition | The model can't do what you asked, such as extension on 1.5 or a resolution it doesn't support | Change the model, mode or resolution |
service_unavailable | Video generation is overloaded | Retry later |
internal_error | The job failed on xAI's side | Retry, and contact support with the request_id if it repeats |
Wrong keys, unknown model names and rate limits come back immediately as HTTP errors, before any job exists. Both 1.5 models allow 10 requests per second.
Are the free "Grok image to video" sites really Grok?
Sites that offer free Grok image-to-video are third-party services, not xAI. xAI's pricing page says Grok subscriptions are sold only directly and that it doesn't authorize resellers. Some of these sites are API platforms, such as fal.ai and Replicate, that sell access to xAI's video models under their own terms and prices; others only use the Grok name, and nothing on their pages proves which model actually runs behind them. Several still list old specs, such as a 720p maximum, that no longer match xAI's own documentation. If you use one, judge it by its own pricing, content rules and data policy, because your Grok plan and its usage pool don't apply there.
If Grok isn't the right fit, AI Video Generator from Image: Best Image-to-Video Routes and When to Switch compares the other image-to-video tools. laozhang.ai doesn't offer Grok Imagine Video; its API lists other image-to-video models, including Wan 3.0, Seedance 2.5 and MiniMax H3.
Disclosure: laozhang.ai is our own service. Its prices are platform pricing, not an independent comparison.
Grok image to video: other questions
Can I remove the Grok watermark from the video?
No. xAI's Grok FAQ says generated images and videos include a Grok watermark to show they were made with AI, that there is no setting to remove it, and that removing, altering or obscuring it is prohibited under xAI's Acceptable Use Policy. Some jurisdictions also require AI-generated content to be labeled.
Do Grok videos made from an image have sound?
They can. In the October 30, 2026 test on grok.com, the 1080p clip came with a generated audio track that was muted in the player until unmuted, and the composer has an audio toggle plus a Replace audio button after generation. Through the API, xAI's video generation guide says clips include audio by default, and "generate_audio": false requests a silent one.
Can I make a Grok video longer than 15 seconds?
Not in one generation: 15 seconds is the longest option on grok.com and the API maximum. On grok.com, an Extend button appeared under the 6-second 480p clip in the October 30, 2026 test but not under the 1080p one. Through the API, extension (adding 2–10 seconds from the last frame) works only on the older grok-imagine-video model, not on Grok Imagine Video 1.5 or 1.5 Lite.
Sources6
External pages this guide links to, in the order they appear. Last updated Oct 30, 2026.
Sources6
External pages this guide links to, in the order they appear. Last updated Oct 30, 2026.
- 1.xAI's pricing pagex.ai/pricing
- 2.Grok FAQdocs.x.ai/grok/faq
- 3.X Subscription pricing pagedocs.x.ai/x-subscription/pricing
- 4.xAI's model pricing pagedocs.x.ai/developers/models
- 5.video generation guidedocs.x.ai/developers/model-capabilities/video/generation
- 6.Videos API referencedocs.x.ai/developers/rest-api-reference/inference/videos





