APIドキュメント

アプリケーションにAI画像生成を統合

概要

GirlGeneratorAI APIを使うとAI画像をプログラム経由で生成できます。すべてのリクエストはJSONで、APIキーによる認証が必要です。

ベースURLhttps://girlgenerator.app

認証

すべてのAPIリクエストにはBearerトークンが必要です。APIキーは次の場所で作成できます: 設定 → APIキー.

ヘッダー
Authorization: Bearer YOUR_API_KEY

画像を生成

画像生成タスクを送信します。レスポンスにはポーリング用のタスクIDが含まれます。

POST /api/v1/generate

パラメータ

scenestringrequired
"text-to-image" または "image-to-image"
promptstringrequired
画像を説明するテキストプロンプト(最大2000文字)
aspect_ratiostring
任意。次のいずれか:auto, 1:1, 3:2, 2:3, 9:16, 16:9, 3:4, 4:3。デフォルト:auto
image_inputstring[]
image-to-imageに必須。参考画像URLの配列

レスポンス

201 Created
{
  "task_id": "abc123",
  "status": "pending",
  "credits_used": 1,
  "credits_remaining": 12762
}

cURL
curl -X POST https://girlgenerator.app/api/v1/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "scene": "text-to-image",
    "prompt": "a cute anime girl with blue hair, detailed portrait",
    "aspect_ratio": "1:1"
  }'
Python
import requests

response = requests.post(
    "https://girlgenerator.app/api/v1/generate",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "scene": "text-to-image",
        "prompt": "a cute anime girl with blue hair, detailed portrait",
        "aspect_ratio": "1:1",
    },
)
data = response.json()
print(data["task_id"])  # Use this to poll for results
JavaScript (fetch)
const response = await fetch("https://girlgenerator.app/api/v1/generate", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    scene: "text-to-image",
    prompt: "a cute anime girl with blue hair, detailed portrait",
    aspect_ratio: "1:1",
  }),
});

const data = await response.json();
console.log(data.task_id); // Use this to poll for results

タスクを取得

タスクをポーリングしてステータスを確認し、生成された画像を取得します。

GET /api/v1/tasks/task_id

レスポンス

Pending / Processing
{
  "task_id": "abc123",
  "status": "processing"
}
Success
{
  "task_id": "abc123",
  "status": "success",
  "images": [
    "https://example.com/generated-image.png"
  ]
}
Failed
{
  "task_id": "abc123",
  "status": "failed",
  "error": "Generation failed due to content policy."
}

ステータス値

pendingタスクが待機中
processing画像を生成中
success生成完了、画像が利用可能
failed生成失敗、エラーメッセージあり

Polling Example

Python
import time
import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://girlgenerator.app"

# 1. Submit generation task
resp = requests.post(
    f"{BASE_URL}/api/v1/generate",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"scene": "text-to-image", "prompt": "a cute anime girl"},
)
task_id = resp.json()["task_id"]

# 2. Poll until complete
while True:
    result = requests.get(
        f"{BASE_URL}/api/v1/tasks/{task_id}",
        headers={"Authorization": f"Bearer {API_KEY}"},
    ).json()

    if result["status"] == "success":
        print("Images:", result["images"])
        break
    elif result["status"] == "failed":
        print("Error:", result["error"])
        break

    time.sleep(5)  # Wait 5 seconds before polling again

エラーコード

すべてのエラーは次の形式に従います:

{
  "error": {
    "code": "error_code",
    "message": "Human-readable description."
  }
}
HTTPステータスエラーコード説明
401unauthorizedAPIキーがないか無効
403insufficient_creditsこの操作に必要なクレジットが不足
404task_not_foundタスクが存在しないか、別のユーザーに属する
422invalid_paramsリクエスト検証に失敗
429rate_limit_exceededリクエストが多すぎる(上限:10/分)
500internal_errorサーバーエラー

レート制限・クレジット

APIキーあたり毎分10リクエスト

💰

クレジットコストはモデルにより異なります:生成あたり1〜3クレジット。詳細はモデル一覧を参照してください。

🛈

APIとウェブの利用は同じクレジット残高を共有します。