HiAPI
ブログ

使用ガイド

Recraft V4.1 Flash によるEC商品画像:1枚あたり$0.01でカタログ画像を一括生成

recraft-v4.1-flash/text-to-image での実際の並列バッチ:商品リスト画像とシーン画像、実測した背景の白さ、所要時間、バッチスクリプト。

Nov 1, 2026
Recraft V4.1 Flash によるEC商品画像:1枚あたり$0.01でカタログ画像を一括生成

TL;DR

  • HiAPI では、recraft-v4.1-flash/text-to-image が1枚あたりわずか$0.01なので、1,000枚のカタログ画像のコストは$10.00です。標準版 recraft-v4.1/text-to-image は1枚$0.05で、同じパラメータを受け付けます(価格比較)。
  • 私たちの実行では、並列に送信した4枚の商品画像が実時間21.5秒で完了し、各タスク(ダウンロードを含む)は約19〜20秒でした。総コスト:$0.04。
  • background_color を白に設定すると、生成される背景は白に近いものの均一な #FFFFFF ではありません。マーケットプレイスが純白を要求する場合は、追加のクリーンアップ工程が必要です。

カタログに Flash ティアを選ぶべきケース

タスク量が多い場合に Flash を使用します。各 SKU に白背景の商品リスト画像が1枚、さらにシーン画像が1〜2枚必要で、公開前に1枚ずつ確認する予定があるケースです。1枚$0.01で計算すると、500 SKU × 各3枚で合計$15.00です。同じ1,500枚を標準版 V4.1 で生成すると$75.00になります。

Flash と標準版 V4.1 は同じ入力フィールドを受け付けるため、採用画像を上位ティアにアップグレードするには model を変更するだけです。本記事では2つのティアの画質を比較しません。一致したプロンプトでそれぞれを実行していないためです。本番素材に使用するティアを最終決定する前に、出力結果をご自身で確認してください。

検証済みの入力スキーマ

意図的に無効な値を送信して、ライブ API に対してスキーマを確認しました:

フィールド 型 備考
prompt string(文字列) 必須
image_size enum(列挙型) square_hd、square、portrait_4_3、portrait_16_9、landscape_4_3、landscape_16_9
colors {r,g,b} 配列 パレットのガイド。文字列を渡すと 400 INVALID_REQUEST: colors: got string, want array が返ります
background_color {r,g,b} 背景色

未知のフィールドは拒否され(additional properties ... not allowed)、6種類のプリセット以外の image_size も拒否されます。カスタムピクセルサイズはサポートされていません。得られたサイズ:square_hd 1024×1024、portrait_4_3 896×1216、landscape_4_3 1216×896。

あるバッチの実際の出力

以下の4枚の画像はすべて同じ並列バッチから生成されたものです。キャプションにサイズを記載しています。各画像のコストは$0.01です。

白背景の商品リスト画像

E-commerce product photo of a matte sage-green ceramic coffee mug with a curved handle, centered, front three-quarter view, pure white seamless background, soft even studio lighting, gentle contact shadow, no props, no text

recraft-v4.1-flash/text-to-image、square_hd、1024×1024、background_color 白、$0.01。

E-commerce product photo of a single white leather low-top sneaker with gum rubber sole, side profile facing left, pure white seamless background, soft even studio lighting, subtle shadow under the sole, no props, no text

recraft-v4.1-flash/text-to-image、square_hd、1024×1024、background_color 白、$0.01。

マグカップはプロンプトに非常に忠実でした:中央配置、きれいなコンタクトシャドウ、小道具なし。スニーカーはなぜ確認が依然として必要なのかを示しています。私たちは生ゴムの靴底(gum rubber sole)を指定しましたが、得られたのはクリーム色の靴底で、しかも靴は中央ではなく画面の下半分に配置されていました。実際の商品と照合しない限り、この2枚はいずれも実在の SKU の商品リスト画像として使用できません。

ライフスタイルシーン画像

Lifestyle product photo of an amber glass dropper serum bottle with a plain white label, standing on a travertine stone tray beside a eucalyptus sprig, bathroom shelf, soft morning window light, shallow depth of field, premium skincare catalog look

recraft-v4.1-flash/text-to-image、portrait_4_3、896×1216、$0.01。

Lifestyle product photo of a charcoal canvas rolltop backpack leaning against a wooden bench in a sunlit train station, warm afternoon light, shallow depth of field, travel catalog look, no people, no logos

recraft-v4.1-flash/text-to-image、landscape_4_3、1216×896、$0.01。

どちらのシーンも、それぞれのプロンプトに含まれる小道具とライティングのヒントをすべて反映しています。美容液のラベルは指定どおり空白です。後から実際のラベルを合成する予定がある場合に便利で、モデルに文字を捏造させるより安全です。

「白背景」が実際に返すもの

2枚の商品リスト画像からピクセルをサンプリングしました:

画像 角 / エッジのサンプル (RGB) ちょうど 255,255,255 白に近い(全チャンネル ≥ 250)
マグカップ 255,255,255 · 255,255,253 · 253,254,252 48.1% のピクセル 75.4%
スニーカー 254,253,253 · 251,250,249 · 255,255,255 58.3% のピクセル 79.3%

