Gemini 3.6 Flash and 3.5 Flash Lite are now live on CometAPI →
X

Grok Imagine Video

毎秒:$0.04
リリース日:Feb 27, 2026

テキストプロンプトから動画を生成し、静止画像をアニメーション化し、自然言語で既存の動画を編集できます。APIは生成される動画の再生時間、アスペクト比、解像度の設定に対応し、SDKが非同期ポーリングを自動的に処理します。

新着
人気
商用利用

Grok Imagine VideoのPlayground

Grok Imagine VideoのPlaygroundを探索 — モデルをテストし、リアルタイムでクエリを実行するインタラクティブな環境。プロンプトを試し、パラメータを調整し、即座に反復して開発を加速し、ユースケースを検証します。

📘 Grok Imagine Video の技術仕様

仕様詳細
モデルIDgrok-imagine-video
提供元xAI
タイプ動画生成&編集AI
入力タイプテキスト(プロンプト);任意で画像または動画 テキストプロンプト(自然言語);任意で画像入力(画像→動画);既存クリップ編集用に任意で video_url。編集用入力動画の最大長はエンドポイントにより異なり、一部の編集フローでは約 8.7 秒と報告。
出力タイプ一時URL経由の .mp4 動画
生成可能な長さ1〜15秒
解像度480p、720p(設定可能)
アスペクト比1:1、16:9、9:16
編集対応可 — 最大約 8.7 秒までの動画のアニメーション化・変更に対応
モデレーションコンテンツモデレーションを搭載
料金秒単位課金、解像度により変動

🚀 Grok Imagine Video とは?

Grok Imagine Video は、CometAPI を通じて提供される xAI の高度な動画生成・編集AIモデルです。開発者は自然言語のプロンプトから短尺のカスタム動画を生成でき、静止画のアニメーション化や既存クリップの編集も任意で行えます。出力長・解像度・アスペクト比を設定でき、ポリシー遵守のためのコンテンツモデレーションを内蔵しています。

🧠 主な機能(Grok Imagine の特長)

  • ネイティブ音声+リップシンク:環境音や効果音、短いスピーチ/ナレーションを生成し、リップシンクに概ね同期。
  • 画像→動画/プロンプト編集:テキストプロンプトで静止画をアニメーション化、または既存映像を編集(オブジェクトの削除・置換、リタイミング、スタイル変更)。
  • 高速な反復&低レイテンシ:クリエイティブワークフローやプロトタイピングに適した迅速なフィードバックループを実現。
  • 本番向けAPI:Imagine API はバッチ生成、編集パイプライン統合、エンタープライズ制御のためのプログラマティックなエンドポイントを提供。
  • 複数の“モード”/スタイル:ユーザー向けモード(報告例:Normal/Fun/Spicy などのプリセット)により、スタイルや許容度を調整(注:歴史的に “Spicy” モードでは NSFW が有効化されていたとされる)。
モデル(企業)最大解像度(公開情報)最大クリップ長(公開情報)ネイティブ音声強み注意点
Grok Imagine (xAI)720p6〜15秒あり高速な反復、優れたコスト/レイテンシ、編集機能統合、ネイティブ音声720p 上限、モデレーションの懸念、実世界での忠実度にばらつき
Sora (OpenAI)720p〜1080p(ティアに依存)短尺(6〜15秒)あり高い映像忠実度、OpenAI スタックとの強力な統合高コスト、モデレーション/制御が制約される
Veo (Google DeepMind)最大 1080p+短尺(可変)あり高いフォトリアリズム、安定したモーション高コスト、公開での試行が少ない
Runway Gen-4.51080p+短尺(可変)ありクリエイティブワークフローでの業界採用、高い忠実度より高コスト、クリエイティブツールに注力
Vidu / Kling / Pika (various specialists)最大 1080p短尺(可変)混在ニッチ機能を提供するものもあり(Smart Cuts、マルチショット連結)音声対応は様々、API の成熟度も異なる

