メインコンテンツへスキップ

リクエストボディ

model
string
デフォルト:"dall-e-3"
使用するモデル(例:dall-e-3flux-promidjourney)。
prompt
string
必須
生成したい画像の説明テキスト。
n
integer
デフォルト:"1"
生成する画像の数(1〜4、モデルに依存)。
size
string
デフォルト:"1024x1024"
画像サイズ。オプションはモデルによって異なります:
  • DALL-E 3: 1024x10241792x10241024x1792
  • その他のモデル: 512x5121024x1024など。
quality
string
デフォルト:"standard"
画質(standard または hd)。DALL-E 3のみ。
response_format
string
デフォルト:"url"
レスポンス形式:url または b64_json
style
string
デフォルト:"vivid"
DALL-E 3のスタイル:vivid または natural
user
string
エンドユーザーの一意識別子。

レスポンス

インラインレスポンス

created
integer
作成時のUnixタイムスタンプ。
data
array
生成された画像の配列。各オブジェクトに含まれるもの:
  • url (string): 生成された画像のURL
  • b64_json (string): Base64エンコードされた画像(リクエストされた場合)
  • revised_prompt (string): 使用されたプロンプト(DALL-E 3)

非同期タスクレスポンス

一部の画像モデルは即座に非同期タスクを返し、ルーティングされたプロバイダーのパスに応じてインラインまたはタスクベースのいずれかとして動作する場合があります。レスポンスに status: "pending" が含まれている場合は、非同期タスクレスポンスとして扱ってください:
poll_url が提供されている場合は、そのまま使用してください。後続のポーリングには task_id を非同期タスクの識別子として使用します。
created
integer
作成時のUnixタイムスタンプ。
task_id
string
ポーリング用の一意のタスク識別子。
status
string
初期ステータス:pending
poll_url
string
結果をポーリングするための相対URL(例:/v1/tasks/{id})。
data
array
プレースホルダーデータを含む配列。完了するまで url は空になります。
status: "pending" を受け取った場合は、Get Image Status エンドポイントを使用して結果をポーリングしてください。
curl -X POST "https://api.lemondata.cc/v1/images/generations" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dall-e-3",
    "prompt": "A white cat sitting on a windowsill watching rain",
    "size": "1024x1024",
    "quality": "standard",
    "n": 1
  }'
{
  "created": 1706000000,
  "data": [
    {
      "url": "https://...",
      "revised_prompt": "A fluffy white cat with bright eyes sitting peacefully on a wooden windowsill, watching raindrops stream down the glass window..."
    }
  ]
}

利用可能なモデル

モデルタイプ特徴
dall-e-3通常はインライン最高品質、プロンプト補正
dall-e-2通常はインライン高速、より手頃な価格
flux-pro多くの場合タスクベースフォトリアル、高品質
flux-schnell通常はインライン非常に高速
midjourney多くの場合タスクベース芸術的なスタイル
ideogram-v3多くの場合タスクベース最高のテキストレンダリング
stable-diffusion-3通常はインラインオープンソース、カスタマイズ可能
モデルを常に同期または常に非同期としてハードコードしないでください。作成レスポンスが status: "pending" を返した場合は、poll_url に従い、完了するまでポーリングしてください。

タスクベースのレスポンスの処理

画像モデルの場合、レスポンスに status: "pending" が含まれているかどうかを常に確認してください:
import requests
import time

def generate_image(prompt, model="midjourney"):
    # 画像生成リクエストの作成
    response = requests.post(
        "https://api.lemondata.cc/v1/images/generations",
        headers={"Authorization": "Bearer sk-your-api-key"},
        json={"model": model, "prompt": prompt}
    )
    data = response.json()

    # タスクベースかどうかを確認
    if data.get("status") == "pending":
        task_id = data["task_id"]
        poll_url = data.get("poll_url")
        print(f"Image task started: {task_id}")

        # 結果をポーリング
        while True:
            status_resp = requests.get(
                f"https://api.lemondata.cc{poll_url}" if poll_url else f"https://api.lemondata.cc/v1/tasks/{task_id}",
                headers={"Authorization": "Bearer sk-your-api-key"}
            )
            status_data = status_resp.json()

            if status_data["status"] == "completed":
                return status_data["data"][0]["url"]
            elif status_data["status"] == "failed":
                raise Exception(status_data.get("error", "Generation failed"))

            time.sleep(3)
    else:
        # インラインレスポンス
        return data["data"][0]["url"]

# 使用例
url = generate_image("a beautiful sunset over mountains", model="midjourney")
print(f"Generated image: {url}")