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

Grok Imagine Video

Na Sekundę:$0.04
Wydano:Feb 27, 2026

Generuj materiały wideo na podstawie promptów tekstowych, animuj statyczne obrazy lub edytuj istniejące materiały wideo za pomocą języka naturalnego. API obsługuje konfigurowalny czas trwania, proporcje obrazu i rozdzielczość generowanych materiałów wideo — przy czym SDK automatycznie obsługuje asynchroniczne odpytywanie.

Nowy
Popularny
Użycie komercyjne

Playground dla Grok Imagine Video

Poznaj Playground Grok Imagine Video — interaktywne środowisko do testowania modeli i uruchamiania zapytań w czasie rzeczywistym. Wypróbuj prompty, dostosuj parametry i iteruj natychmiast, aby przyspieszyć rozwój i zweryfikować przypadki użycia.

📘 Specyfikacja techniczna Grok Imagine Video

ParametrSzczegóły
Identyfikator modelugrok-imagine-video
DostawcaxAI
TypSztuczna inteligencja do generowania i edycji wideo
Typy wejściaTekst (prompt); opcjonalnie obraz lub wideo Wskazówki tekstowe (język naturalny); opcjonalne wejście obrazu (image→video); opcjonalny video_url do edycji istniejących klipów. Maksymalny czas wejściowego wideo do edycji zależy od endpointu — zgłaszano ~8,7s dla niektórych przepływów edycji.
Typy wyjściawideo .mp4 poprzez tymczasowy URL
Zakres czasu trwania (generowanie)1–15 sekund
Rozdzielczość480p, 720p (konfigurowalne)
Proporcje obrazu1:1, 16:9, 9:16
Obsługa edycjiTak — animuje i modyfikuje filmy do 8,7s
ModeracjaWbudowana moderacja treści
CennikRozliczanie za sekundę, zależne od rozdzielczości

🚀 Czym jest Grok Imagine Video?

Grok Imagine Video to zaawansowany model xAI do generowania i edycji wideo, udostępniony przez CometAPI. Umożliwia deweloperom generowanie krótkich, spersonalizowanych filmów na podstawie wskazówek w języku naturalnym oraz opcjonalnie animowanie statycznych obrazów lub edycję istniejących klipów. Model obsługuje konfigurowalną długość wyjścia, rozdzielczość i proporcje obrazu, a wbudowana moderacja treści zapewnia zgodność z politykami.

🧠Główne funkcje (co wyróżnia Grok Imagine)

  • Wbudowane audio + lip-sync: Generuje zsynchronizowane dźwięki otoczenia, efekty oraz krótkie kwestie mówione/narrację z przybliżoną synchronizacją ruchu ust.
  • Obraz→Wideo / edycja promptu: Animuj statyczny obraz lub edytuj istniejący materiał wideo za pomocą wskazówek tekstowych (usuwanie/zastępowanie obiektów, zmiana czasu, zmiana stylu).
  • Szybkie iteracje i niskie opóźnienia: Zaprojektowany do szybkich pętli informacji zwrotnej odpowiednich dla kreatywnych procesów i prototypowania produktów.
  • Produkcyjne API: Imagine API udostępnia programistyczne endpointy do wsadowego generowania, integracji z pipeline’ami edycyjnymi i kontroli korporacyjnych.
  • Wiele „trybów”/stylów: Tryby dla użytkowników (zgłaszane przykłady: Normal / Fun / Spicy lub podobne presety) ukierunkowujące wyniki pod kątem stylu lub permisywności (uwaga: tryb „Spicy” historycznie umożliwiał NSFW).
