Open API

GPT Image API

text-to-image、画像編集、パラメータ、Base64 保存、モデル照会、エラー修正のために、LMU AI OpenAI Images 互換 API を通じて gpt-image-2 を呼び出します。

LMU AI は、gpt-image-2 を使用した text-to-image および 画像編集 / image-to-image のための OpenAI Images 互換 API を提供します。

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 の概要

MethodPathContent-Type説明
GET/v1/models現在の API キーで利用可能なモデルを照会します
POST/v1/images/generationsapplication/jsonGPT text-to-image、同期レスポンス
POST/v1/images/editsmultipart/form-dataGPT 画像編集 / image-to-image、同期レスポンス

GPT のマルチアイテムバッチ API はまだありません

/v1/images/batches は現在 Gemini のみをサポートしており、gpt-image-2 を受け付けることはできません。複数の GPT 画像を生成するには、クライアントから 1 件ずつリクエストを送信し、同時実行数と RPM を自分で管理してください。

本番環境では現在、非同期の画像ジョブエンドポイントも有効化されていないため、このページにある 2 つの同期 API を利用してください。

2. 認証

Authorization: Bearer YOUR_API_KEY

API キーをブラウザのフロントエンドコード、公開リポジトリ、URL のクエリ文字列、ログに置かないでください。自分のサーバーから呼び出すことを推奨します。

3. モデルの照会

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

レスポンスの data[].id から画像モデルを探してください。例えば:

{
  "object": "list",
  "data": [
    {"id": "gpt-image-2", "object": "model"}
  ]
}

モデルリストは、あなたの API キーが属するグループによって決まります。同じサイト上でも異なる API キーは異なるモデルを返す場合があります。

4. text-to-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": "gpt-image-2",
    "prompt": "A red ceramic mug, centered on a light-gray studio background, soft side lighting, no text",
    "n": 1,
    "size": "1024x1024",
    "quality": "low",
    "output_format": "png"
  }'

Python SDK

from openai import OpenAI
import base64

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

result = client.images.generate(
    model="gpt-image-2",
    prompt="A red ceramic mug, light-gray studio background, soft side lighting, no text",
    size="1024x1024",
    quality="low",
)

item = result.data[0]

if item.b64_json:
    with open("gpt-output.png", "wb") as f:
        f.write(base64.b64decode(item.b64_json))
elif item.url:
    print(item.url)
else:
    raise RuntimeError("No valid image in the response")

JavaScript

import OpenAI from "openai";
import fs from "node:fs";

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

const result = await client.images.generate({
  model: "gpt-image-2",
  prompt: "A red ceramic mug, light-gray studio background, soft side lighting, no text",
  size: "1024x1024",
  quality: "low",
  output_format: "png",
});

const item = result.data?.[0];
if (item?.b64_json) {
  fs.writeFileSync("gpt-output.png", Buffer.from(item.b64_json, "base64"));
} else if (item?.url) {
  console.log(item.url);
} else {
  throw new Error("No valid image in the response");
}

5. text-to-image のパラメータ

フィールド必須説明
modelstring推奨現在は gpt-image-2
promptstringはい画像の説明
nintegerいいえ画像の枚数。利用可能な範囲はモデルと上流チャネルによって決まります
sizestringいいえ要求するサイズ(例:1024x1024)。実際のピクセル寸法は返された画像に従います
qualitystringいいえ品質ティア(例:lowmediumhigh)。モデルの機能に依存します
backgroundstringいいえ背景設定(例:透明背景)。モデルの機能に依存します
output_formatstringいいえpngjpegwebp など。モデルの機能に依存します
output_compressionintegerいいえJPEG / WebP などのフォーマットの圧縮品質
response_formatstringいいえレスポンスフォーマットの互換パラメータ。クライアントは引き続き b64_jsonurl の両方を確認してください
moderationstringいいえコンテンツモデレーションパラメータ。モデルの機能に依存します
streambooleanいいえ画像レスポンスのストリーミング切り替え。通常のサーバーサイド呼び出しでは非ストリーミングを推奨します
partial_imagesintegerいいえストリーミングシナリオでの部分画像の数。モデルの機能に依存します

