API Aberta

Grok Image API

Chame modelos de imagem Grok pela API compatível com OpenAI Images do LMU AI: texto-para-imagem, edição, entrada por URL e Base64, downloads, escolha de modelo e correções de erros.

O LMU AI oferece geração e edição de imagens Grok através do caminho compatível com OpenAI Images.

Base URL

SDK compatível com 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. Visão geral da API

MétodoCaminhoDescrição
GET/v1/modelsConsultar os modelos disponíveis para o seu grupo Grok atual
POST/v1/images/generationsTexto-para-imagem Grok, resposta síncrona
POST/v1/images/editsEdição de imagens / imagem-para-imagem Grok, resposta síncrona

Atualmente não há uma API pública de tarefas assíncronas Grok ou de lote com múltiplos itens.

2. Modelos recomendados

CenárioModelo recomendado
Texto-para-imagem padrãogrok-imagine-image
Texto-para-imagem com prioridade em qualidadegrok-imagine-image-quality
Edição de imagens / imagem-para-imagemgrok-imagine-image-quality

Primeiro consulte os modelos com sua chave de API atual:

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

Use o modelo de qualidade para edição de imagens

Os exemplos de edição de imagens usam grok-imagine-image-quality. Não recomendamos grok-imagine-edit como seu modelo padrão: esse nome de compatibilidade pode aparecer em algumas listas de modelos, mas alguns canais upstream retornam 404 quando ele é chamado.

3. Autenticação

Authorization: Bearer YOUR_API_KEY

Sua chave de API deve pertencer a um grupo Grok que tenha a geração de imagens habilitada.

4. Texto-para-imagem

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-para-imagem

CampoTipoObrigatórioDescrição
modelstringSimRecomendado: grok-imagine-image ou grok-imagine-image-quality
promptstringSimDescrição da imagem
nintegerNãoNúmero de imagens; recomendamos começar seus testes com 1
sizestringNãoParâmetro de tamanho compatível com OpenAI; o tamanho de saída real é determinado pelas capacidades upstream do Grok
response_formatstringNãoParâmetro de compatibilidade de formato de resposta; o Grok normalmente retorna uma URL

Não confie em size para forçar pixels de saída fixos

Os canais Grok podem aceitar size como parâmetro de compatibilidade ou faturamento, mas os pixels e a proporção final da imagem são determinados pelo resultado da geração upstream. Quando você precisar de pixels fixos, baixe a imagem e recorte ou redimensione você mesmo.

6. Edição de imagens / imagem-para-imagem

POST /v1/images/edits

A edição de imagens Grok é melhor feita com JSON; passe um dos seguintes em image.url:

  • Uma URL de imagem HTTPS publicamente acessível; ou
  • Uma Data URL data:image/...;base64,....

Usando uma URL de imagem

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"
  }'

Convertendo uma imagem local em uma 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"])

Data URLs aumentam o corpo da requisição

Base64 aumenta o corpo da requisição em cerca de um terço. Para imagens grandes, comprima-as primeiro, ou faça upload para o seu próprio armazenamento de objetos HTTPS e passe a URL. Não use endereços que exijam cookies, uma sessão de login ou proteção temporária contra hotlink.

7. Formato de resposta

Uma resposta de imagem Grok típica:

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

Os clientes devem:

  1. Verificar o código de status HTTP;
  2. Verificar se data é um array não vazio;
  3. Verificar se data[0].url é não vazio;
  4. Baixar a imagem imediatamente e salvá-la no seu próprio armazenamento;
  5. Não tratar a URL temporária como um endereço de recurso permanente.

O campo usage é retornado pelo canal upstream, e sua estrutura pode diferir da API de imagens do GPT. O custo final segue sua fatura do LMU AI e os detalhes de Uso; não trate nenhum campo upstream isolado como o valor cobrado da sua conta.

8. Erros comuns

HTTPCausa comumAção recomendada
400model / prompt ausente, ou uma Data URL de imagem inválidaVerifique o JSON e a codificação da imagem
401Chave de API inválidaVerifique a autenticação Bearer
403Geração de imagens não habilitada para o grupoContate o administrador para verificar as permissões do grupo Grok
404Um alias de modelo incompatível com o canal foi usado, ou o caminho upstream está indisponívelPara edição, mude primeiro para grok-imagine-image-quality e salve o ID da requisição
429Limites de concorrência, RPM ou cota upstreamReduza a concorrência e tente novamente com backoff exponencial
5xxFalha temporária na geração upstreamTente novamente um número limitado de vezes e forneça o ID da requisição ao administrador

9. Diferenças em relação a outras APIs de imagem

NecessidadeDoc recomendado
Texto-para-imagem e imagem-para-imagem nativos do GeminiGemini Image API
Texto-para-imagem e edição do GPTGPT Image API
Texto-para-imagem e edição do GrokEsta página
Processamento assíncrono de múltiplos prompts do GeminiGemini Batch Image API

Última atualização:

Nesta página