参照画像を2枚にすると商品形状は保てる?GPT Imageで3シーンを検証

GPT Image 2.5 Flareで、商品全体の参照画像1枚と詳細の切り抜きを加えた場合を3シーンで比較。実際の出力6点、全プロンプト、実用的な採否基準を紹介します。

淡いカードに描かれた黒インクのデスクランプ、砂色の背景、スレート色のリング、「GPT Image References」の文字。

参照画像をもう1枚追加しても、商品が一貫してよりよく保たれるわけではありませんでした。GPT Image 2.5 Flareでは、画像1枚のリクエストでも2枚のリクエストでも指定したシーンが生成されました。ただし、参照画像を2枚使った石のシーンでは、ボトルの見かけの大きさとキャップの比率がより目立って変化しました。この小規模なテストでは、商品全体がはっきり写った参照画像1枚から始めるのが、より妥当でした。

この結論が当てはまる範囲は、あえて限定しています。テストしたのは、ラベルのない合成ボトル1点、シーンのプロンプト3種類、各条件につき1回の生成です。2枚目の参照画像は同じ画像の詳細な切り抜きであり、別のカメラアングルではありません。この結果から、別々に撮影された商品写真を複数使うことが一般に役立たないとは結論づけられません。

このワークフローは、少数の商品ビジュアルを制作するクリエイターや、参照画像を使った編集機能を実装する開発者向けです。生成結果6点、プロンプトの正確な構成、参照画像の準備方法、実用的な採否チェックリストを紹介します。

生成専用インターフェースに関する告知が表示された、Ofoxの英語版画像プレイグラウンド

10月12日に撮影した公開版の埋め込みプレイグラウンドには、このインターフェースでは画像編集を利用できないという告知が表示されていました。この記事の編集結果は、以下に示すAPIルートから得たものであり、このプレイグラウンドから生成したものではありません。この画面では、マスクや参照画像のアップロード用コントロールを探さないでください。

元画像と比較条件を準備する

元画像は、以前のGPT ImageテストでOfoxを通じて生成した、アイボリーのキャップが付いた琥珀色のボトルです。顧客から提供された写真ではなく、ブランド表示も読めるラベルもありません。入力ファイルのサイズは1024 × 1024ピクセルです。

すべてのシーンのリクエストで使った、合成ボトル全体の参照画像

条件Aでは、この画像だけを使います。条件Bでは、最初にこの画像を指定し、続けて元画像から座標 (320, 200, 720, 850) で切り出した画像を指定します。この切り抜きにはボトル本体とキャップの一部が含まれます。サイズは400 × 650ピクセルで、新たな視点の情報は含んでいません。

ここは重要な点です。切り抜きは既存の特徴に注意を向けられますが、商品で隠れている面を見せることはできません。これを「2つの視点」と呼ぶと、入力画像の情報を誇張することになります。製品の背面にあるロゴが課題なら、その面を実際に撮影した、使用許可のある写真を用意し、そのワークフローを別途評価してください。

2つ目の参照画像について説明する文も含め、両方の条件で同じプロンプトテンプレートを使いました。これにより、指定する画像だけを変え、文章によるリクエストは一定に保てます。

プロンプトテンプレート全文

Place this same amber bottle with the same ivory cap on {SCENE}.
Preserve bottle shape, cap shape, amber color and proportions.
Show one complete upright bottle, no text, no additional products.
The first reference is the whole product; any second reference is a
detail crop of that same image, not another product.

シーンごとの置き換え文字列は次のとおりです。

シーン正確な置き換え文字列
リネンan ivory linen tabletop with soft window light
石a pale stone bathroom shelf
紙a muted sage paper studio background

すべての呼び出しで、Ofoxの openai/gpt-image-2.5-flare を /v1/images/edits で使用し、size=1024x1024、n=1を指定しました。品質パラメーターとマスクは明示的に指定していません。これはFLUXのテストでも、画像モデルの系統間の比較でもありません。観察結果をまとめる前に、選択した利用可能なルートが実際に応答することを確認しました。

まず参照画像1枚で送り、次に比較条件を実行する

参照画像1枚のリクエストでは、multipart形式の画像フィールドを使います。認証情報は OFOX_API_KEY に保存し、スクリーンショットや共有スクリプトには含めないでください。

curl --silent --show-error --fail-with-body \
  --connect-timeout 15 --max-time 120 \
  'https://api.ofox.io/v1/images/edits' \
  -H "Authorization: Bearer $OFOX_API_KEY" \
  -F 'model=openai/gpt-image-2.5-flare' \
  -F 'image[]=@source.png;type=image/png' \
  -F 'size=1024x1024' -F 'n=1' \
  -F 'prompt=Place this same amber bottle with the same ivory cap on an ivory linen tabletop with soft window light. Preserve bottle shape, cap shape, amber color and proportions. Show one complete upright bottle, no text, no additional products. The first reference is the whole product; any second reference is a detail crop of that same image, not another product.' \
  -o linen-one.json

参照画像2枚の条件では、元画像のフィールドの後に detail-crop.png を含む image[] フィールドを追加し、別の出力ファイル名で保存します。プロンプト、モデル、その他のパラメーターは変えないでください。これらは料金が発生する生成リクエストです。6回のシーン生成を実行する前に、ダウンロード可能なキットを確認してください。

正常な応答では、base64形式のPNGデータが返されました。キットでは、返された元データと応答メタデータを別々に保存します。使用するルートが異なる形式で返す場合は、エラーオブジェクトを画像として保存せず、形式に応じた処理を明示的に行ってください。初回セットアップと応答データのデコード方法については、GPT Image APIガイドを参照してください。

