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

Grok Imagine Video

Por Segundo:$0.04
Publicado:Feb 27, 2026

Genera videos a partir de prompts de texto, anima imágenes fijas o edita videos existentes con lenguaje natural. La API admite duración, relación de aspecto y resolución configurables para los videos generados — y el SDK se encarga automáticamente del sondeo asíncrono.

Nuevo
Popular
Uso comercial

Playground para Grok Imagine Video

Explora el Playground de Grok Imagine Video — un entorno interactivo para probar modelos y ejecutar consultas en tiempo real. Prueba prompts, ajusta parámetros e itera instantáneamente para acelerar el desarrollo y validar casos de uso.

📘 Especificaciones técnicas de Grok Imagine Video

EspecificaciónDetalles
ID del modelogrok-imagine-video
ProveedorxAI
TipoIA de generación y edición de video
Tipos de entradaTexto (prompt); imagen o video opcionales. Prompts de texto (lenguaje natural); entrada de imagen opcional (imagen→video); parámetro opcional video_url para editar clips existentes. Las duraciones máximas del video de entrada para edición varían según el endpoint — se han reportado ~8.7s en algunos flujos de edición.
Tipos de salidaVideo .mp4 mediante URL temporal
Rango de duración (generación)1–15 segundos
Resolución480p, 720p (configurable)
Relaciones de aspecto1:1, 16:9, 9:16
Compatibilidad de ediciónSí — anima y modifica videos de hasta 8.7s
ModeraciónIncluye moderación de contenido
PreciosCobro por segundo, varía según la resolución

🚀 ¿Qué es Grok Imagine Video?

Grok Imagine Video es el modelo avanzado de IA de generación y edición de video de xAI expuesto a través de CometAPI. Permite a los desarrolladores generar videos cortos y personalizados a partir de prompts en lenguaje natural y, opcionalmente, animar imágenes fijas o editar clips existentes. El modelo admite longitud de salida, resolución y relación de aspecto configurables, con moderación de contenido integrada para garantizar el cumplimiento de políticas.

🧠 Funciones principales (qué diferencia a Grok Imagine)

  • Audio nativo + sincronización labial: Genera audio ambiental, efectos y locución/discurso breve con sincronización labial aproximada.
  • Imagen→Video / edición por prompt: Anima una imagen fija o edita metraje existente mediante prompts de texto (eliminar/reemplazar objetos, retemporizar, cambiar de estilo).
  • Iteración rápida y baja latencia: Diseñado para ciclos de retroalimentación rápidos, adecuados para flujos creativos y prototipado de producto.
  • API de producción: Imagine API expone endpoints programáticos para generación por lotes, integración en pipelines de edición y controles empresariales.
  • Múltiples “modos”/estilos: Modos orientados al usuario (ejemplos reportados: Normal / Fun / Spicy u otros preajustes similares) para sesgar las salidas por estilo o permisividad (nota: el modo “Spicy” históricamente habilitaba NSFW).
Modelo (empresa)Resolución máx. (público)Longitud máx. del clip (público)¿Audio nativo?FortalezasAdvertencias
Grok Imagine (xAI)720p6–15sIteración rápida, buen costo/latencia, edición integrada, audio nativoLímite en 720p; preocupaciones de moderación; fidelidad variable en escenarios reales
Sora (OpenAI)720p–1080p (depende del nivel)corto (6–15s)Alta fidelidad visual; fuerte integración con el stack de OpenAIMás caro; moderación/controles más restrictivos
Veo (Google DeepMind)Hasta 1080p+corto (varía)Fuerte fotorrealismo, movimiento estableCosto más alto; menos experimentación pública
Runway Gen-4.51080p+corto (varía)Adopción en la industria para flujos creativos, alta fidelidadMás costoso; centrado en herramientas creativas
Vidu / Kling / Pika (varios especialistas)hasta 1080pcorto (varía)MixtoAlgunos ofrecen funciones de nicho (Smart Cuts, encadenado multishot)Soporte de audio variable; diferente madurez de API

⚠️ Limitaciones

  • La duración máxima del video está limitada a 15 segundos.
  • La edición conserva la duración del video de entrada (≤ 8.7s).
  • Las URL generadas son efímeras — descargue con prontitud.

Cómo acceder e integrar Grok Imagine Video

Paso 1: Regístrese para obtener la clave de API

Inicie sesión en cometapi.com. Si aún no es usuario, regístrese primero. Inicie sesión en su Consola de CometAPI. Obtenga la clave de API de credenciales de acceso de la interfaz. Haga clic en “Add Token” en el token de API del centro personal, obtenga la clave de token: sk-xxxxx y envíe.

Paso 2: Envíe solicitudes a la API de Grok Imagine Video

Seleccione el endpoint “grok-imagine-video” para enviar la solicitud de API y configure el cuerpo de la solicitud. El método y el cuerpo de la solicitud se obtienen de la documentación de API de nuestro sitio web. Nuestro sitio web también proporciona pruebas en Apifox para su conveniencia. Reemplace <YOUR_API_KEY> con su clave de CometAPI real de su cuenta. Dónde llamarlo: GROKGeneración de video y Edición de video.

Paso 3: Envíe solicitudes a la API de Grok Imagine Video

Introduzca texto o cargue una imagen (puede proporcionar opcionalmente una imagen de origen para animar). La API de Grok Imagine AI analiza su entrada y prepara el contenido para la URL. Se admiten tanto texto a video como imagen a video.

La imagen de origen se puede proporcionar como:

  • Una URL pública que apunte a una imagen
  • Un Data URI codificado en base64 (p. ej., data:image/jpeg;base64,<YOUR_BASE64_IMAGE>)

Paso 4: Recupere y verifique los resultados

Procese la respuesta de la API para obtener el resultado generado. Tras el procesamiento, la API responde con el estado de la tarea y los datos de salida. Devuelve un request_id inmediatamente al enviar; utilice el endpoint GET para comprobar el estado y recuperar el video generado. La edición de video es asíncrona; es posible que deba consultar este endpoint varias veces hasta que la tarea se complete. Descargue con prontitud.

Preguntas frecuentes

Precios para Grok Imagine Video

Explora precios competitivos para Grok Imagine Video, diseñado para adaptarse a diversos presupuestos y necesidades de uso. Nuestros planes flexibles garantizan que solo pagues por lo que uses, facilitando el escalado a medida que crecen tus requisitos. Descubre cómo Grok Imagine Video puede mejorar tus proyectos mientras mantienes los costos manejables.

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.

Código de ejemplo y API para Grok Imagine Video

Accede a código de muestra completo y recursos de API para Grok Imagine Video para agilizar tu proceso de integración. Nuestra documentación detallada proporciona orientación paso a paso, ayudándote a aprovechar todo el potencial de Grok Imagine Video en tus proyectos.

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