Model (firma)Maks. rozdzielczość (publiczna)Maks. długość klipu (publiczna)Wbudowane audio?Mocne stronyOgraniczenia
Grok Imagine (xAI)720p6–15sTakSzybkie iteracje, korzystny koszt/opóźnienia, zintegrowana edycja, wbudowane audioLimit 720p; kwestie moderacji; zmienna wierność w realnym świecie
Sora (OpenAI)720p–1080p (zależnie od tieru)krótkie (6–15s)TakWysoka wierność wizualna; silna integracja ze stosem OpenAIWyższy koszt; ograniczona moderacja/kontrola
Veo (Google DeepMind)Do 1080p+krótkie (różnie)TakSilny fotorealizm, stabilny ruchWyższy koszt; mniej publicznych eksperymentów
Runway Gen-4.51080p+krótkie (różnie)TakSzerokie zastosowanie w branży w kreatywnych workflowach, wysoka wiernośćDroższy; skupienie na narzędziach kreatywnych
Vidu / Kling / Pika (różni specjaliści)do 1080pkrótkie (różnie)RóżnieNiektóre oferują niszowe funkcje (Smart Cuts, łączenie wielu ujęć)Zróżnicowane wsparcie audio; różny poziom dojrzałości API

⚠️ Ograniczenia

  • Maksymalna długość wideo wynosi 15 sekund.
  • Edycja zachowuje długość wejściowego wideo (≤ 8,7s).
  • Generowane adresy URL są efemeryczne — pobierz je niezwłocznie.

Jak uzyskać dostęp i zintegrować Grok Imagine Video

Krok 1: Zarejestruj klucz API

Zaloguj się na cometapi.com. Jeśli nie jesteś jeszcze naszym użytkownikiem, zarejestruj się najpierw. Zaloguj się do konsoli CometAPI. Uzyskaj poświadczenia dostępu — klucz API interfejsu. Kliknij „Add Token” w tokenie API w centrum osobistym, uzyskaj klucz tokena: sk-xxxxx i wyślij.

Krok 2: Wyślij żądania do interfejsu API Grok Imagine Video

Wybierz endpoint „grok-imagine-video”, aby wysłać żądanie do API i ustaw body żądania. Metoda oraz body żądania są dostępne w dokumentacji API na naszej stronie. Dla wygody udostępniamy też test w Apifox. Zastąp <YOUR_API_KEY> rzeczywistym kluczem CometAPI ze swojego konta. Gdzie to wywołać: GROK Generowanie wideo oraz Edycja wideo.

Krok 3: Wyślij żądania do interfejsu API Grok Imagine Video

Wprowadź tekst lub prześlij obraz (możesz opcjonalnie podać obraz źródłowy do animacji). API Grok Imagine AI analizuje Twoje dane wejściowe i przygotowuje treść do URL. Obsługiwane są zarówno konwersje tekst→wideo, jak i obraz→wideo.

Obraz źródłowy można dostarczyć jako:

  • Publiczny adres URL wskazujący na obraz
  • Identyfikator URI danych zakodowany w base64 (np. data:image/jpeg;base64,<YOUR_BASE64_IMAGE>)

Krok 4: Pobierz i zweryfikuj wyniki

Przetwórz odpowiedź API, aby uzyskać wygenerowany wynik. Po przetworzeniu API zwraca status zadania i dane wyjściowe. Natychmiast po złożeniu zwracany jest request_id; użyj endpointu GET, aby sprawdzać status i pobrać wygenerowane wideo. Edycja wideo jest asynchroniczna — może być konieczne wielokrotne odpytywanie tego endpointu, aż zadanie się zakończy. Prosimy pobrać niezwłocznie.

FAQ

Cennik dla Grok Imagine Video

Poznaj konkurencyjne ceny dla Grok Imagine Video, zaprojektowane tak, aby pasowały do różnych budżetów i potrzeb użytkowania. Nasze elastyczne plany zapewniają, że płacisz tylko za to, czego używasz, co ułatwia skalowanie w miarę wzrostu Twoich wymagań. Odkryj, jak Grok Imagine Video może ulepszyć Twoje projekty przy jednoczesnym utrzymaniu kosztów na rozsądnym poziomie.

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.

Przykładowy kod i API dla Grok Imagine Video

Uzyskaj dostęp do kompleksowego przykładowego kodu i zasobów API dla Grok Imagine Video, aby usprawnić proces integracji. Nasza szczegółowa dokumentacja zapewnia wskazówki krok po kroku, pomagając wykorzystać pełny potencjał Grok Imagine Video w Twoich projektach.

#!/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);
}