GetAPI.ONE
GetAPI.ONE で画像を生成
最新カタログから画像モデルを選び、ONE の画像ルートに仕様で示された最小限のリクエストを送り、応答形式を検証して安全に保存します。
対応するリクエストを準備
- 現在のカタログを開き、画像生成エンドポイントを明示したモデルを選びます。
- 課金される呼び出しの前に最新料金を確認します。このガイドは料金を固定しません。
- 出力 1 つと、そのモデルの仕様に記載されたフィールドだけで始めます。
POST https://www.getapi.one/v1/images/generations最小限の生成を送信
- 信頼できるプロセス環境に GETAPI_ONE_API_KEY を設定します。
- 現在のカタログから正確な画像モデル ID をコピーします。
- プロンプトに被写体、構図、制約を記述します。
- まず結果を 1 つ要求し、モデルの対応を確認してから任意フィールドを増やします。
- サイズ制限を設けた base64 出力をローカルでデコードします。応答に URL がある場合は、API プロセスで直接取得せず、明示的な外向き通信・ホスト規則とリダイレクト再検証を備えた承認済みダウンローダー用に記録します。
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.jsonimport 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 を信頼できない入力として扱います。専用ダウンローダーで明示的な外向き通信とホストのポリシーを適用し、プライベート、リンクローカル、ループバック宛てを遮断して、すべてのリダイレクトを再検証してください。