HiAPI
ブログ

使用ガイド

EC 製品画像向けの Recraft 背景削除

recraft/remove-background による実際のバッチ実行。実際のリクエスト、出力、そして製品カタログ全体に適用できるスクリプトを収録。

Sep 9, 2026
EC 製品画像向けの Recraft 背景削除

製品の背景を手作業で切り抜く作業は、SKU が数十を超えるとスケールしません。hiapi 上の Recraft 背景削除モデルは、この作業を 1 回の API 呼び出しに変えます。製品写真を送信すると、背景が完全に透明な PNG が返り、それをマーケットプレイスや店舗に必要な任意の背景に配置できます。本記事では、recraft/remove-background を使った実際のバッチ実行を、実際のリクエスト、実際の出力、そして製品カタログ全体に向けられるスクリプトとともに解説します。

背景削除が依然として実際のボトルネックである理由

ほとんどの製品画像パイプラインは似ています。写真家やサプライヤーから届く写真には、その場にある任意の背景(スタジオのシームレスペーパー、倉庫の床、輸送用パレット)が写っており、白背景のリストページ、ライフスタイル合成画像、あるいはカテゴリごとに特定の背景色を使うマーケットプレイステンプレートに配置する前に、誰かが製品を分離しなければなりません。

週に扱う画像が少し多くなるだけで、Photoshop での作業はスケールしなくなり、汎用的な「AI 背景削除」Web ツールはブラウザから製品写真を 1 枚ずつアップロードする必要があり、遅く自動化も困難です。API ベースのマッティングモデルはこの両方の問題を解決します。1 枚あたりの処理が速く、スクリプトからの呼び出しが極めて簡単なので、既存の製品写真カタログパイプラインにそのまま組み込めます。

recraft/remove-background が実際に行うこと

このモデルは入力として製品写真の URL を 1 つだけ受け取ります。背景が削除され、透明領域に置き換えられた PNG を返します。プロンプトもマスクもなく、調整すべき追加パラメータもありません。リクエスト全体は次のとおりです。

{
  "model": "recraft/remove-background",
  "input": {
    "image_url": "https://your-cdn.example.com/products/sneaker-001.jpg"
  }
}

カタログ作業では、この狭い入力面が利点になります。プロンプトエンジニアリングの工程がなく、同じ呼び出しが渡したすべての製品写真に対して同じように機能するため、数千の SKU を無人で処理する際に重要です。

実際の実行:ビフォー・アフター

以下は、ライブ API を通して実行した実際の製品写真と、返されたマッティングです。

右側のチェッカーボード模様はグレーの背景ではなく透明を表しています。PNG 出力は背景を完全に取り除いているため、製品を下流の任意のもの(純白のリスト背景、ブランドカラーのブロック、ライフスタイルシーン)に合成できます。

透明 PNG として保存された単体のマッティングは次のとおりです。

このファイルは、リストテンプレート、マーケットプレイス要件に適合する白背景のフレーム、またはデザインツールのレイヤースタックに、追加のマスク作業なしでそのまま配置できます。

直接呼び出し

リクエストは hiapi の標準非同期タスクエンドポイントに送信します。タスクを送信し、完了するまでポーリングします。

curl -X POST "https://api.hiapi.ai/v1/tasks" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "recraft/remove-background",
    "input": {
      "image_url": "https://your-cdn.example.com/products/sneaker-001.jpg"
    }
  }'

taskId が返ります。GET https://api.hiapi.ai/v1/tasks/{taskId} を status が success になるまでポーリングし、その後すぐに output[0].url から PNG をダウンロードしてください。出力 URL は期限切れになるため、他に何かする前にバイトデータを自分のストレージに取得しておきます。

カタログ全体でのバッチ処理

単発のマッティング呼び出しは面白い部分ではありません。製品カタログ全体で実行することが本題です。以下は、画像 URL のリストをスレッドプールに分散し、各タスクを待機し、元写真からマッティング URL へのマッピングを返す実際のバッチスクリプトです。

