使用ガイド
EC 商品画像向け flux-2/image-to-image:hiapi API ガイド
複数参照画像による編集、実測で検証済みのアスペクト比の挙動、そして商品カタログをそのまま一括処理できる Python スクリプト
手元にそこそこ良い商品写真があるなら——たとえ背景が不適切だったり、トリミングが雑だったりする写真でも——flux-2/image-to-image は撮り直しなしで、そのまま出品できる EC 画像に変換できます。これは編集モデルであり、テキストから画像を生成するモデルではありません。1〜8 枚の参照画像と指示を入力すると、新しい画像を返します。周囲のあらゆる要素——背景、光、構図、さらには商品が置かれるシーンまで——を入れ替えつつ、商品の形状、色、質感、比率を正確に保持します。
私たちは hiapi の /v1/tasks API エンドポイントを通じて、EC でよくある 2 つのタスク——スタジオ背景の置き換えとライフスタイルシーンの合成——をエンドツーエンドで実行し、この記事を書く前に hiapi の料金ページと照らし合わせて入力スキーマ、アスペクト比の挙動、実際の 1 枚あたりの価格を検証しました。
- flux-2/image-to-image は 1 回の呼び出しで最大 8 枚の参照画像を受け付けるため、背景の置き換え(1 枚)とシーン合成(2 枚以上)はまったく同じエンドポイントを使用します。
aspect_ratio: "auto"は実際に入力画像自身のアスペクト比に従います——縦向き 9:16 のスニーカー写真は、上書きしない限り 9:16 のままです。"1:1"のような明示的な値を指定すると、入力が何であってもその形状が強制されます。- 料金は解像度別の段階制です:1K は $0.035/枚、2K は $0.05/枚——定額で、メガピクセル単位の課金はありません。
- これは本物の編集であり、描き直しではありません:商品自体のロゴ、縫い目、質感は背景やシーンが変わっても保持されます。
- バッチスクリプト(後述)が 1 つあれば、同じ背景クリーンアップ用プロンプトで商品カタログ全体を処理できます。
flux-2/image-to-image が実際にすること
内部的には、hiapi の統一タスクインターフェース上の単一モデルです——「背景除去」ツールと「合成」ツールを使い分けるのではなく、指示を書き、そのタスクに適切な参照画像を渡します:
curl -s https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-2/image-to-image",
"input": {
"prompt": "Remove the background and place the product on a seamless white studio background with a soft contact shadow. Keep the product'"'"'s shape, color and proportions unchanged.",
"image_urls": ["https://your-cdn.example.com/raw-product-photo.jpg"],
"aspect_ratio": "auto",
"resolution": "1K"
}
}'
必須フィールドは prompt(文字列)、image_urls(配列、最大 8 枚)、aspect_ratio(auto、1:1、4:3、3:4、16:9、9:16、3:2、または 2:3)、および resolution(1K または 2K)です。レスポンスは taskId を返します——GET /v1/tasks/{taskId} をポーリングして status が success になるまで待ち、すぐに output[0].url から画像をダウンロードしてください(このリンクは期限切れになるため、永久ストレージとして扱わないでください)。
背景の置き換えには参照画像が 1 枚あれば十分です。商品をライフスタイルシーンに合成するには、2 枚渡します:商品画像を先に、目的のシーンを後に置き、プロンプトでどのオブジェクトをどこに配置するかを記述します。
「auto」アスペクト比が実際にすること
これはパイプラインを組む前にテストしておく価値のある部分です。モデルが常に固定の正方形や何か固定のデフォルト形状で出力すると決めつけがちですが、そうではありません。

これは縦向きのスニーカー写真を aspect_ratio: "auto" で実行したものです——出力は 720×1280 で、入力参照画像の正確な 9:16 に一致し、他の形状へのトリミングや余白追加は行われていません。auto は「入力に従う」という意味であり、「デフォルト値を選ぶ」という意味ではありません。

同じソース画像、同じプロンプト——唯一の違いは aspect_ratio: "1:1" を明示的に設定したことです。出力は正確に 1024×1024 の正方形で、単純なトリミングではなくモデルが適合するように再構図しています。商品カタログのリストページに一貫した正方形グリッドが必要なら、その比率を強制してください。各画像に元の構図を保たせたいなら auto のままにしてください。
2 つのシーン合成の例
背景の置き換えは単純なケースです。EC コンテンツでより有用なテクニックは、クリーンな商品画像をライフスタイルシーンに合成することです——実際の撮影なしで、メイン画像、ソーシャル投稿、あるいは「コーディネート紹介」のサブ画像に使えます。

ここでは 2 枚の参照画像を入力しています:ヘッドホンの純粋な商品写真と、別個の日差しの差すオーク材テーブルのシーンです。プロンプトでどのオブジェクトをどこに配置するか(「植物のそばに自然に寄りかからせて」)を指定し、シーン既存の光の方向に合わせて説得力のある影を落とすようモデルに要求しました——まさにこのディテールが、合成画像を貼り付けただけではなく本物らしく見せています。

