API ouverte

API d'images Grok

Appelez les modèles d'images Grok via l'API d'images compatible OpenAI de LMU AI : texte-vers-image, édition, entrée par URL et Base64, téléchargements, choix du modèle et correction des erreurs.

LMU AI propose la génération et l'édition d'images Grok via le chemin d'images compatible OpenAI.

URL de base

SDK compatible OpenAI :

https://api.lmuai.com/v1

Endpoints HTTP complets :

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

1. Aperçu de l'API

MéthodeCheminDescription
GET/v1/modelsInterroge les modèles disponibles pour votre groupe Grok actuel
POST/v1/images/generationsTexte-vers-image Grok, réponse synchrone
POST/v1/images/editsÉdition d'images / image-vers-image Grok, réponse synchrone

Il n'existe actuellement aucune API Grok de job asynchrone ou de lot multi-éléments accessible au public.

2. Modèles recommandés

ScénarioModèle recommandé
Texte-vers-image standardgrok-imagine-image
Texte-vers-image priorité qualitégrok-imagine-image-quality
Édition d'images / image-vers-imagegrok-imagine-image-quality

Interrogez d'abord les modèles avec votre clé API actuelle :

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

Utilisez le modèle de qualité pour l'édition d'images

Les exemples d'édition d'images utilisent grok-imagine-image-quality. Nous ne recommandons pas grok-imagine-edit comme modèle par défaut : ce nom de compatibilité peut apparaître dans certaines listes de modèles, mais certains canaux en amont retournent 404 lorsqu'il est appelé.

3. Authentification

Authorization: Bearer YOUR_API_KEY

Votre clé API doit appartenir à un groupe Grok dont la génération d'images est activée.

4. Texte-vers-image

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. Paramètres du texte-vers-image

ChampTypeRequisDescription
modelstringOuiRecommandé : grok-imagine-image ou grok-imagine-image-quality
promptstringOuiDescription de l'image
nintegerNonNombre d'images ; nous recommandons de commencer vos tests avec 1
sizestringNonParamètre de taille compatible OpenAI ; la taille de sortie réelle est déterminée par les capacités en amont de Grok
response_formatstringNonParamètre de compatibilité du format de réponse ; Grok retourne généralement une URL

Ne comptez pas sur size pour forcer des pixels de sortie fixes

Les canaux Grok peuvent accepter size comme paramètre de compatibilité ou de facturation, mais les pixels et le rapport d'aspect finaux de l'image sont déterminés par le résultat de génération en amont. Lorsque vous avez besoin de pixels fixes, téléchargez l'image et recadrez-la ou redimensionnez-la vous-même.

6. Édition d'images / image-vers-image

POST /v1/images/edits

L'édition d'images Grok se fait de préférence en JSON ; passez l'une des valeurs suivantes dans image.url :

  • Une URL d'image HTTPS publiquement accessible ; ou
  • Une Data URL data:image/...;base64,....

Utilisation d'une URL d'image

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

Conversion d'une image locale en 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"])

Les Data URL agrandissent le corps de la requête

Le Base64 augmente le corps de la requête d'environ un tiers. Pour les grandes images, compressez-les d'abord, ou téléversez-les vers votre propre stockage d'objets HTTPS et passez l'URL. N'utilisez pas d'adresses nécessitant des cookies, une session de connexion ou une protection anti-hotlink temporaire.

7. Format de réponse

Une réponse d'image Grok typique :

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

Les clients doivent :

  1. Vérifier le code de statut HTTP ;
  2. Vérifier si data est un tableau non vide ;
  3. Vérifier si data[0].url est non vide ;
  4. Télécharger l'image immédiatement et l'enregistrer dans votre propre stockage ;
  5. Ne pas traiter l'URL temporaire comme une adresse de ressource permanente.

Le champ usage est retourné par le canal en amont, et sa structure peut différer de l'API d'images GPT. Le coût final suit votre facture LMU AI et les détails d'Usage ; ne traitez aucun champ en amont isolé comme le montant facturé à votre compte.

8. Erreurs courantes

HTTPCause couranteAction recommandée
400model / prompt manquant, ou Data URL d'image invalideVérifiez le JSON et l'encodage de l'image
401Clé API invalideVérifiez l'authentification Bearer
403Génération d'images non activée pour le groupeContactez l'administrateur pour vérifier les permissions du groupe Grok
404Un alias de modèle incompatible avec le canal a été utilisé, ou le chemin en amont est indisponiblePour l'édition, basculez d'abord sur grok-imagine-image-quality et enregistrez l'ID de requête
429Limites de concurrence, de RPM ou de quota en amontRéduisez la concurrence et réessayez avec un backoff exponentiel
5xxÉchec temporaire de la génération en amontRéessayez un nombre limité de fois et fournissez l'ID de requête à l'administrateur

9. Différences avec les autres API d'images

BesoinDoc recommandée
Texte-vers-image et image-vers-image natifs de GeminiAPI d'images Gemini
Texte-vers-image et édition GPTAPI d'images GPT
Texte-vers-image et édition GrokCette page
Traitement asynchrone de plusieurs prompts GeminiAPI d'images par lots Gemini

Dernière mise à jour :

Sur cette page