本文へ移動
GetAPI
日本語
メニュー

GetAPI.ONE

GetAPI.ONE で画像を生成

最新カタログから画像モデルを選び、ONE の画像ルートに仕様で示された最小限のリクエストを送り、応答形式を検証して安全に保存します。

対応するリクエストを準備

  • 現在のカタログを開き、画像生成エンドポイントを明示したモデルを選びます。
  • 課金される呼び出しの前に最新料金を確認します。このガイドは料金を固定しません。
  • 出力 1 つと、そのモデルの仕様に記載されたフィールドだけで始めます。
text
POST https://www.getapi.one/v1/images/generations

最小限の生成を送信

  1. 信頼できるプロセス環境に GETAPI_ONE_API_KEY を設定します。
  2. 現在のカタログから正確な画像モデル ID をコピーします。
  3. プロンプトに被写体、構図、制約を記述します。
  4. まず結果を 1 つ要求し、モデルの対応を確認してから任意フィールドを増やします。
  5. サイズ制限を設けた base64 出力をローカルでデコードします。応答に URL がある場合は、API プロセスで直接取得せず、明示的な外向き通信・ホスト規則とリダイレクト再検証を備えた承認済みダウンローダー用に記録します。
shell
curl --fail-with-body https://www.getapi.one/v1/images/generations \
  -H "Authorization: Bearer $GETAPI_ONE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<IMAGE_MODEL_ID_FROM_CURRENT_CATALOG>",
    "prompt": "A clean product diagram of a secure server-side API flow",
    "n": 1
  }' > image-response.json
data[0] を確認して返されたバイト列を保存
import base64
import json
from pathlib import Path
from urllib.parse import urlsplit

payload = json.loads(Path("image-response.json").read_text(encoding="utf-8"))
item = payload["data"][0]

if item.get("b64_json"):
    image_bytes = base64.b64decode(item["b64_json"], validate=True)
    if len(image_bytes) > 25 * 1024 * 1024:
        raise ValueError("Image exceeds the local 25 MB safety limit")
    Path("generated-image.bin").write_bytes(image_bytes)
elif item.get("url"):
    url = item["url"]
    parsed = urlsplit(url)
    if parsed.scheme != "https" or not parsed.hostname:
        raise ValueError("Refusing an invalid or non-HTTPS image URL")
    # Do not dereference provider-controlled URLs from a generic server example.
    # Give this record to an approved downloader that enforces your egress and
    # host policy, rejects private/link-local/loopback destinations, revalidates
    # every redirect, sends no ONE credential, and bounds the response bytes.
    Path("generated-image-url.txt").write_text(url, encoding="utf-8")
    print("URL recorded for an egress-controlled downloader")
else:
    raise ValueError("Expected data[0].url or data[0].b64_json")

結果を評価

確認合格条件
プロンプトへの忠実性必要な被写体と構図が含まれています。
安全性と権利出力が対象者に適しており、提供した入力を使う権利があります。
応答の仕様data[0].url または data[0].b64_json を確認して検証し、返されたバイト列を保存します。
操作の記録モデル ID、プロンプトのバージョン、利用可能ならリクエスト ID、結果をキー抜きで記録しています。

期待した結果を確認

  • HTTP リクエストが成功し、本文に選択したモデルの画像結果形式が含まれること。
  • デコードした base64 ファイルが想定の画像形式で開けること、または URL の結果を記録し、承認済みの外向き通信制御付きダウンローダーだけで取得すること。
  • ONE コンソールにリクエストまたは対応する使用量が記録されること。

画像リクエストのエラーを解決

症状対処
未対応のパラメーター正確にそのモデルで確認できるまで、任意のサイズ、品質、形式、個数のフィールドを削除します。
出力が空または使用不能JSON 本文全体を確認し、実際の URL またはエンコード済みデータのフィールドを処理します。特定のプロバイダーの形式を一律に想定しないでください。
ポリシーまたは入力の拒否同じリクエストを繰り返し再送せず、入力を修正します。

入力と出力を安全に保存

  • キーはサーバー側に保持し、転送前にプロンプトの長さ、出力数、任意フィールドを検証します。
  • 承認済みのデータ取り扱い方針で許可されていない限り、機密の元画像や個人データを送信しないでください。
  • プロバイダー仕様で明記されていない限り、返された URL は一時的なものとして扱い、承認済みの出力を管理下のストレージにコピーします。
  • 返された画像 URL に GetAPI.ONE の Authorization ヘッダーを転送してはいけません。
  • 返された URL を信頼できない入力として扱います。専用ダウンローダーで明示的な外向き通信とホストのポリシーを適用し、プライベート、リンクローカル、ループバック宛てを遮断して、すべてのリダイレクトを再検証してください。

次の手順