GPT Imageによる画像編集
curl --request POST \
--url https://api.mixroute.ai/v1/images/editsimport requests
url = "https://api.mixroute.ai/v1/images/edits"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.mixroute.ai/v1/images/edits', 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.mixroute.ai/v1/images/edits",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mixroute.ai/v1/images/edits"
req, _ := http.NewRequest("POST", url, nil)
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.mixroute.ai/v1/images/edits")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixroute.ai/v1/images/edits")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_body画像シリーズ
GPT Imageによる画像編集
GPT Imageの画像編集フィールド、モデルの制約、およびリクエスト例。
GPT Imageによる画像編集
curl --request POST \
--url https://api.mixroute.ai/v1/images/editsimport requests
url = "https://api.mixroute.ai/v1/images/edits"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.mixroute.ai/v1/images/edits', 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.mixroute.ai/v1/images/edits",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mixroute.ai/v1/images/edits"
req, _ := http.NewRequest("POST", url, nil)
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.mixroute.ai/v1/images/edits")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixroute.ai/v1/images/edits")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyOpenAIのImages編集リクエスト形式を使用し、GPT Imageで1枚以上の画像を編集します。
GPT Image 2で総ピクセル数が3686400を超える解像度は実験的です。これらのGPTモデルはBase64形式の画像データを返します。DALL-E専用の
マスクを使用して編集するには、
POST https://api.mixroute.ai/v1/images/edits
モデル
| モデルID | 機能と制限 |
|---|---|
gpt-image-2.5-flare | 画像生成と編集向けの高速なGPT Image 2.5モデル。 |
gpt-image-2.5-sunburst | 精密な生成、高度な編集、細部まで作り込んだビジュアル素材向けのGPT Image 2.5モデル。 |
gpt-image-2 | 生成と編集。柔軟なサイズ指定に対応。入力の忠実度は高に固定。 |
gpt-image-1.5 | 生成と編集。標準の画像サイズ。 |
gpt-image-1 | 生成と編集。標準の画像サイズ。 |
リクエストパラメーター
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
model | string | はい | 上の表にある完全なモデルID。ルーティングのために明示的に設定してください。 |
prompt | string | はい | 希望する出力または編集内容の説明。最大32000文字。 |
image | file | file[] | はい | 入力はPNG、JPEG、WebPで、1枚あたり50 MB未満、最大16枚です。ファイルはマルチパートフォームデータとしてアップロードしてください。複数のファイルではimage[]を繰り返し指定します。 |
mask | file | いいえ | 最初の元画像と同じピクセル寸法を持つ、4 MB未満のPNGマスク。完全に透明なピクセルが編集領域を示します。複数画像のリクエストでは、マスクは最初の画像に適用されます。 |
input_fidelity | string | いいえ | GPT Image 1/1.5ではhighまたはlowです。GPT Image 2は高忠実度に固定されています。GPT Image 2.5の例では、この任意フィールドを省略してください。 |
n | integer | いいえ | 出力画像数。1〜10。デフォルトは1です。 |
size | string | いいえ | 出力サイズ、またはauto(デフォルト)。以下のモデル別のサイズルールを参照してください。 |
quality | string | いいえ | auto(デフォルト)、low、medium、またはhigh。GPT Image 2.5 Flare/Sunburstは、さらにxhighとmaxにも対応します。 |
background | string | いいえ | auto(デフォルト)、opaque、またはtransparent。透過にはPNGまたはWebPが必要です。GPT Image 2でのサポートはプレビュー段階です。 |
output_format | string | いいえ | 画像のエンコード形式: png(デフォルト)、jpeg、webpのいずれか。 |
output_compression | integer | いいえ | 圧縮設定は0~100で、デフォルトは100です。JPEGまたはWebPの出力にのみ適用されます。 |
stream | boolean | いいえ | trueの場合はサーバー送信イベントを返します。デフォルトはfalseです。 |
partial_images | integer | いいえ | ストリーミング専用の部分画像数です。0〜3を指定します。0の場合、中間画像なしで最終画像が送信されます。生成が早く完了すると、届く部分画像の数が指定数より少なくなる場合があります。 |
user | string | いいえ | エンドユーザーの安定した識別子で、不正利用の監視に使用します。生の個人情報は避けてください。 |
サイズのルール
| モデル | 指定可能なサイズ |
|---|---|
| GPT Image 1 / 1.5 | auto, 1024x1024, 1536x1024, 1024x1536 |
| GPT Image 2 / 2.5 | autoまたはWIDTHxHEIGHT。縦横の両辺は16で割り切れる必要があり、各辺は最大3840 px、長辺と短辺の比率は最大3:1、総ピクセル数は655360~8294400です。 |
response_formatやstyleを送信しないでください。
JSONの画像URLオブジェクトではなく、multipart/form-dataを使用してください。multipartのboundaryはcURLまたはSDKに設定させてください。
input_fidelity=auto/mediumと、トップレベルのimagesのJSON配列は、このOpenAIリクエストのフィールドではありません。例
環境変数MIXROUTE_API_KEYにMixRouteのキーを設定してください。リクエストはAuthorization: Bearer ...を使用します。編集前に、元画像のプレースホルダーをアクセス可能な画像またはローカルファイルに置き換えてください。
curl --request POST "https://api.mixroute.ai/v1/images/edits" \
--header "Authorization: Bearer $MIXROUTE_API_KEY" \
--form "model=gpt-image-2.5-flare" \
--form "image[]=@source.png" \
--form "prompt=Make the mug blue while preserving its shape, lighting, and background." \
--form "size=1024x1024" \
--form "quality=low" \
--form "output_format=png"
Python
import os
import base64
from pathlib import Path
from openai import OpenAI
client = OpenAI(api_key=os.environ["MIXROUTE_API_KEY"], base_url="https://api.mixroute.ai/v1")
with open("source.png", "rb") as source:
result = client.images.edit(
model="gpt-image-2.5-flare",
image=source,
prompt="Make the mug blue while preserving its shape, lighting, and background.",
size="1024x1024",
quality="low",
output_format="png",
)
Path("edited.png").write_bytes(base64.b64decode(result.data[0].b64_json))
maskファイルを追加してください。複数の参照画像を使用する場合は画像ファイルを追加しますが、マスクが適用されるのは最初の画像だけです。
レスポンス
各画像をdata[].b64_jsonから取得し、リクエストしたoutput_formatでデコードします。ストリーミングでは、部分画像と完了画像のイベントが返されます。最終ファイルには、最後の完了イベントを使用してください。
GPT Imageによる画像生成