⚠️ 制約事項

  • 最大動画長は 15 秒に制限されています。
  • 編集は入力動画の長さを維持します(≤ 8.7 秒)。
  • 生成された URL は一時的です — 速やかにダウンロードしてください。

Grok Imagine Video へのアクセスと統合方法

ステップ 1: API キーの取得

cometapi.com にログインしてください。未登録の場合は先に登録を行ってください。CometAPI コンソールにサインインし、インターフェース用のアクセス認証 API キーを取得します。パーソナルセンターの API トークンで “Add Token” をクリックし、トークンキー: sk-xxxxx を取得して送信します。

ステップ 2: Grok Imagine Video API にリクエストを送信

grok-imagine-video” エンドポイントを選択して API リクエストを送信し、リクエストボディを設定します。リクエストメソッドとリクエストボディは当社サイトの API ドキュメントから取得できます。利便性のため Apifox テストも提供しています。<YOUR_API_KEY> をアカウントの実際の CometAPI キーに置き換えてください。呼び出し先:GROK[動画生成](https://apidoc.cometapi.com/video/grok/create) および[動画編集](https://apidoc.cometapi.com/video/grok/edit)。

ステップ 3: Grok Imagine Video API にリクエストを送信

テキストを入力するか画像をアップロードします(任意でアニメーション化するソース画像を指定可能)。Grok Imagine AI API が入力を解析し、URL 用のコンテンツを準備します。テキスト→動画と画像→動画の両方に対応しています。

ソース画像は次のいずれかで提供できます:

  • 画像を指す公開 URL
  • Base64 でエンコードした Data URI(例:data:image/jpeg;base64,<YOUR_BASE64_IMAGE>

ステップ 4: 結果の取得と検証

API レスポンスを処理して生成結果を取得します。送信後、API はタスクのステータスと出力データを返します。提出直後に request_id が返されるため、GET エンドポイントでステータスを確認し、生成された動画を取得してください。動画編集は非同期のため、完了までこのエンドポイントを複数回ポーリングする必要がある場合があります。ダウンロードはお早めに。

よくある質問

Grok Imagine Videoの料金

Grok Imagine Videoの競争力のある価格設定をご確認ください。さまざまな予算や利用ニーズに対応できるよう設計されています。柔軟なプランにより、使用した分だけお支払いいただけるため、要件の拡大に合わせて簡単にスケールアップできます。Grok Imagine Videoがコストを管理しながら、お客様のプロジェクトをどのように強化できるかをご覧ください。

Pricing Overview

CategoryItemPrice
Input PricingTextN/A (Free)
Image$0.0016
Video per second$0.008
Output Pricing480p$0.04
(Per second by resolution)720p$0.056

Note: When generating video via API, you are charged per second. You will also be charged when using video or images as input.

Grok Imagine VideoのサンプルコードとAPI

Grok Imagine Videoの包括的なサンプルコードとAPIリソースにアクセスして、統合プロセスを効率化しましょう。詳細なドキュメントでは段階的なガイダンスを提供し、プロジェクトでGrok Imagine Videoの潜在能力を最大限に活用できるよう支援します。

#!/bin/bash

# Get your CometAPI key from https://api.cometapi.com/console/token
# Export it as: export COMETAPI_KEY="your-key-here"

BASE_URL="https://api.cometapi.com/grok/v1"

# ============================================================
# Step 1: Create Video Generation Task
# ============================================================
echo "Step 1: Creating video generation task..."

CREATE_RESPONSE=$(curl -s --location --request POST "${BASE_URL}/videos/generations" \
  --header "Authorization: Bearer $COMETAPI_KEY" \
  --header "Content-Type: application/json" \
  --data-raw '{
    "model": "grok-imagine-video",
    "prompt": "A glowing crystal-powered rocket launching from the red dunes of Mars, ancient alien ruins lighting up in the background as it soars into a sky full of unfamiliar constellations",
    "duration": 10,
    "aspect_ratio": "16:9",
    "resolution": "720p"
  }')

echo "Create response: $CREATE_RESPONSE"

# Extract task ID using jq (install with: brew install jq)
TASK_ID=$(echo "$CREATE_RESPONSE" | jq -r '.request_id // .id')

if [ "$TASK_ID" == "null" ] || [ -z "$TASK_ID" ]; then
  echo "Error: Failed to get task ID from response"
  exit 1
fi

echo "Task ID: $TASK_ID"

# ============================================================
# Step 2: Poll for Task Status
# ============================================================
echo ""
echo "Step 2: Polling task status..."

while true; do
  QUERY_RESPONSE=$(curl -s --location --request GET "${BASE_URL}/videos/${TASK_ID}" \
    --header "Authorization: Bearer $COMETAPI_KEY")

  STATUS=$(echo "$QUERY_RESPONSE" | jq -r '.data.status')
  PROGRESS=$(echo "$QUERY_RESPONSE" | jq -r '.data.progress')
  echo "Status: $STATUS, Progress: $PROGRESS"

  if [ "$STATUS" == "FAILURE" ] || [ "$STATUS" == "failed" ]; then
    echo "Video generation failed!"
    echo "$QUERY_RESPONSE" | jq -r '.data.fail_reason'
    exit 1
  fi

  if [ "$STATUS" == "SUCCESS" ]; then
    VIDEO_URL=$(echo "$QUERY_RESPONSE" | jq -r '.data.data.video.url')
    echo "Video generation completed!"
    echo "Video URL: $VIDEO_URL"
    break
  fi

  sleep 10
done

cURL Code Example

#!/bin/bash

# Get your CometAPI key from https://api.cometapi.com/console/token
# Export it as: export COMETAPI_KEY="your-key-here"

BASE_URL="https://api.cometapi.com/grok/v1"

# ============================================================
# Step 1: Create Video Generation Task
# ============================================================
echo "Step 1: Creating video generation task..."

CREATE_RESPONSE=$(curl -s --location --request POST "${BASE_URL}/videos/generations" \
  --header "Authorization: Bearer $COMETAPI_KEY" \
  --header "Content-Type: application/json" \
  --data-raw '{
    "model": "grok-imagine-video",
    "prompt": "A glowing crystal-powered rocket launching from the red dunes of Mars, ancient alien ruins lighting up in the background as it soars into a sky full of unfamiliar constellations",
    "duration": 10,
    "aspect_ratio": "16:9",
    "resolution": "720p"
  }')

echo "Create response: $CREATE_RESPONSE"

# Extract task ID using jq (install with: brew install jq)
TASK_ID=$(echo "$CREATE_RESPONSE" | jq -r '.request_id // .id')

if [ "$TASK_ID" == "null" ] || [ -z "$TASK_ID" ]; then
  echo "Error: Failed to get task ID from response"
  exit 1
fi

echo "Task ID: $TASK_ID"

# ============================================================
# Step 2: Poll for Task Status
# ============================================================
echo ""
echo "Step 2: Polling task status..."

while true; do
  QUERY_RESPONSE=$(curl -s --location --request GET "${BASE_URL}/videos/${TASK_ID}" \
    --header "Authorization: Bearer $COMETAPI_KEY")

  STATUS=$(echo "$QUERY_RESPONSE" | jq -r '.data.status')
  PROGRESS=$(echo "$QUERY_RESPONSE" | jq -r '.data.progress')
  echo "Status: $STATUS, Progress: $PROGRESS"

  if [ "$STATUS" == "FAILURE" ] || [ "$STATUS" == "failed" ]; then
    echo "Video generation failed!"
    echo "$QUERY_RESPONSE" | jq -r '.data.fail_reason'
    exit 1
  fi

  if [ "$STATUS" == "SUCCESS" ]; then
    VIDEO_URL=$(echo "$QUERY_RESPONSE" | jq -r '.data.data.video.url')
    echo "Video generation completed!"
    echo "Video URL: $VIDEO_URL"
    break
  fi

  sleep 10
done

Python Code Example

import os
import time
import requests

# Get your CometAPI key from https://api.cometapi.com/console/token, and paste it here
COMETAPI_KEY = os.environ.get("COMETAPI_KEY") or "<YOUR_COMETAPI_KEY>"
BASE_URL = "https://api.cometapi.com/grok/v1"

headers = {
    "Authorization": f"Bearer {COMETAPI_KEY}",
    "Content-Type": "application/json",
}

# ============================================================
# Step 1: Create Video Generation Task
# ============================================================
print("Step 1: Creating video generation task...")

create_payload = {
    "model": "grok-imagine-video",
    "prompt": "A glowing crystal-powered rocket launching from the red dunes of Mars, ancient alien ruins lighting up in the background as it soars into a sky full of unfamiliar constellations",
    "duration": 10,
    "aspect_ratio": "16:9",
    "resolution": "720p",
}

create_response = requests.post(
    f"{BASE_URL}/videos/generations", headers=headers, json=create_payload
)

create_result = create_response.json()
print(f"Create response: {create_result}")

# Extract task ID from the response
task_id = create_result.get("request_id") or create_result.get("id")
if not task_id:
    print("Error: Failed to get task ID from response")
    exit(1)

print(f"Task ID: {task_id}")

# ============================================================
# Step 2: Poll for Task Status
# ============================================================
print("\nStep 2: Polling task status...")

while True:
    query_response = requests.get(
        f"{BASE_URL}/videos/{task_id}", headers=headers
    )
    query_result = query_response.json()

    data = query_result.get("data", {})
    status = data.get("status", "unknown")
    progress = data.get("progress", "0%")
    print(f"Status: {status}, Progress: {progress}")

    if status in ["FAILURE", "failed"]:
        print("Video generation failed!")
        print(f"Reason: {data.get('fail_reason')}")
        exit(1)

    if status == "SUCCESS":
        video_url = data.get("data", {}).get("video", {}).get("url")
        print(f"Video generation completed!")
        print(f"Video URL: {video_url}")
        break

    time.sleep(10)

JavaScript Code Example

// Get your CometAPI key from https://api.cometapi.com/console/token, and paste it here
const api_key = process.env.COMETAPI_KEY || "<YOUR_COMETAPI_KEY>";
const base_url = "https://api.cometapi.com/grok/v1";

const headers = {
  "Authorization": `Bearer ${api_key}`,
  "Content-Type": "application/json",
};

// ============================================================
// Step 1: Create Video Generation Task
// ============================================================
console.log("Step 1: Creating video generation task...");

const createPayload = {
  model: "grok-imagine-video",
  prompt: "A glowing crystal-powered rocket launching from the red dunes of Mars, ancient alien ruins lighting up in the background as it soars into a sky full of unfamiliar constellations",
  duration: 10,
  aspect_ratio: "16:9",
  resolution: "720p",
};

const createResponse = await fetch(`${base_url}/videos/generations`, {
  method: "POST",
  headers: headers,
  body: JSON.stringify(createPayload),
});

const createResult = await createResponse.json();
console.log("Create response:", JSON.stringify(createResult, null, 2));

const taskId = createResult?.request_id || createResult?.id;
if (!taskId) {
  console.log("Error: Failed to get task ID from response");
  process.exit(1);
}

console.log(`Task ID: ${taskId}`);

// ============================================================
// Step 2: Poll for Task Status
// ============================================================
console.log("\nStep 2: Polling task status...");

const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

while (true) {
  const queryResponse = await fetch(`${base_url}/videos/${taskId}`, {
    method: "GET",
    headers: headers,
  });

  const queryResult = await queryResponse.json();
  const data = queryResult?.data || {};
  const status = data?.status || "unknown";
  const progress = data?.progress || "0%";
  console.log(`Status: ${status}, Progress: ${progress}`);

  if (["FAILURE", "failed"].includes(status)) {
    console.log("Video generation failed!");
    console.log(`Reason: ${data?.fail_reason}`);
    process.exit(1);
  }

  if (status === "SUCCESS") {
    const videoUrl = data?.data?.video?.url;
    console.log("Video generation completed!");
    console.log(`Video URL: ${videoUrl}`);
    break;
  }

  await sleep(10000);
}