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 จะจัดการการโพลลิงแบบอะซิงโครนัสให้อัตโนมัติ

ใหม่
ยอดนิยม
ใช้งานเชิงพาณิชย์

Playground สำหรับ Grok Imagine Video

สำรวจ Playground ของ Grok Imagine Video — สภาพแวดล้อมแบบโต้ตอบสำหรับทดสอบโมเดลและรันคำถามแบบเรียลไทม์ ลองใช้ prompts ปรับพารามิเตอร์ และทำซ้ำทันทีเพื่อเร่งการพัฒนาและตรวจสอบกรณีการใช้งาน

📘 ข้อมูลจำเพาะทางเทคนิคของ Grok Imagine Video

SpecificationDetails
Model IDgrok-imagine-video
ProviderxAI
TypeAI สำหรับสร้างและตัดต่อวิดีโอ
Input Typesข้อความ (พรอมต์); รูปภาพหรือวิดีโอเป็นตัวเลือก พรอมต์ข้อความ (ภาษาธรรมชาติ); อินพุตรูปภาพเป็นตัวเลือก (image→video); หรือ video_url เป็นตัวเลือกสำหรับแก้ไขคลิปที่มีอยู่แล้ว ระยะเวลาสูงสุดของวิดีโออินพุตสำหรับการตัดต่อจะแตกต่างกันไปตาม endpoint — มีรายงานว่าประมาณ ~8.7 วินาทีสำหรับบาง workflow การตัดต่อ
Output Typesวิดีโอ .mp4 ผ่าน URL ชั่วคราว
Duration Range (generate)1–15 วินาที
Resolution480p, 720p (กำหนดค่าได้)
Aspect Ratios1:1, 16:9, 9:16
Edit Supportรองรับ — ทำให้วิดีโอเคลื่อนไหวและแก้ไขวิดีโอได้สูงสุด 8.7 วินาที
Moderationมีการกลั่นกรองเนื้อหาในตัว
Pricingคิดค่าบริการตามจำนวนวินาที โดยแตกต่างกันตามความละเอียด

🚀 Grok Imagine Video คืออะไร?

Grok Imagine Video คือโมเดล AI ขั้นสูงสำหรับการสร้างและตัดต่อวิดีโอของ xAI ที่เปิดให้ใช้งานผ่าน CometAPI ช่วยให้นักพัฒนาสามารถสร้างวิดีโอสั้นแบบกำหนดเองจากพรอมต์ภาษาธรรมชาติ และสามารถเลือกทำให้ภาพนิ่งเคลื่อนไหวหรือแก้ไขคลิปที่มีอยู่แล้วได้ โมเดลนี้รองรับการกำหนดความยาวเอาต์พุต ความละเอียด และอัตราส่วนภาพ พร้อมระบบกลั่นกรองเนื้อหาในตัวเพื่อให้เป็นไปตามนโยบาย

🧠ฟีเจอร์หลัก (สิ่งที่ทำให้ Grok Imagine แตกต่าง)

  • เสียงเนทีฟ + ลิปซิงก์: สร้างเสียงบรรยากาศ เอฟเฟกต์ และเสียงพูด / คำบรรยายสั้น ๆ ที่ซิงก์กัน พร้อมการขยับปากที่สอดคล้องโดยประมาณ
  • Image→Video / การแก้ไขด้วยพรอมต์: ทำให้ภาพนิ่งเคลื่อนไหวหรือแก้ไขฟุตเทจที่มีอยู่ผ่านพรอมต์ข้อความ (ลบ/แทนที่วัตถุ ปรับจังหวะเวลา ปรับสไตล์)
  • วนซ้ำได้รวดเร็วและมีความหน่วงต่ำ: ออกแบบมาสำหรับวงจรการตอบกลับที่รวดเร็ว เหมาะกับ workflow เชิงสร้างสรรค์และการทำต้นแบบผลิตภัณฑ์
  • Production API: Imagine API มี endpoint แบบโปรแกรมสำหรับการสร้างแบบแบตช์ การผสานรวมเข้ากับ pipeline การตัดต่อ และการควบคุมระดับองค์กร
  • “โหมด” / สไตล์หลายแบบ: โหมดที่ผู้ใช้มองเห็นได้ (ตัวอย่างที่มีรายงาน: Normal / Fun / Spicy หรือพรีเซ็ตที่คล้ายกัน) เพื่อโน้มเอียงผลลัพธ์ด้านสไตล์หรือระดับความผ่อนปรน (หมายเหตุ: ในอดีตโหมด “Spicy” เปิดใช้ NSFW)
