Seedream 5.0 Pro 정식 출시 | 이미지 생성기에서 사용해보기 →

Grok Imagine Video Image to Video

x-ai /

X-AI Grok Imagine Video transforms images into videos using xAI's Grok Imagine Video model. Animate still images with natural motion, scene continuity, and synchronized audio. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

image-to-video
입력

대기 중

$0.05실행당·~20 / $1

다음:

예시전체 보기

A high-quality cinematic video of a couple sitting at a table in a dimly lit, warm atmosphere cafe. The handsome man on the left and the beautiful woman on the right are looking into each other's eyes with a loving smile. The man slightly nods his head while listening, and the woman tucks a strand of hair behind her ear. In the background, soft bokeh lights flicker gently. The camera slowly orbits around them to enhance the romantic vibe.

관련 모델

README

Grok Imagine Video Image-to-Video

Grok Imagine Video Image-to-Video is X-AI's image animation model that brings static images to life. Upload a reference image and describe the motion you want — the model generates a cinematic video with smooth, natural movement and consistent visual quality.

Why Choose This?

  • Image-driven generation Transform any still image into a dynamic video with natural, fluid motion.

  • Flexible duration Generate videos at 6 or 10 seconds to match your scene pacing.

  • Resolution options Output in 720p or 480p based on your quality and speed requirements.

  • Prompt Enhancer Built-in tool to automatically refine and strengthen your motion descriptions for better results.

Parameters

ParameterRequiredDescription
imageYesReference image to animate (URL or file upload).
promptYesText description of the desired motion, camera movement, and scene.
durationNoVideo length in seconds. Options: 6, 10.
resolutionNoOutput resolution: 720p (default) or 480p.

How to Use

  1. Upload your image — provide the reference image via URL or drag-and-drop upload.
  2. Write your prompt — describe the motion, camera movement, and scene details. Use the Prompt Enhancer for better results.
  3. Set duration — choose 6 or 10 seconds based on your scene length.
  4. Select resolution — 720p for higher quality, 480p for faster processing.
  5. Run — submit and download your video.

Pricing

DurationCost
6s$0.30
10s$0.50

Billing Rules

  • Rate: $0.05 per second
  • Duration options: 6 or 10 seconds
  • Billing is based on the selected duration, not actual playback length

Best Use Cases

  • Photo Animation — Bring portraits, landscapes, and product images to life with natural motion.
  • Social Media Content — Create engaging video clips from static images for Reels, TikTok, and Shorts.
  • Marketing & Ads — Generate dynamic promotional videos from product photos without a film crew.
  • Storytelling — Animate illustrations and concept art to build visual narratives.
  • Creative Projects — Explore motion concepts and cinematic ideas from reference images.

Pro Tips

  • Use the Prompt Enhancer to refine your motion descriptions before generating.
  • Be specific about camera movement (pan, zoom, dolly) and subject behavior in your prompt.
  • Use high-quality, well-lit source images for sharper, more consistent video output.
  • Start with a 6-second generation to test your prompt before committing to a 10-second run.
  • Describe both motion and atmosphere in your prompt for richer results.

Notes

  • Both image and prompt are required fields.
  • Ensure image URLs are publicly accessible; a preview thumbnail in the interface confirms the URL is reachable.
  • Maximum duration is 10 seconds.

Related Models

참고:이 웹사이트는 제3자가 제공하는 AI 모델을 사용합니다.

Grok Imagine Video Image To Video API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/x-ai/grok-imagine-video/image-to-video with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Grok Imagine Video Image To Video below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
    "duration": 6,
    "resolution": "720p"
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/x-ai/grok-imagine-video/image-to-video" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $WAVESPEED_API_KEY" \
  -d "$REQUEST_BODY")

TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "$TASK" | jq -r '.urls.get // empty')
if [ -z "$RESULT_URL" ]; then
  RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
    -H "Authorization: Bearer $WAVESPEED_API_KEY")
  RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
  STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
  case "$STATUS" in
    completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "$STATUS" >&2; exit 1 ;;
  esac
done
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/x-ai/grok-imagine-video/image-to-video";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "prompt": "A cinematic shot of a city at sunset, soft golden light",
        "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
        "duration": 6,
        "resolution": "720p"
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
  `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;

// 2. Poll until the prediction finishes.
while (true) {
  const resultBody = await requestJson(resultUrl, {
    headers: { "Authorization": `Bearer ${apiKey}` },
  });
  const result = resultBody.data ?? resultBody;
  if (result.status === "completed") {
    console.log(result.outputs);
    break;
  }
  if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
  if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
  await new Promise(resolve => setTimeout(resolve, 2000));
}
Python example
import json
import os
import time
from urllib.request import Request, urlopen

api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
    "duration": 6,
    "resolution": "720p"
}

def request_json(url, data=None):
    request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
    with urlopen(request) as response:
        return json.load(response)

# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/x-ai/grok-imagine-video/image-to-video", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
    raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"

# 2. Poll until the prediction finishes.
while True:
    result_body = request_json(result_url)
    result = result_body.get("data", result_body)
    status = result.get("status")
    if status == "completed":
        print(result.get("outputs", []))
        break
    if status in {"failed", "cancelled", "timeout"}:
        raise RuntimeError(result)
    if status not in {"created", "processing"}:
        raise RuntimeError(f"Unexpected status: {status}")
    time.sleep(2)

Grok Imagine Video Image To Video API — Frequently asked questions

What is the Grok Imagine Video Image To Video API?

Grok Imagine Video Image To Video is a xAI model for video generation from images, exposed as a REST API on WaveSpeedAI. X-AI Grok Imagine Video transforms images into videos using xAI's Grok Imagine Video model. Animate still images with natural motion, scene continuity, and synchronized audio. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Grok Imagine Video Image To Video API?

POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/x-ai/x-ai-grok-imagine-video-image-to-video.

How much does Grok Imagine Video Image To Video cost per run?

Grok Imagine Video Image To Video starts at $0.050 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.

What inputs does Grok Imagine Video Image To Video accept?

Key inputs: `prompt`, `image`, `resolution`, `duration`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/x-ai/x-ai-grok-imagine-video-image-to-video.

How long does Grok Imagine Video Image To Video take to generate?

Median end-to-end generation time on WaveSpeedAI is around 50 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.

Can I use Grok Imagine Video Image To Video outputs commercially?

Commercial usage rights depend on the model's license, set by its provider (xAI). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.

Grok Imagine Video Image to Video | Fast Image-to-Video API | WaveSpeedAI