API Abierta

Grok Image API

Llama a los modelos de imagen Grok mediante la API compatible con Images de OpenAI de LMU AI: texto a imagen, edición, entrada por URL y Base64, descargas, elección de modelo y solución de errores.

LMU AI ofrece generación y edición de imágenes Grok a través de la ruta compatible con Images de OpenAI.

Base URL

SDK compatible con OpenAI:

https://api.lmuai.com/v1

Endpoints HTTP completos:

POST https://api.lmuai.com/v1/images/generations
POST https://api.lmuai.com/v1/images/edits

1. Descripción general de la API

MétodoRutaDescripción
GET/v1/modelsConsulta los modelos disponibles para tu grupo Grok actual
POST/v1/images/generationsTexto a imagen de Grok, respuesta síncrona
POST/v1/images/editsEdición de imágenes / imagen a imagen de Grok, respuesta síncrona

Actualmente no hay una API pública de trabajos asíncronos ni de lotes con varios elementos para Grok.

2. Modelos recomendados

EscenarioModelo recomendado
Texto a imagen estándargrok-imagine-image
Texto a imagen con prioridad en la calidadgrok-imagine-image-quality
Edición de imágenes / imagen a imagengrok-imagine-image-quality

Primero consulta los modelos con tu clave de API actual:

curl https://api.lmuai.com/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

Usa el modelo de calidad para la edición de imágenes

Los ejemplos de edición de imágenes usan grok-imagine-image-quality. No recomendamos grok-imagine-edit como tu modelo por defecto: este nombre de compatibilidad puede aparecer en algunas listas de modelos, pero algunos canales upstream devuelven 404 cuando se llama.

3. Autenticación

Authorization: Bearer YOUR_API_KEY

Tu clave de API debe pertenecer a un grupo Grok que tenga habilitada la generación de imágenes.

4. Texto a imagen

POST /v1/images/generations

curl https://api.lmuai.com/v1/images/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine-image",
    "prompt": "A blue ceramic mug, centered on a light-gray studio background, soft side lighting, no text",
    "n": 1,
    "size": "1024x1024"
  }'

JavaScript:

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.LMU_API_KEY,
  baseURL: "https://api.lmuai.com/v1",
});

const result = await client.images.generate({
  model: "grok-imagine-image",
  prompt: "A blue ceramic mug, light-gray studio background, soft side lighting, no text",
  n: 1,
  size: "1024x1024",
});

const url = result.data?.[0]?.url;
if (!url) throw new Error("No image URL in the response");
console.log(url);

Python:

from openai import OpenAI
import requests

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.lmuai.com/v1",
)

result = client.images.generate(
    model="grok-imagine-image",
    prompt="A blue ceramic mug, light-gray studio background, soft side lighting, no text",
    n=1,
    size="1024x1024",
)

url = result.data[0].url
if not url:
    raise RuntimeError("No image URL in the response")

image = requests.get(url, timeout=60)
image.raise_for_status()
with open("grok-output.jpg", "wb") as f:
    f.write(image.content)

5. Parámetros de texto a imagen

CampoTipoRequeridoDescripción
modelstringRecomendado: grok-imagine-image o grok-imagine-image-quality
promptstringDescripción de la imagen
nintegerNoNúmero de imágenes; recomendamos comenzar tus pruebas con 1
sizestringNoParámetro de tamaño compatible con OpenAI; el tamaño real de salida lo determinan las capacidades upstream de Grok
response_formatstringNoParámetro de compatibilidad de formato de respuesta; Grok normalmente devuelve una URL

No dependas de size para forzar píxeles de salida fijos

Los canales de Grok pueden aceptar size como parámetro de compatibilidad o facturación, pero los píxeles y la relación de aspecto de la imagen final los determina el resultado de generación upstream. Cuando necesites píxeles fijos, descarga la imagen y recórtala o redimensiónala tú mismo.

6. Edición de imágenes / imagen a imagen

POST /v1/images/edits

La edición de imágenes de Grok se hace mejor con JSON; pasa uno de los siguientes en image.url:

  • Una URL de imagen HTTPS accesible públicamente; o
  • Una Data URL data:image/...;base64,....

Usando una URL de imagen

curl https://api.lmuai.com/v1/images/edits \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-imagine-image-quality",
    "prompt": "Keep the mug's shape, composition, and lighting; change the mug from blue to yellow; no text",
    "image": {
      "url": "https://example.com/input.jpg",
      "type": "image_url"
    },
    "response_format": "url"
  }'

Convertir una imagen local a una Data URL

Python:

import base64
import mimetypes
import requests

api_key = "YOUR_API_KEY"
image_path = "input.jpg"
mime_type = mimetypes.guess_type(image_path)[0] or "image/jpeg"

with open(image_path, "rb") as f:
    data_url = f"data:{mime_type};base64,{base64.b64encode(f.read()).decode()}"

payload = {
    "model": "grok-imagine-image-quality",
    "prompt": "Keep the subject and composition; change the background to a seaside at dusk; no text",
    "image": {
        "url": data_url,
        "type": "image_url",
    },
    "response_format": "url",
}

response = requests.post(
    "https://api.lmuai.com/v1/images/edits",
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    json=payload,
    timeout=300,
)
response.raise_for_status()
result = response.json()
print(result["data"][0]["url"])

Las Data URL aumentan el tamaño del cuerpo de la solicitud

Base64 aumenta el cuerpo de la solicitud en aproximadamente un tercio. Para imágenes grandes, compríme­las primero, o súbelas a tu propio almacenamiento de objetos HTTPS y pasa la URL. No uses direcciones que requieran cookies, una sesión de inicio de sesión o protección temporal contra hotlinking.

7. Formato de respuesta

Una respuesta típica de imagen de Grok:

{
  "data": [
    {
      "url": "https://image-host.example/generated.jpg"
    }
  ],
  "usage": {
    "cost_in_usd_ticks": 200000000
  }
}

Los clientes deben:

  1. Verificar el código de estado HTTP;
  2. Verificar si data es un arreglo no vacío;
  3. Verificar si data[0].url no está vacío;
  4. Descargar la imagen de inmediato y guardarla en tu propio almacenamiento;
  5. No tratar la URL temporal como una dirección de recurso permanente.

El campo usage lo devuelve el canal upstream, y su estructura puede diferir de la API de imágenes de GPT. El costo final sigue tu factura de LMU AI y los detalles de Uso; no trates ningún campo upstream individual como el monto cobrado a tu cuenta.

8. Errores comunes

HTTPCausa comúnAcción recomendada
400Falta model / prompt, o una Data URL de imagen inválidaVerifica el JSON y la codificación de la imagen
401Clave de API inválidaVerifica la autenticación Bearer
403Generación de imágenes no habilitada para el grupoContacta al administrador para verificar los permisos del grupo Grok
404Se usó un alias de modelo incompatible con el canal, o la ruta upstream no está disponiblePara edición, cambia primero a grok-imagine-image-quality y guarda el ID de la solicitud
429Límites de concurrencia, RPM o cuota upstreamReduce la concurrencia y reintenta con retroceso exponencial
5xxLa generación upstream falló temporalmenteReintenta un número limitado de veces y proporciona el ID de la solicitud al administrador

9. Diferencias con otras APIs de imágenes

NecesidadDocumento recomendado
Texto a imagen e imagen a imagen nativos de GeminiGemini Image API
Texto a imagen y edición de GPTGPT Image API
Texto a imagen y edición de GrokEsta página
Procesamiento asíncrono de múltiples prompts de GeminiGemini Batch Image API

Última actualización:

En esta página