Model (company)Max res (public)Max clip len (public)Native audio?StrengthsCaveats
Grok Imagine (xAI)720p6–15sYesวนซ้ำได้รวดเร็ว คุ้มค่าด้านต้นทุน/ความหน่วง มีการตัดต่อในตัว รองรับเสียงเนทีฟจำกัดที่ 720p; มีข้อกังวลด้าน moderation; ความสมจริงในการใช้งานจริงแปรผัน
Sora (OpenAI)720p–1080p (depends on tier)short (6–15s)Yesคุณภาพภาพสูง; ผสานรวมกับ OpenAI stack ได้ดีราคาแพงกว่า; มีข้อจำกัดด้าน moderation/controls
Veo (Google DeepMind)Up to 1080p+short (varies)Yesโฟโตเรียลลิสม์สูง การเคลื่อนไหวเสถียรต้นทุนสูงกว่า; การทดลองสาธารณะน้อยกว่า
Runway Gen-4.51080p+short (varies)Yesได้รับการยอมรับในอุตสาหกรรมสำหรับ workflow เชิงสร้างสรรค์ คุณภาพสูงมีค่าใช้จ่ายสูงกว่า; เน้นเครื่องมือสร้างสรรค์
Vidu / Kling / Pika (various specialists)up to 1080pshort (varies)Mixedบางรายมีฟีเจอร์เฉพาะทาง (Smart Cuts, multi-shot chaining)การรองรับเสียงแตกต่างกัน; ความพร้อมของ API ต่างกัน

⚠️ ข้อจำกัด

  • ความยาววิดีโอสูงสุดถูกจำกัดไว้ที่ 15 วินาที
  • การตัดต่อจะคงความยาววิดีโออินพุตเดิมไว้ (≤ 8.7 วินาที)
  • URL ที่สร้างขึ้นมีอายุชั่วคราว — โปรดดาวน์โหลดโดยเร็ว

วิธีเข้าถึงและผสานรวม Grok Imagine Video

Step 1: สมัคร API Key

เข้าสู่ระบบที่ cometapi.com หากคุณยังไม่ได้เป็นผู้ใช้ของเรา โปรดลงทะเบียนก่อน จากนั้นเข้าสู่ระบบใน CometAPI console ของคุณ รับ API key สำหรับการเข้าถึงอินเทอร์เฟซ คลิก “Add Token” ในส่วน API token ที่ศูนย์ส่วนบุคคล รับ token key: sk-xxxxx แล้วส่งคำขอ

Step 2: ส่งคำขอไปยัง API Grok Imagine Video

เลือก endpoint “grok-imagine-video” เพื่อส่งคำขอ API และกำหนด request body วิธีการส่งคำขอและ request body สามารถดูได้จากเอกสาร API บนเว็บไซต์ของเรา เว็บไซต์ของเรายังมีการทดสอบด้วย Apifox เพื่อความสะดวกของคุณ แทนที่ <YOUR_API_KEY> ด้วย CometAPI key จริงจากบัญชีของคุณ ตำแหน่งสำหรับเรียกใช้: GROKVideo Generation and Video Edit.

Step 3: ส่งคำขอไปยัง API Grok Imagine Video

ป้อนข้อความหรืออัปโหลดรูปภาพ(คุณสามารถใส่รูปภาพต้นทางเพื่อทำให้เคลื่อนไหวได้ตามต้องการ) Grok Imagine AI API จะวิเคราะห์อินพุตของคุณและเตรียมเนื้อหาสำหรับ url รองรับทั้งการแปลงข้อความเป็นวิดีโอและการแปลงรูปภาพเป็นวิดีโอ

รูปภาพต้นทางสามารถระบุได้เป็น:

  • URL สาธารณะที่ชี้ไปยังรูปภาพ
  • data URI ที่เข้ารหัสแบบ base64 (เช่น data:image/jpeg;base64,<YOUR_BASE64_IMAGE>)

Step 4: ดึงและตรวจสอบผลลัพธ์

ประมวลผลการตอบกลับของ API เพื่อรับคำตอบที่สร้างขึ้น หลังจากประมวลผลแล้ว API จะตอบกลับด้วยสถานะงานและข้อมูลเอาต์พุต โดยจะส่งคืน request_id ทันทีหลังการส่งคำขอ; ใช้ GET endpoint เพื่อตรวจสอบสถานะและดึงวิดีโอที่สร้างขึ้น การตัดต่อวิดีโอเป็นแบบ asynchronous ดังนั้นคุณอาจต้อง poll endpoint นี้หลายครั้งจนกว่างานจะเสร็จสมบูรณ์ โปรดดาวน์โหลดโดยเร็ว

คำถามที่พบบ่อย

ราคาสำหรับ 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.

โค้ดตัวอย่างและ API สำหรับ Grok Imagine Video

เข้าถึงโค้ดตัวอย่างที่ครอบคลุมและทรัพยากร API สำหรับ Grok Imagine Video เพื่อปรับปรุงกระบวนการผสานรวมของคุณ เอกสารประกอบที่มีรายละเอียดของเราให้คำแนะนำทีละขั้นตอน ช่วยให้คุณใช้ประโยชน์จากศักยภาพเต็มรูปแบบของ 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);
}