import concurrent.futures
import os
import time
import requests

API_KEY = os.environ["HIAPI_API_KEY"]
BASE_URL = "https://api.hiapi.ai/v1/tasks"


def remove_background(image_url: str) -> str:
    resp = requests.post(
        BASE_URL,
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={"model": "recraft/remove-background", "input": {"image_url": image_url}},
        timeout=60,
    )
    resp.raise_for_status()
    task_id = resp.json()["data"]["taskId"]

    while True:
        poll = requests.get(
            f"{BASE_URL}/{task_id}",
            headers={"Authorization": f"Bearer {API_KEY}"},
            timeout=30,
        )
        task = poll.json()["data"]
        if task["status"] == "success":
            return task["output"][0]["url"]
        if task["status"] == "fail":
            raise RuntimeError(f"{image_url}: {task['error']}")
        time.sleep(3)


def batch_remove_background(image_urls, max_workers: int = 5):
    results = {}
    with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as pool:
        futures = {pool.submit(remove_background, url): url for url in image_urls}
        for future in concurrent.futures.as_completed(futures):
            url = futures[future]
            try:
                results[url] = future.result()
            except Exception as exc:
                print(f"failed: {url} -> {exc}")
    return results

max_workers=5 はカタログ作業の妥当な開始並列数です。アカウントのレート制限でより多くの並列タスクが許される場合は引き上げてください。また、1 枚の不良元写真がバッチの残りを止めないよう、常に画像ごとの try/except を残しておきます。各結果 URL は返り次第すぐに永続ストレージへダウンロードしてください。出力 URL が後で有効なままであると仮定しないでください。

カタログ規模でのコスト

2026-09 時点で、hiapi 上の recraft/remove-background の価格は 1 枚あたり $0.01 です。500 SKU で各 1 枚のメイン画像を持つカタログの場合、全バッチのマッティングは $5 で済みます。各 SKU で 3 アングルをマッティングするカタログでは $15 です。大量バッチを計画する前に、料金が変わる可能性があるため最新の料金ページを確認してください。

よくある質問

プロンプトやマスクは必要ですか? いいえ。唯一の入力は image_url です。画像ごとに調整するものがないため、大規模カタログで無人実行できるのです。

出力はどのようなものですか? 背景が透明領域に置き換えられた PNG で、サイズは入力写真の被写体のフレーミングに一致します。リストテンプレートに必要な任意の背景に合成してください。

スタジオ写真だけでなく、背景が雑然としたライフスタイル写真も入力できますか? はい。きれいなスタジオセットに限らず、任意の製品写真 URL で機能しますが、被写体が明確に分離されているもの(ほとんどの製品撮影のように)が最もきれいなエッジになります。

1 つのタスクはどれくらい速いですか? 単一タスクは通常数秒から 1 分以内に完了します。上記のバッチスクリプトはタスクごとに 3 秒間隔でポーリングし、複数タスクを並列実行するため、数百枚の画像も 1 回のスクリプト実行で完了できます。

価格は画像の解像度で変わりますか? このモデルは解像度による段階制ではなく、タスクごとの固定料金を課します。大量バッチを確約する前に、公表料金は変わる可能性があるため料金ページで現在の料金を確認してください。

次に進むべき場所

recraft/remove-background モデルページで直接モデルを試すか、既存写真のマッティングだけでなく新しい製品シーンの生成も必要な場合は、関連する生成側ワークフローQwen Image を使った EC 製品画像の生成をご覧ください。タスク API がサポートするその他すべてについては、クイックスタートドキュメントが認証とタスクのライフサイクル全体をカバーしています。

永続的なAIアーティファクトで開発を始める

APIキーを取得して、タスクベースの1つのAPIで画像・動画・音声モデルを呼び出せます。

APIドキュメントを読む