Open API

Grok Image API

LMU AI의 OpenAI Images 호환 API를 통해 Grok 이미지 모델을 호출하세요: 텍스트-투-이미지, 편집, URL 및 Base64 입력, 다운로드, 모델 선택, 오류 해결.

LMU AI는 OpenAI Images 호환 경로를 통해 Grok 이미지 생성과 이미지 편집을 제공합니다.

Base URL

OpenAI 호환 SDK:

https://api.lmuai.com/v1

전체 HTTP 엔드포인트:

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

1. API 개요

메서드경로설명
GET/v1/models현재 Grok 그룹에서 사용 가능한 모델 조회
POST/v1/images/generationsGrok 텍스트-투-이미지, 동기 응답
POST/v1/images/editsGrok 이미지 편집 / 이미지-투-이미지, 동기 응답

현재 공개적으로 사용 가능한 Grok 비동기 작업이나 다중 항목 배치 API는 없습니다.

2. 권장 모델

시나리오권장 모델
표준 텍스트-투-이미지grok-imagine-image
품질 우선 텍스트-투-이미지grok-imagine-image-quality
이미지 편집 / 이미지-투-이미지grok-imagine-image-quality

먼저 현재 API 키로 모델을 조회하세요:

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

이미지 편집에는 품질 모델을 사용하세요

이미지 편집 예제는 grok-imagine-image-quality를 사용합니다. grok-imagine-edit를 기본 모델로 사용하는 것은 권장하지 않습니다. 이 호환 이름이 일부 모델 목록에 나타날 수 있지만, 일부 업스트림 채널에서는 이를 호출할 때 404를 반환합니다.

3. 인증

Authorization: Bearer YOUR_API_KEY

API 키는 이미지 생성이 활성화된 Grok 그룹에 속해 있어야 합니다.

4. 텍스트-투-이미지

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. 텍스트-투-이미지 파라미터

필드타입필수설명
modelstring권장: grok-imagine-image 또는 grok-imagine-image-quality
promptstring이미지 설명
ninteger아니오이미지 개수; 테스트는 1로 시작하는 것을 권장합니다
sizestring아니오OpenAI 호환 size 파라미터; 실제 출력 크기는 Grok 업스트림 기능에 의해 결정됩니다
response_formatstring아니오응답 형식 호환 파라미터; Grok은 일반적으로 URL을 반환합니다

고정 출력 픽셀을 강제하기 위해 size에 의존하지 마세요

Grok 채널은 size를 호환 또는 과금 파라미터로 허용할 수 있지만, 최종 이미지의 픽셀과 종횡비는 업스트림 생성 결과에 의해 결정됩니다. 고정 픽셀이 필요할 때는 이미지를 다운로드하여 직접 자르거나 크기를 조정하세요.

6. 이미지 편집 / 이미지-투-이미지

POST /v1/images/edits

Grok 이미지 편집은 JSON으로 하는 것이 가장 좋습니다. image.url에 다음 중 하나를 전달하세요:

  • 공개적으로 접근 가능한 HTTPS 이미지 URL; 또는
  • data:image/...;base64,... Data URL.

이미지 URL 사용

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

로컬 이미지를 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 URL은 요청 본문을 늘립니다

Base64는 요청 본문을 약 3분의 1 정도 늘립니다. 큰 이미지의 경우 먼저 압축하거나, 자체 HTTPS 오브젝트 스토리지에 업로드하고 URL을 전달하세요. 쿠키, 로그인 세션 또는 임시 핫링크 보호가 필요한 주소는 사용하지 마세요.

7. 응답 형식

일반적인 Grok 이미지 응답:

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

클라이언트는 다음을 수행해야 합니다:

  1. HTTP 상태 코드 확인;
  2. data가 비어 있지 않은 배열인지 확인;
  3. data[0].url이 비어 있지 않은지 확인;
  4. 이미지를 즉시 다운로드하여 자체 스토리지에 저장;
  5. 임시 URL을 영구 리소스 주소로 취급하지 마세요.

usage 필드는 업스트림 채널에서 반환하며, 그 구조는 GPT 이미지 API와 다를 수 있습니다. 최종 비용은 LMU AI 청구서와 사용량 세부 정보를 따르며, 단일 업스트림 필드를 계정에 청구되는 금액으로 취급하지 마세요.

8. 일반적인 오류

HTTP일반적인 원인권장 조치
400model / prompt 누락, 또는 잘못된 이미지 Data URLJSON과 이미지 인코딩 확인
401잘못된 API 키Bearer 인증 확인
403그룹에 이미지 생성이 활성화되지 않음관리자에게 Grok 그룹 권한 확인 요청
404채널과 호환되지 않는 모델 별칭을 사용했거나, 업스트림 경로를 사용할 수 없음편집의 경우 먼저 grok-imagine-image-quality로 전환하고 요청 ID를 저장
429동시성, RPM 또는 업스트림 할당량 제한동시성을 낮추고 지수 백오프로 재시도
5xx업스트림 생성이 일시적으로 실패함제한된 횟수로 재시도하고 관리자에게 요청 ID 제공

9. 다른 이미지 API와의 차이점

필요권장 문서
Gemini 네이티브 텍스트-투-이미지 및 이미지-투-이미지Gemini Image API
GPT 텍스트-투-이미지 및 편집GPT Image API
Grok 텍스트-투-이미지 및 편집이 페이지
여러 Gemini 프롬프트의 비동기 처리Gemini Batch Image API

마지막 업데이트:

이 페이지의 목차