機能別
画像
モデルを選び、リクエストをコピーして、画像を受け取ります。以下の内容はすべて選んだモデルに合わせて変わります。
#1. モデルを選ぶ
gpt-image-2$0.0065 / リクエスト非同期タスク制限とステータス
この用途で稼働中のモデルは 12 個です。切り替えると下のコードが変わります。
#2. リクエストをコピー
YOUR_API_KEY を自分のキーに置き換えて実行します。表示されているオプションは、このモデルが受け付けるものです。
https://www.aisplice.store/v1/images/tasksBearer API key非同期タスクオプションこのモデルで公開されているオプションのみ表示しています。
# Requires curl and jq
API_KEY="${API_KEY:-YOUR_API_KEY}"
# 1. Submit once
SUBMITTED=$(curl --fail-with-body -sS https://www.aisplice.store/v1/images/tasks \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: model-docs-$(date +%s)-$$" \\
-d '{
"model": "GPT Image 2",
"prompt": "A cinematic scene with careful composition",
"size": "1:1",
"resolution": "1K",
"quality": "auto",
"n": 1
}')
TASK_ID=$(printf '%s' "$SUBMITTED" | jq -r '.task_id // .id // empty')
if [ -z "$TASK_ID" ]; then
printf '%s\n' "$SUBMITTED" >&2
exit 1
fi
echo "task_id=$TASK_ID"
# 2. Poll until terminal
while true; do
STATUS_JSON=$(curl --fail-with-body -sS \
"https://www.aisplice.store/v1/images/tasks/$TASK_ID" \
-H "Authorization: Bearer $API_KEY")
STATUS=$(printf '%s' "$STATUS_JSON" | jq -r '.status // empty' | tr '[:upper:]' '[:lower:]')
echo "status=$STATUS"
case "$STATUS" in
completed|succeeded|success) break ;;
failed|failure|cancelled|canceled)
printf '%s\n' "$STATUS_JSON" | jq .
exit 1
;;
esac
sleep 3
done
# 3. Fetch the final result
curl --fail-with-body -sS \
"https://www.aisplice.store/v1/images/tasks/$TASK_ID/content" \
-H "Authorization: Bearer $API_KEY" | jq .本番環境では公開メディア URL を推奨します。 ローカルファイルは先にアップロードし、public_url をモデルのリクエストに指定してください。大きな Base64 のボディは避けてください。
アップロードガイドを読むすべてのパラメーター
このモデルが受け付けるすべてのフィールドと、指定できる値。
すべてのパラメーター
このモデルが受け付けるすべてのフィールドと、指定できる値。
modelこのリクエストで使う正確なモデル識別子。
gpt-image-2prompt目的の結果を記述する指示。
size出力のアスペクト比またはサイズ。
auto1:13:22:34:33:45:44:516:99:162:11:23:11:321:99:21resolutionRequests the selected resolution natively, then applies professional upscaling only when returned pixels are below the fulfillment threshold.
1K2K4Kquality出力品質のティア。
autolowmediumhighn1imagesOptional reference images for image editing, up to 16.
レスポンスの流れ
タスクのステータス、終了状態、結果レスポンスの例。
レスポンスの流れ
タスクのステータス、終了状態、結果レスポンスの例。
{
"id": "task_xxx",
"task_id": "task_xxx",
"object": "image.task",
"model": "GPT Image 2",
"status": "queued"
}{
"created": 1720000000,
"data": [
{
"url": "https://media.example/result.png"
}
]
}待機中
queued · submitted · in_progress · processing
成功
completed · succeeded · success
失敗
failed · failure · cancelled · canceled
#3. 結果を取得
送信するとすぐに task_id が返ります。status が completed になるまで数秒ごとにタスクを確認するか、webhook_url を渡せば完了時にこちらから呼び出します。
GET https://www.aisplice.store/v1/images/tasks/{task_id}
GET https://www.aisplice.store/v1/images/tasks/{task_id}/content
成功した場合のみ課金
#うまくいかないとき
- フィールド名付きの 400:そのオプションはこのモデルでは受け付けられません。手順 2 に表示される値を使ってください。
- モデルがコンテンツを拒否した場合:プロンプトを言い換えてください。拒否されたリクエストは課金されません。
- 402:残高がこのリクエストに足りません。ウォレットでチャージしてから再試行してください。
- 429:ペースを落とし、Retry-After の秒数が経ってから再試行してください。
- 503 model_not_found:モデル名が間違っているか、モデルがオフラインです。手順 1 から選び直してください。
#参照画像
手順 2 に表示される参照画像フィールドに、公開されている画像 URL を指定します。ローカルファイルは先にアップロードし、返された URL を使ってください。
プロダクトに組み込む最初にユーザーに見せるオプションと、後回しにするオプション。
最初にユーザーに見せるべき選択肢まずはプロンプトと料金に影響する設定を 1 つだけ用意し、基本フローが動いてから残りを追加します。+
創作の意図
prompt のようなフィールドは、変更による結果をユーザーが直接理解できるため、UI に置くべきです。
コストの倍率要因
duration、resolution、size、count のようなフィールドは、料金をすでに説明できる状態になってから導入してください。
モード切り替え
image、mask、継続用の ID のようなフィールドはワークフロー自体を変えるため、専用のモードでのみ表示してください。
システム内部の設定
webhook_secret のようなフィールドは日常的なクリエイターではなく統合する開発者向けなので、デフォルトの UI には含めないでください。
prompt- 表示するタイミング
- 常に。画像タスクの主要な創作入力です。
- 推奨デフォルト
- UI で必須にします。
- 重要な理由
- 結果を直接左右するため、隠すと機能が使えなくなります。
size- 表示するタイミング
- 出力サイズで課金が変わる場合は、初回リリースから表示します。
- 推奨デフォルト
- まずは 1:1 など推奨アスペクト比を 1 つ用意します。
- 重要な理由
- コストと出力の構図の両方に影響するため、早い段階で簡単なサイズ選択が必要です。
quality- 表示するタイミング
- より高品質または安価なグレードをユーザーが明確に求めてから表示します。
- 推奨デフォルト
- サーバー側でモデルのデフォルトのままにします。
- 重要な理由
- 料金とレイテンシーは変わりますが、通常は初日から用意すべき設定ではありません。
n- 表示するタイミング
- バッチ生成が中心的なワークフローである場合のみ表示します。
- 推奨デフォルト
- デフォルトは 1。
- 重要な理由
- コストがすぐに倍増し、初回の UX が煩雑になりがちです。
mask / image- 表示するタイミング
- 編集系または参照画像系のプロダクトでのみ表示します。
- 推奨デフォルト
- テキストから画像モードでは非表示にします。
- 重要な理由
- これらのフィールドはプロダクトを生成から編集に変えるため、基本フローに紛れ込ませるべきではありません。
Phase 1
- prompt
- one size or one duration default
- submit -> poll -> content
Phase 2
- one quality or resolution selector
- clear pricing hint
Phase 3
- advanced controls such as reference media, continuation, webhook, or vendor-specific tuning結果の信頼できる情報源は 1 つに
まだ解決しませんか?
リクエスト ID かエラーメッセージを送っていただければ、こちらで調査します。