リネン:どちらの条件でもボトルを見分けられる

商品全体の参照画像1枚から生成したリネンのシーン

商品全体の画像と詳細な切り抜きから生成したリネンのシーン

どちらの画像でも、暖かいサイド光が当たる淡い布地の上にボトルが置かれています。琥珀色の本体とアイボリーのキャップは見分けられる状態です。2枚目の出力では反射や本体下部の陰影が変わっており、元画像をピクセル単位でそのまま置き換えたものではありません。

雰囲気を伝える画像であれば、どちらも候補になり得ます。寸法や素材の色を実物の商品に一致させる必要があるカタログ画像では、見分けられることだけでは不十分です。承認済みの写真と比べ、購入者が受け取る商品を変えてしまうような変更は不採用にしてください。

石:このサンプルでは2枚目の参照画像で改善しなかった

参照画像1枚から生成した石の棚のシーン

見かけの大きさがはっきり異なる、参照画像2枚から生成した石の棚のシーン

参照画像1枚の結果では、元画像に近い大きさでボトルが画面に配置されています。参照画像2枚の結果では、棚を広く見せる構図の中で、ボトルがより小さく見えます。キャップと本体の比率も異なって見えます。シーン全体としては自然でも、これは比率を保つというプロンプトの要求に反しています。

入力画像の違いだけでなく、生成時の確率的なばらつきも関係します。各条件につき1回ずつ、固定シードも使わずに生成したため、違いのすべてを追加した切り抜きの影響だとは断定できません。ここで言えるのは、参照画像を増やしたという理由だけで、この条件の出力を採用してはいけないということです。

紙:背景がシンプルなほうが確認しやすい

参照画像1枚から生成したセージ色の紙の背景

参照画像2枚から生成したセージ色の紙の背景

どちらの出力でも、セージ色の背景にボトルが大きく、直立した状態で配置されています。陰影や細かな輪郭には違いが残っています。シンプルな背景は、情報量の多いライフスタイル写真風のシーンよりも、こうした違いを見つけやすくしますが、完全な保持を保証するわけではありません。

最初のワークフロー検証では、商品をはっきり確認できるシンプルなシーンから始めてください。その後で、小物や遠近感、複数の商品を加えます。そうしないと、シーンの仕上がりに目を奪われ、商品が参照画像から徐々にずれていることを見落としかねません。

画像ごとに意図を持って採否を決める

元画像と並べて、出力を元の解像度で確認してください。ここでの所見は、6点のサンプルを目視して判断したものであり、ブラインド評価や自動の同一性スコアによるものではありません。

確認項目確認する点判断基準
シルエット肩、幅、本体の底部、首部説明できない形状の変化があれば不採用
キャップ本体に対する幅、高さ、縁パッケージの形状が変わっていれば不採用
素材琥珀色のガラス、反射、透過性自然な照明の変化と素材の変化を区別する
構図商品全体、サイズ、切り抜き商品の一部が切れている、または不要な商品が重複していれば不採用
シーン指定した表面と照明見栄えがよくても、指定と異なるシーンなら不採用
ラベルまたはロゴこのテスト用データには含まれていない実運用の前に、実商品を使った文字のテストを別途追加する

根拠のない「一貫性100%」のスコアを、このチェックリストから導き出さないでください。採用基準は、商品画像に責任を持つ担当者と決めてください。ブランド入りのパッケージでは、全体の構図が優れていても、文字の正確さやロゴの配置が必須条件になることがあります。

結果が1つでも基準を満たさない場合は、まず問題がシーンにあるのか、入力した参照画像にあるのか、それとも商品のずれにあるのかを見極めてください。次の比較では変数を1つだけ変えます。役割を決めずに画像を追加すると、結果の原因を特定しにくくなることがあります。

実運用に向けた実用的な出発点

承認済みの商品画像を1枚、具体的なシーンのプロンプト、固定した出力要件を使います。最初に採用した結果を保存し、モデル、入力ファイル、プロンプトを正確に記録してください。ラベルのクローズアップや別の承認済みアングルなど、2枚目の参照画像がどんな情報を補うのか明確に説明できる場合にだけ追加し、その効果を評価してください。

元の商品を保つことが要件なら、新しいシーンを作るたびに前の生成結果を次の入力に使わないでください。それは複数ターンで編集する別の実験になります。今回の6回のリクエストでは、毎回同じ元画像から開始しているため、シーンから次のシーンへ連鎖的にずれが引き継がれることはありません。

商品そのもののピクセルを厳密に保持する必要がある場合は、未変更の商品を採用した背景に合成することを検討し、境界、遠近感、影を確認してください。部分的な変更やピクセル単位の確認については、マスクのチュートリアルを参照してください。自然に見える画像だからといって、厳密な保持が証明されるわけではありません。

よくある質問

参照画像は1枚より2枚のほうがよいですか?
この小規模なテストでは、一貫してそうとはいえません。2枚目は同じ画像の切り抜きで、新しい視点の情報は加えていません。画像の枚数ではなく、それぞれの参照画像が実際に何を補うのかを評価してください。
実在するブランド商品の画像でテストしましたか?
いいえ。使用したのは、ブランド表示のない合成ボトルです。ロゴ、パッケージ上の文字、実物商品の正確さを確かめるには、使用許可のある追加素材と、それぞれに合った採否基準が必要です。
この結果からFLUXやNano Bananaの挙動を予測できますか?
できません。ここで扱った6点は、指定されたOfoxのルートを通じて生成したGPT Image 2.5 Flareの出力です。ほかのモデルやルートは、それぞれ個別にテストする必要があります。