GPT-Image-2 利用ガイド
GPT-Image-2 は YYCode が提供する AI 画像生成サービスです。独立した画像インターフェース gpt.yycode.net を使って、テキストから画像、画像から画像、非同期タスク照会を行います。
準備
1. API Key を作成
YYCode トークン管理ページ にアクセスし、API Key を作成またはコピーします。
作成後は大切に保存してください。以降のすべてのリクエストでは Header にこの Key を含める必要があります。
2. インターフェースアドレス
GPT-Image-2 は独立した Base URL を使用します。
https://gpt.yycode.net
すべての画像リクエストには、YYCode 中継ステーションアドレスも同時に含めます。
x-demo-base-url: https://yycode.net
AI Agent ワンクリック接続
Claude Code、Codex など Skills 対応の AI コーディングツールを使う場合は、次の内容をそのまま AI に送ります。
このプロジェクトに YYCode GPT-Image-2 画像生成サービスを接続してください。
Base URL:
https://gpt.yycode.net
テキストから画像:
POST /api/images/generate
画像から画像:
POST /api/images/edit
タスク照会:
GET /api/jobs/{jobId}
リクエスト Header:
x-demo-base-url: https://yycode.net
x-demo-api-key: YOUR_API_KEY
x-demo-async: 1
テキストから画像は JSON リクエストボディを使います。画像から画像は multipart/form-data を使い、image フィールドで元画像をアップロードします。
タスク送信後に jobId が返ったら、6 秒ごとに /api/jobs/{jobId} を照会します。
status=succeeded が返ったら images[].b64 と images[].mimeType を読み取り、base64 を画像ファイルとして保存します。
AI Agent は上記のインターフェース、Header、ポーリング方式、画像保存方式に従ってクライアントコード接続を完了します。
API 詳細説明
テキストから画像(Text to Image)
生成タスクを送信します。
curl 'https://gpt.yycode.net/api/images/generate' \
-H 'Content-Type: application/json' \
-H 'x-demo-base-url: https://yycode.net' \
-H 'x-demo-api-key: YOUR_API_KEY' \
-H 'x-demo-async: 1' \
-d '{
"model": "gpt-image-2",
"prompt": "一只可爱的猫咪在阳光下打盹",
"n": 1,
"size": "1024x1024"
}'
成功レスポンス:
{
"ok": true,
"pending": true,
"jobId": "job_1782732290788_3",
"meta": {
"requestId": "req_1782732290788_1"
}
}
タスク結果を照会
job_1782732290788_3 を、タスク送信時に返された jobId に置き換えます。
curl 'https://gpt.yycode.net/api/jobs/job_1782732290788_3'
タスク処理中:
{
"ok": true,
"pending": true,
"jobId": "job_1782732290788_3",
"status": "running",
"meta": {
"requestId": "req_1782732290788_1"
}
}
タスク完了:
{
"ok": true,
"images": [
{
"b64": "iVBORw0KGgo...",
"filename": null,
"mimeType": "image/png"
}
],
"usage": null,
"raw": {},
"meta": {
"requestId": "req_1782732290788_1"
},
"jobId": "job_1782732290788_3",
"status": "succeeded"
}
最終画像データは images[0].b64、画像形式は images[0].mimeType です。フロントエンド表示では data:${mimeType};base64,${b64} を使い、ダウンロード時は base64 を画像ファイルへデコードします。
画像から画像(Image to Image)
画像から画像では multipart/form-data で元画像をアップロードし、image フィールドで画像ファイルを送信します。
元画像を 1 枚アップロード:
curl 'https://gpt.yycode.net/api/images/edit' \
-H 'x-demo-base-url: https://yycode.net' \
-H 'x-demo-api-key: YOUR_API_KEY' \
-H 'x-demo-async: 1' \
-F 'model=gpt-image-2' \
-F 'prompt=把这张图改成水彩风格' \
-F 'n=1' \
-F 'size=1024x1024' \
-F '[email protected]'
複数の元画像をアップロード:
curl 'https://gpt.yycode.net/api/images/edit' \
-H 'x-demo-base-url: https://yycode.net' \
-H 'x-demo-api-key: YOUR_API_KEY' \
-H 'x-demo-async: 1' \
-F 'model=gpt-image-2' \
-F 'prompt=参考这些图片生成统一的赛博朋克风格海报' \
-F 'n=1' \
-F 'size=1536x1024' \
-F '[email protected]' \
-F '[email protected]'
画像から画像の注意事項:
imageは画像ファイルフィールドです。複数画像をアップロードする場合はimageを繰り返し渡しますmaskは画像マスクフィールドで、部分編集に使用します- リクエストヘッダーで
Content-Typeを手動設定しないでください。curlまたは SDK が multipart boundary を自動生成します - 画像から画像タスクも同様に
jobIdを返し、GET /api/jobs/{jobId}で結果を照会します
パラメータ説明
| パラメータ | 説明 |
|---|---|
model |
固定で gpt-image-2 を入力 |
prompt |
画像生成または画像編集プロンプト |
n |
生成画像数。範囲は 1 から 10 |
size |
出力画像サイズ。形式は <width>x<height> |
output_format |
出力形式。png、jpeg、webp に対応 |
quality |
画像品質。auto、low、medium、high、standard、hd に対応 |
background |
背景モード。auto、opaque に対応 |
image |
画像から画像の元画像ファイルフィールド。繰り返し指定可能 |
mask |
画像から画像のマスクファイルフィールド。部分編集に使用 |
size 対応
size は実ピクセルサイズを使用します。幅と高さはいずれも 16 の倍数で、最長辺は 3840 以下、総ピクセル数は 3840x2160 以下です。
| サイズ | 説明 |
|---|---|
1024x1024 |
正方形画像 |
1536x1024 |
横向き画像 |
1024x1536 |
縦向き画像 |
1920x1080 |
横長 HD 画像 |
1080x1920 |
縦長 HD 画像 |
3840x2160 |
4K 横長画像 |
2160x3840 |
4K 縦長画像 |
Python 例
import base64
import time
import requests
# 自分の YYCode API Key に置き換える
base_url = "https://gpt.yycode.net"
api_key = "YOUR_API_KEY"
headers = {
"Content-Type": "application/json",
"x-demo-base-url": "https://yycode.net",
"x-demo-api-key": api_key,
"x-demo-async": "1",
}
# ステップ 1:テキストから画像タスクを送信
submit = requests.post(
f"{base_url}/api/images/generate",
headers=headers,
json={
"model": "gpt-image-2",
"prompt": "一只可爱的猫咪在阳光下打盹",
"n": 1,
"size": "1024x1024",
},
timeout=30,
)
submit.raise_for_status()
job_id = submit.json()["jobId"]
print(f"任务已提交: {job_id}")
# ステップ 2:6 秒ごとにタスク状態をポーリング
while True:
result = requests.get(
f"{base_url}/api/jobs/{job_id}",
timeout=30,
)
result.raise_for_status()
data = result.json()
if data.get("pending"):
print("任务处理中...")
time.sleep(6)
continue
if data.get("status") == "succeeded":
# ステップ 3:base64 画像をローカルファイルとして保存
image = data["images"][0]
mime_type = image.get("mimeType") or "image/png"
suffix = mime_type.split("/")[-1].replace("jpeg", "jpg")
filename = f"{job_id}.{suffix}"
with open(filename, "wb") as file:
file.write(base64.b64decode(image["b64"]))
print(f"图片生成完成: {filename}")
break
raise RuntimeError(data.get("error", {}).get("message", "任务失败"))
課金説明
- 画像生成は
x-demo-api-keyが属する YYCode アカウント残高を消費します - タスク送信時に
jobIdが返ると、バックグラウンドタスクが作成されたことを意味します - タスク状態が
succeededでimagesが返れば、今回の画像生成は完了です - タスク状態が
failedの場合、レスポンスにエラー情報が返ります - アカウント利用記録は YYCode バックエンドに表示されます
画像レスポンス説明
YYCode 画像インターフェースは標準化された images 配列を返します。各画像には b64 と mimeType フィールドが含まれます。接続側は b64 をデコードしてファイル保存するか、data:${mimeType};base64,${b64} を組み立ててフロントエンドで表示します。