背景は白に見えますが、完全に均一な #FFFFFF ではありません。メイン画像に純白を求めるマーケットプレイスでは後処理工程が必要です。白に近いピクセルを255にクランプするか、商品を切り抜いてきれいなキャンバスに配置します。Recraft の背景削除チュートリアルでは、同じ API 上での切り抜きソリューションを紹介しています。

バッチスクリプト:並列送信、ポーリング、ダウンロード

これは私たちが実行したスクリプトを簡略化したものです。各 SKU は独自の Idempotency-Key を持つため、ネットワークタイムアウト後の再試行で重複した有料タスクが作成されることはありません。出力 URL は一時的なものです:私たちの URL は temp.hiapi.ai 上にあり、作成からちょうど7日後に期限切れとなる expireAt が付いています。タスク成功後は各画像をできるだけ早くダウンロードしてください。

import os, time, requests
from concurrent.futures import ThreadPoolExecutor

BASE = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}",
           "Content-Type": "application/json"}
WHITE = {"r": 255, "g": 255, "b": 255}
BATCH_ID = "catalog-2026-11-01"  # change per intentional new batch

JOBS = [
    {"sku": "mug-sage", "image_size": "square_hd", "background_color": WHITE,
     "prompt": "E-commerce product photo of a matte sage-green ceramic coffee mug ..."},
    {"sku": "serum-amber", "image_size": "portrait_4_3",
     "prompt": "Lifestyle product photo of an amber glass dropper serum bottle ..."},
    # one dict per SKU / shot
]

def run(job):
    payload = {"model": "recraft-v4.1-flash/text-to-image",
               "input": {k: v for k, v in job.items() if k != "sku"}}
    r = requests.post(BASE, json=payload, timeout=60,
                      headers={**HEADERS, "Idempotency-Key": f"{BATCH_ID}-{job['sku']}"})
    r.raise_for_status()
    task_id = r.json()["data"]["taskId"]
    while True:
        task = requests.get(f"{BASE}/{task_id}", headers=HEADERS, timeout=30).json()["data"]
        if task["status"] in ("success", "fail", "failed"):
            break
        time.sleep(3)
    if task["status"] != "success":
        return job["sku"], task["status"]
    img = requests.get(task["output"][0]["url"], timeout=60).content
    with open(f"{job['sku']}.webp", "wb") as f:  # output was WebP in our run
        f.write(img)
    return job["sku"], "saved"

with ThreadPoolExecutor(max_workers=4) as pool:
    for sku, status in pool.map(run, JOBS):
        print(sku, status)

私たちの実行では各タスクに対して次の内容が返されました(1件のみ表示):

{
  "taskId": "tk-hiapi-01M6AMTSX0B7Z531QT740DS54P",
  "model": "recraft-v4.1-flash/text-to-image",
  "status": "success",
  "storage": "temp",
  "output": [{"type": "image", "url": "https://temp.hiapi.ai/.../...-0.webp", "expireAt": 1794111048}]
}

このタスクの created と completed のタイムスタンプの差は9秒でした。クライアント側の残り時間は、ポーリング間隔と0.45〜1.26 MB の WebP ファイルのダウンロードに使われました。リクエストとポーリングの詳細については、Recraft V4.1 API ガイドとHiAPI ドキュメントをご覧ください。

カタログの予算

SKU あたりの画像数 100 SKU 1,000 SKU
1(商品リスト画像のみ) $1.00 $10.00
3(商品リスト画像 + シーン画像2枚) $3.00 $30.00
3 + 再生成2回 $5.00 $50.00

Flash の1枚$0.01、2026年11月1日時点の HiAPI 価格に基づきます。再生成は他の画像と同様に課金されるため、予算の一部を確保しておいてください。

商品リスト画像に適したプロンプトのパターン

  • 撮影タイプから始め(E-commerce product photo of ...)、その後に素材 + 色 + 商品を続けます。
  • カメラアングルを固定します(front three-quarter view、side profile facing left)。
  • 背景とライティングを明示的に書き(pure white seamless background, soft even studio lighting)、さらに background_color も同時に渡します。
  • 除外項目で締めくくります:no props, no text。
  • 商品固有のディテールを実物と照合してください。スニーカーの靴底の色は、モデルがこうしたディテールでずれる可能性があることを示しています。

よくある質問

Flash はメインの商品リスト画像に十分ですか? マグカップのようなシンプルな商品では、出力はきれいです。ただしディテールがずれる可能性があり(スニーカーの靴底など)、背景も純粋な #FFFFFF ではありません。各画像を確認し、マーケットプレイスが要求する場合は背景のクリーンアップも行ってください。

1つのバッチ内でブランドカラーを統一できますか? はい。各リクエストに同じ colors 配列を渡します。パレットをガイドしますが、ピクセル単位で正確に色を固定するものではありません。

採用画像を標準版 V4.1 にアップグレードするには? 同じペイロードで model を recraft-v4.1/text-to-image に設定して再送信します。1枚$0.05です。

これで実際の商品が生成されますか? いいえ。テキストから画像を生成する機能は、あなたの説明に合致する商品を作り出します。実物を表示するには、生成したシーンを背景やモックアップとして使用するか、画像から画像を生成するワークフローに切り替えてください。

カタログの作成準備はできましたか?Recraft V4.1 Flash モデルページを開き、まず1つの商品リストプロンプトを試してから、残りの SKU に対してバッチスクリプトを実行してください。

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

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

APIドキュメントを読む