GPT-Image-2.6 公式チャネルの画像生成
curl --request POST \
--url https://api.toapis.com/v1/images/generations \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"prompt": "<string>",
"size": "<string>",
"resolution": "<string>",
"quality": "<string>",
"n": 123,
"output_format": "<string>",
"output_compression": 123,
"background": "<string>",
"moderation": "<string>",
"complexity": "<string>"
}
'import requests
url = "https://api.toapis.com/v1/images/generations"
payload = {
"model": "<string>",
"prompt": "<string>",
"size": "<string>",
"resolution": "<string>",
"quality": "<string>",
"n": 123,
"output_format": "<string>",
"output_compression": 123,
"background": "<string>",
"moderation": "<string>",
"complexity": "<string>"
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
prompt: '<string>',
size: '<string>',
resolution: '<string>',
quality: '<string>',
n: 123,
output_format: '<string>',
output_compression: 123,
background: '<string>',
moderation: '<string>',
complexity: '<string>'
})
};
fetch('https://api.toapis.com/v1/images/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.toapis.com/v1/images/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => '<string>',
'prompt' => '<string>',
'size' => '<string>',
'resolution' => '<string>',
'quality' => '<string>',
'n' => 123,
'output_format' => '<string>',
'output_compression' => 123,
'background' => '<string>',
'moderation' => '<string>',
'complexity' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.toapis.com/v1/images/generations"
payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"quality\": \"<string>\",\n \"n\": 123,\n \"output_format\": \"<string>\",\n \"output_compression\": 123,\n \"background\": \"<string>\",\n \"moderation\": \"<string>\",\n \"complexity\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.toapis.com/v1/images/generations")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"quality\": \"<string>\",\n \"n\": 123,\n \"output_format\": \"<string>\",\n \"output_compression\": 123,\n \"background\": \"<string>\",\n \"moderation\": \"<string>\",\n \"complexity\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.toapis.com/v1/images/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"quality\": \"<string>\",\n \"n\": 123,\n \"output_format\": \"<string>\",\n \"output_compression\": 123,\n \"background\": \"<string>\",\n \"moderation\": \"<string>\",\n \"complexity\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyGPT-Image-2.6
GPT-Image-2.6 公式チャネルの画像生成
Sunburst と Flare の公式チャネル非同期画像タスク, マークアップ編集, GIF・SVG 出力, R2 保存とトークン課金
POST
/
v1
/
images
/
generations
GPT-Image-2.6 公式チャネルの画像生成
curl --request POST \
--url https://api.toapis.com/v1/images/generations \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"prompt": "<string>",
"size": "<string>",
"resolution": "<string>",
"quality": "<string>",
"n": 123,
"output_format": "<string>",
"output_compression": 123,
"background": "<string>",
"moderation": "<string>",
"complexity": "<string>"
}
'import requests
url = "https://api.toapis.com/v1/images/generations"
payload = {
"model": "<string>",
"prompt": "<string>",
"size": "<string>",
"resolution": "<string>",
"quality": "<string>",
"n": 123,
"output_format": "<string>",
"output_compression": 123,
"background": "<string>",
"moderation": "<string>",
"complexity": "<string>"
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
prompt: '<string>',
size: '<string>',
resolution: '<string>',
quality: '<string>',
n: 123,
output_format: '<string>',
output_compression: 123,
background: '<string>',
moderation: '<string>',
complexity: '<string>'
})
};
fetch('https://api.toapis.com/v1/images/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.toapis.com/v1/images/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => '<string>',
'prompt' => '<string>',
'size' => '<string>',
'resolution' => '<string>',
'quality' => '<string>',
'n' => 123,
'output_format' => '<string>',
'output_compression' => 123,
'background' => '<string>',
'moderation' => '<string>',
'complexity' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.toapis.com/v1/images/generations"
payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"quality\": \"<string>\",\n \"n\": 123,\n \"output_format\": \"<string>\",\n \"output_compression\": 123,\n \"background\": \"<string>\",\n \"moderation\": \"<string>\",\n \"complexity\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.toapis.com/v1/images/generations")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"quality\": \"<string>\",\n \"n\": 123,\n \"output_format\": \"<string>\",\n \"output_compression\": 123,\n \"background\": \"<string>\",\n \"moderation\": \"<string>\",\n \"complexity\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.toapis.com/v1/images/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"quality\": \"<string>\",\n \"n\": 123,\n \"output_format\": \"<string>\",\n \"output_compression\": 123,\n \"background\": \"<string>\",\n \"moderation\": \"<string>\",\n \"complexity\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body公式チャネル経由で 2 つの GPT-Image-2.6 モデルを利用できます. 送信すると非同期タスク ID がすぐに返ります. バックグラウンドで画像を生成し, R2 に保存してから提供します.
呼び出しには表の完全なモデル名を使ってください.
送信レスポンスの
送信レスポンスは
GIF はアニメーション全体の出力トークンで課金されます. SVG 出力は画像トークンに加えて,
| モデル | model |
|---|---|
| Sunburst Official | gpt-image-2.6-sunburst-official |
| Flare Official | gpt-image-2.6-flare-official |
gpt-image-2.6-official はシリーズ名であり, リクエストの model には使えません.
中国大陸のユーザーは例の https://api.toapis.com を https://api.toapis.cn に置き換えてください. コンソール で API Key を作成し, 環境変数 TOAPIS_API_KEY を設定します.
送信とポーリング
Flare で画像を送信します. Sunburst を呼ぶ場合は model を置き換えるだけです:curl --fail-with-body --request POST \
--url https://api.toapis.com/v1/images/generations \
--header "Authorization: Bearer $TOAPIS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-image-2.6-flare-official",
"prompt": "A small blue circle on a plain white background",
"size": "1:1",
"resolution": "1k",
"quality": "medium",
"n": 1
}'
{
"id": "tsk_img_example",
"object": "generation.task",
"model": "gpt-image-2.6-flare-official",
"status": "pending",
"progress": 0,
"created_at": 1789099098,
"metadata": {}
}
id を保存し, 下の TASK_ID をその値に置き換えます:
curl --fail-with-body \
--url https://api.toapis.com/v1/images/generations/TASK_ID \
--header "Authorization: Bearer $TOAPIS_API_KEY"
pending です. ポーリングでは queued や in_progress が表示され, 最終的に completed または failed になります. completed のとき result.data[].url から R2 に保存された結果 URL を取得し, failed のときは error を読みます. 同じタスク ID を数秒ごとにポーリングしてください. 高品質な生成には数分かかることがあるため, 待機中に再送信しないでください. 全フィールドは 画像タスクステータス API を参照してください.
リクエストパラメータ
string
必須
Bearer YOUR_API_KEY 形式の ToAPIs API Key を使用します.string
必須
gpt-image-2.6-sunburst-official / gpt-image-2.6-flare-official.string
必須
画像の説明. 参照画像やマークアップ画像を使う場合は, 保持する部分と変更する部分を記述してください.
string
デフォルト:"auto"
アスペクト比名 (
1:1, 3:2, 2:3, 16:9, 9:16 など) またはピクセルサイズ (1024x1024, 1536x1024 など). GIF 出力時の size の意味は GIF の節を参照してください. ピクセルサイズは両辺が 16 の倍数かつ 16 以上, 各辺は 3840 以下, 長辺は短辺の 3 倍以内である必要があります. 2560x1440 を超えるサイズは実験的です.string
解像度ティア
1k / 2k / 4k. 明示した場合は size から推測されるティアより優先されます. ティアは実際のトークン使用量と所要時間に影響します.string
デフォルト:"medium"
auto, low, medium, high, xhigh, max の 6 段階. auto はリクエストごとにモデルが品質を自動選択します. 品質は実際のトークン使用量と所要時間に影響します.integer
デフォルト:1
1 回のリクエストで 1〜4 枚生成します.
output_format が svg の場合は 1 のみ指定できます.string
出力形式
png / jpeg / webp / gif / svg. 省略時はアップストリームのデフォルトを使います. gif と svg の追加パラメータと制約は下の各セクションを参照してください.integer
0-100 の圧縮率.
jpeg と webp 出力にのみ有効です.string
transparent / opaque / auto. 明示的な透明は png / webp 出力にのみ適用されます. svg はデフォルトで透明です.string
コンテンツモデレーションレベル
auto / low.string
生成の複雑さ
low / medium / high. 省略時は high になります. 別途課金はありません.参照画像とマスク
画像から画像を生成する場合は同じ JSON リクエストにimage_urls を追加します. 最大 16 枚で, URL はサーバーからアクセス可能である必要があります. 先に 画像アップロード API で URL を取得できます. 参照画像は画像入力トークンとして課金されます.
mask_url は PNG アルファマスク画像を指し, サイズは最初の参照画像と一致している必要があり, image_urls と併用します.
curl --fail-with-body --request POST \
--url https://api.toapis.com/v1/images/generations \
--header "Authorization: Bearer $TOAPIS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-image-2.6-sunburst-official",
"prompt": "Keep the subject and replace the masked area with a snowy forest",
"image_urls": ["https://example.com/reference.png"],
"mask_url": "https://example.com/mask.png",
"quality": "high",
"size": "1024x1024",
"n": 1
}'
マークアップ編集
markup_url は注釈付きの参照画像を指します (または markup でインラインの注釈オブジェクトを渡します). image_urls で元画像を指定し, モデルが注釈の意味に沿って編集します. markup_url と mask_url は排他的で, 1 回のリクエストではどちらか一方しか使えません.
curl --fail-with-body --request POST \
--url https://api.toapis.com/v1/images/generations \
--header "Authorization: Bearer $TOAPIS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-image-2.6-sunburst-official",
"prompt": "Follow the markup annotations to adjust the layout",
"image_urls": ["https://example.com/reference.png"],
"markup_url": "https://example.com/markup.png",
"quality": "high",
"n": 1
}'
GIF 出力
output_format に gif を指定するとアニメーションを生成します. frame_count でフレーム数 (2-16), frame_duration_ms でフレームごとの長さを指定します. GIF はテキストからの生成のみで, image_urls, mask_url, markup_url, markup, output_compression と併用できません. size は正確なピクセル値 (例: 512x512) を指定するか省略してアップストリームのデフォルトフレーム寸法を使ってください. 1:1 などのアスペクト比は GIF では拒否されます.
curl --fail-with-body --request POST \
--url https://api.toapis.com/v1/images/generations \
--header "Authorization: Bearer $TOAPIS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-image-2.6-flare-official",
"prompt": "A paper airplane looping across a blue sky, flat illustration",
"output_format": "gif",
"frame_count": 8,
"frame_duration_ms": 200,
"size": "512x512",
"n": 1
}'
SVG 出力
output_format に svg を指定するとベクター画像を生成します. svg オブジェクトとその中の svg.model も必要です. SVG はテキストからの生成のみで, n は 1 のみ指定でき, image_urls, mask_url, markup_url, markup, output_compression と併用できません. SVG 生成では svg.model で指定したテキストモデルの呼び出しが追加で発生し, そのテキストモデルの料金で課金されます.
curl --fail-with-body --request POST \
--url https://api.toapis.com/v1/images/generations \
--header "Authorization: Bearer $TOAPIS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-image-2.6-flare-official",
"prompt": "A minimalist mountain logo, flat vector style",
"output_format": "svg",
"svg": { "model": "gpt-5" },
"n": 1
}'
トークン料金
2 つの official モデルはトークン項目別に課金されます. テキスト入力, キャッシュされたテキスト入力, 画像入力, キャッシュされた画像入力, 画像出力がそれぞれ別料金です. 送信時にクォータが事前に引き落とされ, 成功後は実際のトークン使用量に応じて返金または追加課金されます. USD 単位の費用計算式:USD = (
uncached_text_input_tokens * text_input_price
+ cached_text_input_tokens * cached_text_input_price
+ uncached_image_input_tokens * image_input_price
+ cached_image_input_tokens * cached_image_input_price
+ image_output_tokens * image_output_price
) / 1,000,000
svg.model で指定したテキストモデルの入出力トークン料金が発生します.
アカウント固有の価格や割引は引き続き適用されます. 最終的な請求額は利用ログで確認でき, 最新の価格は 料金ページ とアカウント設定に従います.
関連モデル
GPT-Image-2.5 公式チャネル, 通常版, VIP 版 にはそれぞれ独自の完全なモデル名があります. この公式チャネルを呼び出すときは-official サフィックスを使ってください.