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/edits1. API 개요
| 메서드 | 경로 | 설명 |
|---|---|---|
GET | /v1/models | 현재 Grok 그룹에서 사용 가능한 모델 조회 |
POST | /v1/images/generations | Grok 텍스트-투-이미지, 동기 응답 |
POST | /v1/images/edits | Grok 이미지 편집 / 이미지-투-이미지, 동기 응답 |
현재 공개적으로 사용 가능한 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_KEYAPI 키는 이미지 생성이 활성화된 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. 텍스트-투-이미지 파라미터
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
model | string | 예 | 권장: grok-imagine-image 또는 grok-imagine-image-quality |
prompt | string | 예 | 이미지 설명 |
n | integer | 아니오 | 이미지 개수; 테스트는 1로 시작하는 것을 권장합니다 |
size | string | 아니오 | OpenAI 호환 size 파라미터; 실제 출력 크기는 Grok 업스트림 기능에 의해 결정됩니다 |
response_format | string | 아니오 | 응답 형식 호환 파라미터; 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
}
}클라이언트는 다음을 수행해야 합니다:
- HTTP 상태 코드 확인;
data가 비어 있지 않은 배열인지 확인;data[0].url이 비어 있지 않은지 확인;- 이미지를 즉시 다운로드하여 자체 스토리지에 저장;
- 임시 URL을 영구 리소스 주소로 취급하지 마세요.
usage 필드는 업스트림 채널에서 반환하며, 그 구조는 GPT 이미지 API와 다를 수 있습니다. 최종 비용은 LMU AI 청구서와 사용량 세부 정보를 따르며, 단일 업스트림 필드를 계정에 청구되는 금액으로 취급하지 마세요.
8. 일반적인 오류
| HTTP | 일반적인 원인 | 권장 조치 |
|---|---|---|
400 | model / prompt 누락, 또는 잘못된 이미지 Data URL | JSON과 이미지 인코딩 확인 |
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 |
마지막 업데이트:
LMU AI API 키를 발급받고 Claude와 Codex를 바로 사용하세요
무료 가입, 유연한 요금제. 하나의 API 키로 Claude Code, Codex CLI, Cursor, VS Code 확장, OpenCode, Cherry Studio 등 AI 도구에 연결됩니다.
가입하기