同じ目的シーン、違う商品で、同じく aspect_ratio: "auto" を使用しています(シーン参照画像の正方形構図を継承しています)。ドリッパーの形状とセラミックの質感は自身の参照写真からそのまま保持され——変わったのは周囲の環境だけです。
商品カタログの一括処理
1 枚あたり $0.035(1K 解像度)——商品 1 つのために撮り直して再セットするより安い——なら、flux-2/image-to-image で商品カタログ全体を処理するのは容易に正当化できます。まず低コストでプロンプトをテストしたいだけなら、フルモデルを大規模に使う前に、より軽量な flux-2-klein-4b/image-to-image のティアが検討に値します。どちらの現在の価格も hiapi の料金ページに掲載されています。
ある商品でプロンプトを調整し終えれば、カタログ全体でそれを実行するのは同じリクエストのループにすぎません。この例は元の商品写真群を反復処理し、各画像に同じ背景クリーンアップ指示を実行して、結果のホスティング URL を出力します:
import os
import time
import requests
API_BASE = "https://api.hiapi.ai/v1/tasks"
TOKEN = os.environ["HIAPI_API_KEY"]
HEADERS = {
"Authorization": f"Bearer {TOKEN}",
"Content-Type": "application/json",
}
BACKGROUND_PROMPT = (
"Remove the existing background and place the product on a seamless pure white "
"studio background with a soft, realistic contact shadow and even diffused catalog "
"lighting. Keep the product's exact shape, color, material and proportions unchanged."
)
def edit_product_image(prompt, image_urls, aspect_ratio="auto", resolution="1K"):
payload = {
"model": "flux-2/image-to-image",
"input": {
"prompt": prompt,
"image_urls": image_urls,
"aspect_ratio": aspect_ratio,
"resolution": resolution,
},
}
resp = requests.post(API_BASE, headers=HEADERS, json=payload, timeout=60)
resp.raise_for_status()
task_id = resp.json()["data"]["taskId"]
while True:
time.sleep(3)
status = requests.get(f"{API_BASE}/{task_id}", headers=HEADERS, timeout=30).json()
state = status["data"]["status"]
if state == "success":
return status["data"]["output"][0]["url"]
if state == "fail":
raise RuntimeError(f"task {task_id} failed: {status}")
CATALOG = [
{"sku": "SNK-001", "image_url": "https://cdn.example.com/raw/snk-001.jpg"},
{"sku": "HDP-014", "image_url": "https://cdn.example.com/raw/hdp-014.jpg"},
{"sku": "DRP-022", "image_url": "https://cdn.example.com/raw/drp-022.jpg"},
]
for item in CATALOG:
out_url = edit_product_image(BACKGROUND_PROMPT, [item["image_url"]])
print(item["sku"], "->", out_url)
各 output[0].url は時限リンクです——ループの中でダウンロードして再ホストしてください(自前のストレージバケット、CDN、またはストアのバックエンドを支える任意のサービス)。生のリンクを保存しないでください。タスク/ポーリング/ダウンロードのループについての完全なウォークスルー(エラー処理を含む)は、hiapi API で flux-2/image-to-image を使用する方法をご覧ください。
よくある質問
flux-2/image-to-image は商品自体を変えますか、それとも背景だけを変えますか? 適切に指示すれば、変更するよう伝えた内容——背景、シーン、光——だけを変え、参照画像内の商品の形状、色、質感は変えません。毎回完璧とは限りません。公開前に、特にパッケージの小さな文字やロゴについて、出力をソース画像と照合してください。
1 回の呼び出しで最大何枚の参照画像を使えますか? 最大 8 枚です。背景の置き換えには 1 枚で十分です。シーン合成には通常 2 枚(商品+目的シーン)が必要です——モデルに一連の写真の中で特定の既存キャラクター、小道具、ブランド要素を一致させたい場合に、より多くの参照画像が役立ちます。
1K と 2K のどちらの解像度を使うべきですか? 1K($0.035/枚)はほとんどの商品カタログやウェブリスティングの用途に十分です——上記のヘッドホンとドリッパーの合成画像はどちらも 1K で生成されています。メインビジュアルのバナーや、後でトリミングして拡大するものには 2K($0.05/枚)を選んでください。
flux-2/image-to-image と Klein ティアの違いは何ですか? Klein(9b と 4b)は部分的な編集の忠実度と引き換えに低価格を実現します——フルモデルをカタログ全体で実行する前に、低コストでプロンプトをテストするのに適しています。現在の価格は上記の料金表をご覧ください。
モデルに任せず出力サイズを強制指定できますか?
はい——aspect_ratio を auto ではなく明示的な値(1:1、4:3、16:9 など)に設定してください。モデルは auto で一致した出力を単純にトリミングするのではなく、その形状に適合するよう再構図します。
要点
- flux-2/image-to-image はゼロから生成するのではなく既存の商品写真を編集します——参照画像を入力し、編集後の画像を出力し、商品の同一性は保たれます。
aspect_ratio: "auto"は入力画像自身の形状に従います。カタログのグリッド全体で一貫した出力比率が必要な場合は明示的に設定してください。- 1K 解像度($0.035/枚)はほとんどの EC ユースケースをカバーします。2K($0.05/枚)はメインビジュアルサイズや大幅にトリミングされる出力向けです。
- 同じエンドポイントが単一画像の背景置き換えと複数画像のシーン合成の両方を处理します——違いは
image_urlsを何枚渡すかだけです。 - バッチ処理はタスク/ポーリング/ダウンロードのループに通常のループを重ねるだけで、専用のバッチエンドポイントは不要です。
自分の商品カタログで使う準備ができたら、flux-2/image-to-image モデルページでリアルタイムのスキーマとクイックスタートリクエストを、flux-2/image-to-image プロンプトレシピでは背景置き換えとシーン合成以外のより多くのテスト済みプロンプトパターンを提供しています。