size は保証されたクロップではありません

上流アカウントや画像バックエンドが異なると、size が各々の機能にマッピングまたは正規化される場合があります。1024x1024 を要求しても、実際の画像ピクセルは異なる可能性があります。固定の比率やピクセルサイズが必要な場合は、出力ファイルの寸法を読み取り、自分の側でクロップまたはリサイズしてください。

6. 画像編集 / image-to-image

POST /v1/images/edits

GPT の画像編集は multipart/form-data を使用します:

curl https://api.lmuai.com/v1/images/edits \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "model=gpt-image-2" \
  -F "prompt=Keep the mug's shape, composition, and lighting; change the mug from red to green; no text" \
  -F "image=@./input.png" \
  -F "size=1024x1024" \
  -F "quality=low" \
  -F "output_format=png"

Python SDK:

from openai import OpenAI
import base64

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

with open("input.png", "rb") as image_file:
    result = client.images.edit(
        model="gpt-image-2",
        image=image_file,
        prompt="Keep the subject and composition; change the background to a neon street on a rainy night",
        size="1024x1024",
        quality="low",
    )

item = result.data[0]
if item.b64_json:
    with open("gpt-edited.png", "wb") as f:
        f.write(base64.b64decode(item.b64_json))

モデルとチャネルがマスク編集をサポートしている場合は、次を追加できます:

-F "mask=@./mask.png"

edits エンドポイントは input_fidelitybackgroundoutput_formatoutput_compression などのパラメータも受け付けます。正確な効果はモデルの機能に依存します。

7. レスポンス形式

典型的な GPT 画像レスポンス:

{
  "created": 1760000000,
  "data": [
    {
      "b64_json": "iVBORw0KGgoAAA..."
    }
  ],
  "background": "opaque",
  "output_format": "png",
  "quality": "low",
  "size": "1024x1024",
  "model": "gpt-image-2",
  "usage": {
    "input_tokens": 48,
    "output_tokens": 186,
    "total_tokens": 234
  }
}

クライアントは 3 段階の検証を行ってください:

  1. HTTP ステータスコードが 2xx かどうか;
  2. data が空でない配列かどうか;
  3. data[] 内に空でない b64_json または url が存在するかどうか。

HTTP 200 を受け取ったが有効な画像フィールドがない場合は、ビジネスレベルの失敗として扱ってください。

8. よくあるエラー

HTTPよくある原因推奨対応
400不正なリクエストボディ、画像フォーマット、パラメータ、またはモデルJSON / multipart、フィールド名、モデル ID を確認してください
401無効な API キーBearer ヘッダーを確認し、キーの前後にスペースを追加しないでください
403あなたの API キーが属するグループで画像生成が有効化されていない管理者に連絡してグループの画像権限を確認してください
404パスが間違っている、または現在のグループで画像 API がサポートされていない/v1/images/generations または /v1/images/edits を使用しているか確認してください
429同時実行数、RPM、または上流のクォータ制限指数バックオフを使用し、同時実行数と RPM を下げてください
5xx上流または API リレーが一時的に利用できないリクエスト ID を記録し、回数を制限して再試行してください

トラブルシューティングの際は、レスポンスヘッダーからリクエスト ID を保存して管理者に提供してください。完全な API キーは送らないでください。

9. 他の画像 API との違い

ニーズ推奨ドキュメント
Gemini ネイティブの text-to-image、image-to-image、1K / 2K / 4KGemini Image API
GPT の text-to-image と編集このページ
Grok の text-to-image と編集Grok Image API
複数の Gemini プロンプトを一度に送信Gemini Batch Image API

最終更新:

このページの目次