
商品写真APIで1枚からストア対応画像を量産する
1枚の商品写真をAPIでストア対応画像に変える実践的なワークフロー。商品特性を保ちながら1Kで検証し、承認済み画像のコストを追跡する手法です。
1 枚の通常の商品写真があれば、API に対して商品自体の再発明ではなく、セット(背景やライティング)だけ変えるよう指示することで、十分な枚数の正面または 3/4 アングルの店舗対応画像を得られます。実用的なワークフローはシンプルです。変わらない詳細を記録し、安価な 1K 候補を生成し、固定されたチェックリストで不承認にし、指定された失敗に対してのみ品質かモデルを上げます。
最後の部分が重要です。モデル呼び出しは成功して完了しても、キャップが異なるボトル、薄くなったロゴ、アイテムを浮かせるシャドウという結果になることがあります。追跡する価値のある数字は、したがって宣伝された生成価格ではありません。それは承認済み画像あたりのコストであり、不承認にしたすべての完了候補を含みます。
このガイドのレートは 2026 年 9 月 3 日に確認したものです。変動する可能性があるため、顧客見積もりやハード予算制限に変換する前に、ライブモデルページを確認してください。
TL;DR
- 所有する商品写真から始めます。販売したいアングルから、1 つの非遮蔽アイテムを表示してください。
- 形状、比率、素材、色ブロック、ハードウェア、既存ラベルマークについての身元契約を記述します。シーンは変更してもよい。これらの詳細は変更しないでください。
- ここでの最も低いコストの第一ステップは Nano Banana 2 Lite で15 クレジット、つまり 2026 年 9 月 3 日確認時で 1 つの完了済み 1K 画像あたり $0.015です。[1]
- 1 つの候補でプロンプトを検証します。商品がレビューに耐える前にバッチを注文しないでください。
- すべてのターミナルタスクから決算済みの
usage.creditsを読みます。完了した試行に対して請求されたクレジットの合計を、承認した画像の数で割ります。 - 正確な価格、用量、成分、認定マーク、法務文言を生成されたピクセルの外に保ちます。検証済みアートワークは保持するか、合成します。
商品写真は洗練されているだけではストア対応にはなりません
シンプルな商品写真をアップロードするだけで、形状の変化、ラベル文字の破損、不自然な照明、出力のばらつきがない、クリーンなEC向け画像を得られるでしょうか。却下した結果ごとに再生成が必要になり得るため、コストも重要です。
これは「この写真をプロにする」よりも問題の定義としては優れています。店舗対応の資産は、観察可能なチェックに合格する必要があります。
| チェック | 合格条件 | 不承認のとき |
|---|---|---|
| 商品数 | リクエストされた正確に 1 つのアイテム | 複製品、蓋、または緩い部品が表示される |
| ジオメトリ | シルエットと比率がソースと一致 | キャップ、ハンドル、ポンプ、エッジ、またはパッケージの幅が変わる |
| 素材 | 仕上げとテクスチャが識別可能 | マットが光沢になる、透明が不透明になる、またはテクスチャが消える |
| 色 | 商品の色ブロックが同じ位置 | ホワイトバランスが商品ではなくセットを変える |
| ラベル | 既存マークが所定位置、新規主張なし | 単語が変わる、消える、または作られる |
| トリミング | 全アイテムが有用なセーフスペース付き | ベース、キャップ、ハンドル、またはシャドウがトリミングされる |
| グラウンディング | コンタクトシャドウが面と光に一致 | アイテムが浮く、または不可能なシャドウをキャストする |
| 配信 | アスペクト、ピクセルサイズ、形式が宛先に適合 | ファイルが安全でないトリミングが必要、または使用不可なエッジ |
美しい画像がこの表に不承認になることもあります。逆に、すべての商品事実を保留する控えめな白背景が、より価値のある資産になることもあります。
解く必要がある失敗でモデルを選びます
万能な「最高の商品写真モデル」は存在しません。編集を表現できる最も安価なルートから始めて、レビューが最初のルートが不十分な理由を教えてくれたときだけ変更します。
| ステージ | モデルとリクエストティア | ライブ生成レート | 使用する場面 |
|---|---|---|---|
| レイアウト合格 | nano-banana-2-lite、1K | $0.015 / 15 credits | ソース 1 つ、背景とライティング変更が単純 |
| 柔軟な編集 | gpt-image-2、1K | $0.030 / 30 credits | アスペクト比選択肢が多く必要、または対象編集ワークフロー |
| 本番スチル | doubao-seedream-5-0-pro、basic 1K | $0.032 / 32 credits | 素材、ライティング、構成、複数参照コントロールが困難 |
| 複雑またはサイズ大 | gemini-3-pro-image-preview、1K or 2K | $0.030 / 30 credits | ブリーフが密、参照多数、または後続 4K パスが正当化される |
これらは現在の reAPI レートで、上流ベンダーのリスト価格ではありません。Nano Banana 2 Lite は 1 つの 1K 画像を返し、最大 10 個のパブリック画像参照を受け入れます。GPT Image 2 は 1K、2K、4K ティアを提供しています。Seedream 5.0 Pro は basic 1K と high 2K 出力を提供し、最大 10 個の参照があります。Nano Banana Pro は 4K に対応しており、同日の決算 4K 価格は $0.033、つまり 33 credits でした。[1][2][3][4]
ステージラベルはベンダーランキングではなく、ワークフロー推奨です。ByteDance は Seedream 5.0 Pro を構造的コヒーレンス、素材とライティングコントロール、マルチイメージフュージョン、本番指向編集の周辺に位置付けています。ソース写真とあなたの受け入れテストが、それらの機能がこの特定の商品を助けるかどうかをまだ決定します。[8]
解像度は幾何学の修復ツールではありません。1K ドラフトがキャップを変更する場合、4K リランはより鋭い誤ったキャップを与えるだけです。まず同一性命令を修復するか、有用な参照を追加してください。構成と商品が合格した後でのみ解像度を上げます。
より広い機能トレードオフについては、完全な GPT Image 2 vs Nano Banana Pro 比較または Seedream 5.0 Pro vs GPT Image 2 比較をご覧ください。このガイドの残りは商品写真の仕事に戻ります。
クレジットを使う前にソース写真を準備します
送信する前に、ソースを所有するか変換の許可を持つことを確認します。マーケットプレイスのリスト、別のカタログ、顧客アップロードが新しい商用資産としてクリアされていると仮定しないでください。適用可能なライセンス、条件、顧客同意を確認します。
ソースはスタジオ背景を必要としません。商品をよみやすくすることが必要です。
- 1 つの完全なアイテムを表示(ベースと上部を含む)
- 結果で希望する同じ広いアングルを使用する
- 重要なエッジから指、テープ、グレア、小道具を遠ざける
- 素材を隠す潰れた黒とハイライトの飛びを避ける
- キャップ、ハンドル、ポンプ、ファスナー、色ブロックを簡単に検査できるように
- リクエスト結果が最初の写真に映らない側を露出させる場合は、別の所有アングルを提供
1 つの写真は 3D モデルではありません。隠されたバックパネルに何が印刷されているか、見えないメカニズムがどう形成されているかは証明できません。証拠がない場合は、別の参照をキャプチャするか、その面をビューから外したままにしてください。
API はメディアをパブリック HTTP(S) URL として受け入れます。Base64 文字列とdata: URL は拒否されるため、まず所有する R2、S3、または同等のオブジェクトストレージにソースをアップロードしてください。[1]
商品身元契約を記述します
ビジュアルプロンプトを記述する前に、ソースを短い検査記録に変えます。これはまだモデルへのプロズではなく、プロンプトとレビュアーの両方が使う仕様です。
{
"product": "250 ml skincare bottle",
"must_keep": [
"exactly one bottle",
"tall rounded-rectangle silhouette",
"short matte-white pump",
"cobalt band at the lower quarter",
"warm-white body with a satin finish",
"front label position and all existing marks",
"height-to-width ratio"
],
"may_change": [
"background",
"surface",
"lighting direction",
"contact shadow",
"crop room"
],
"must_not_create": [
"new words or logos",
"price or discount badge",
"ingredients or certification claim",
"extra bottle, cap, pump, or packaging"
]
}「一貫性を保つ」はレビュアーに何も指摘するものをくれません。「コバルトバンドは下四分の一に留まります」の方が良いです。
最初の商品写真プロンプトを構築します
交渉不可のアイデンティティを最初に置いて、次に何が変わるか述べ、その後ショットを説明します。モデルは長い写真形容詞のリストよりも具体的な境界に従う傾向があります。
Use Image 1 as the exact product identity.
Keep exactly one product. Preserve its silhouette, dimensions, pump position,
warm-white satin material, cobalt color boundary, surface texture, and every
existing label mark. Do not redesign, relabel, remove, or add branding.
Change only the setting: place the product centered on a warm-white seamless
studio sweep. Use a large soft key light from the upper left, even front detail,
and a natural contact shadow directly below the bottle. Keep the whole product
visible with at least 10% crop room on every side.
No hands, people, props, boxes, extra products, added text, badges, dramatic
reflections, clipped edges, or floating object.プロンプトはモデルにラベルを改善するよう求めません。ラベルタイポグラフィが商業的に重要なら、「改善」は再描画への招待です。元のプレートを保持するか、生成後に検証済みアートワークを追加してください。
最初の商品写真 API ジョブを送信します
メディア API キーを作成して、例の URL をパブリックソース画像で置き換え、1 つの Nano Banana 2 Lite タスクを送信します。これは有料リクエストです。意図的に 1 つの候補で、バッチではありません。
curl https://reapi.ai/api/v1/images/generations \
-H "Authorization: Bearer $REAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2-lite",
"prompt": "Use Image 1 as the exact product identity. Keep exactly one product. Preserve its silhouette, dimensions, pump position, material, color boundaries, surface texture, and every existing label mark. Do not redesign, relabel, remove, or add branding. Change only the setting: center it on a warm-white seamless studio sweep with a soft key light from upper left and a natural contact shadow. Keep the whole product visible with at least 10% crop room. No hands, people, props, extra products, added text, badges, clipped edges, or floating object.",
"image_urls": ["https://assets.example.com/my-product.jpg"],
"aspect_ratio": "1:1"
}'レスポンスにはidとstatus: "processing"が含まれます。ID を保存します。その後、completedまたはfailedに到達するまで、2~3 秒ごとにタスクエンドポイントをポーリングします。
TASK_ID="task_replace_me"
curl "https://reapi.ai/api/v1/tasks/$TASK_ID" \
-H "Authorization: Bearer $REAPI_API_KEY"ポーリングはクレジットを消費しません。完了した画像タスクはoutput.image_urlsのファイルとusage.creditsの決算料金を返します。[5]
クライアントが応答を読む前に接続が失われてもPOSTを盲目的に繰り返さないでください。最初のリクエストが既に有料タスクを作成している可能性があります。応答とタスク ID が到着したらすぐにログに記録します。GET は安全に再試行できますが、別の生成を作成する前に意図的な判断をしてください。
制限付きポーリングを備えた完全な Node.js ランナー
次のスクリプトは SDK なし で Node.js 20 以降で動作します。このガイドで使われる 4 つの 1K リクエスト形状をサポート、正確に 1 度送信、5 分間のローカルポーリング期限を使用、決算クレジットを出力、成功ファイルを現在のディレクトリにコピーします。
import { writeFile } from 'node:fs/promises';
const apiKey = process.env.REAPI_API_KEY;
const sourceUrl = process.env.SOURCE_IMAGE_URL;
const model = process.env.IMAGE_MODEL || 'nano-banana-2-lite';
if (!apiKey || !sourceUrl) {
throw new Error('Set REAPI_API_KEY and SOURCE_IMAGE_URL first.');
}
const prompt = `Use Image 1 as the exact product identity.
Keep exactly one product. Preserve its silhouette, proportions, hardware,
material, color boundaries, surface texture, and every existing label mark.
Do not redesign, relabel, remove, or add branding.
Change only the setting: center it on a warm-white seamless studio sweep with
a soft key light from upper left and a natural contact shadow. Keep the whole
product visible with at least 10% crop room. No hands, people, props, added
text, badges, extra products, clipped edges, or floating object.`;
function requestBody(selectedModel) {
const common = {
model: selectedModel,
prompt,
image_urls: [sourceUrl],
};
if (selectedModel === 'nano-banana-2-lite') {
return { ...common, aspect_ratio: '1:1' };
}
if (selectedModel === 'gpt-image-2') {
return { ...common, size: '1:1', resolution: '1k' };
}
if (selectedModel === 'doubao-seedream-5-0-pro') {
return { ...common, aspect_ratio: '1:1', quality: 'basic' };
}
if (selectedModel === 'gemini-3-pro-image-preview') {
return { ...common, size: '1:1', resolution: '1k' };
}
throw new Error(`Unsupported IMAGE_MODEL: ${selectedModel}`);
}
const headers = {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
};
async function readJson(response) {
const body = await response.json();
if (!response.ok) {
const message = body.error?.message || JSON.stringify(body);
throw new Error(`HTTP ${response.status}: ${message}`);
}
return body;
}
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
async function getTask(taskId) {
for (let attempt = 0; attempt < 4; attempt += 1) {
let response;
try {
response = await fetch(`https://reapi.ai/api/v1/tasks/${taskId}`, {
headers: { Authorization: `Bearer ${apiKey}` },
signal: AbortSignal.timeout(15_000),
});
} catch (error) {
if (attempt === 3) throw error;
await sleep(1000 * 2 ** attempt);
continue;
}
if (response.status === 429) {
const seconds = Number(response.headers.get('retry-after'));
await response.body?.cancel();
await sleep(Number.isFinite(seconds) ? seconds * 1000 : 5000);
continue;
}
if ([502, 503, 504].includes(response.status)) {
await response.body?.cancel();
await sleep(1000 * 2 ** attempt);
continue;
}
return readJson(response);
}
throw new Error(`Task ${taskId} could not be read after transient errors`);
}
// Submit once. If this connection fails ambiguously, reconcile before
// re-running the script: the server may already have accepted the task.
const submission = await readJson(
await fetch('https://reapi.ai/api/v1/images/generations', {
method: 'POST',
headers,
body: JSON.stringify(requestBody(model)),
signal: AbortSignal.timeout(30_000),
}),
);
console.log(`submitted ${submission.id}`);
const deadline = Date.now() + 5 * 60 * 1000;
let task;
while (Date.now() < deadline) {
await sleep(3000);
task = await getTask(submission.id);
if (task.status === 'completed' || task.status === 'failed') break;
}
if (!task || task.status === 'processing') {
throw new Error(
`Local polling deadline reached. Resume GET for ${submission.id}; do not POST again.`,
);
}
console.log(`status=${task.status} credits=${task.usage.credits}`);
if (task.status === 'failed') {
const credits = task.usage?.credits ?? 'unknown';
throw new Error(
`${task.error?.code || 'task_failed'}: ${task.error?.message || 'unknown error'}; task=${task.id}; settled_credits=${credits}`,
);
}
const outputUrl = task.output?.image_urls?.[0];
if (!outputUrl) throw new Error('Task completed without an image URL.');
const imageResponse = await fetch(outputUrl, {
signal: AbortSignal.timeout(30_000),
});
if (!imageResponse.ok) {
throw new Error(`Image download failed: HTTP ${imageResponse.status}`);
}
const contentType = (imageResponse.headers.get('content-type') || '')
.split(';')[0]
.trim()
.toLowerCase();
const extensionByType = {
'image/jpeg': 'jpg',
'image/png': 'png',
'image/webp': 'webp',
};
const extension = extensionByType[contentType];
if (!extension) throw new Error(`Unexpected output type: ${contentType}`);
const outputPath = `product-candidate.${extension}`;
await writeFile(outputPath, Buffer.from(await imageResponse.arrayBuffer()));
console.log(`saved ${outputPath} from ${outputUrl}`);こう実行します。
export REAPI_API_KEY="rk_live_replace_me"
export SOURCE_IMAGE_URL="https://assets.example.com/my-product.jpg"
export IMAGE_MODEL="nano-banana-2-lite"
node product-photo.mjsレビュー後に GPT Image 2、Seedream 5.0 Pro、または Nano Banana Pro を試すにはIMAGE_MODELのみを変更してください。リクエストビルダーは各モデルに正しいサイズフィールドを供給します。
ライブ 15 クレジットテストが返したもの

2026 年 9 月 3 日、reAPI ホスト 2,048 × 1,152 ソース PNG を正方形出力比で上記の正確な Nano Banana 2 Lite リクエストを通じて送信しました。タスクtask_01a065bb951c735fab44b38c778e069eが完了し、1,024 × 1,024 JPEG を返し、**15 クレジット($0.015)**で決算しました。画像 URL はチェック時に認証なしでダウンロード可能でした。
結果は最初のパスが行うべきことをしました。1 つのマグを保持し、全体的なシルエットとハンドル開口を示し、書籍と植物を削除し、ニュートラルスイープに商品を置いてコンタクトシャドウを付けました。また小さな釉薬スペックルと反射も変更しました。これは有用なレイアウト候補を作成しますが、ユニークなハンドメイド SKU がピクセル単位で同じままであったという証拠ではありません。1 つの実行はリクエスト形状、出力形状、料金を検証します。レイテンシ、受け入れ率、またはモデル勝者は確立しません。[1]
最初の結果を 100% サイズでレビューします
サムネイルから判定しないでください。ソースと候補を並べて開いて 100% にズームし、このようなレコードを埋めます。
{
"task_id": "task_replace_me",
"decision": "reject",
"passed": [
"1つの商品",
"完全なトリミング",
"背景",
"コンタクトシャドウ"
],
"failed": [
"ポンプがより高くなりました",
"下のコバルトバンドが上向きに移動しました"
],
"usage_credits": 15,
"reviewer": "initials",
"prompt_revision": 1
}まずアウトラインをチェックします。次に固定のランドマークを比較します。キャップの高さ、ハンドル開口、コーナー、シーム、ボタン数、色ブロック、ラベル位置、表面仕上げです。見えるすべての単語を読みます。最後にトリミングとシャドウを検査します。
この順序は意図的です。見映えの良いライトセットアップが、別の商品を承認するよう説得してはいけません。
1 つの失敗条件を再試行します。ブリーフ全体ではなく
「もう一度」は何も教えません。成功する部分を運んで、失敗に結びついた 1 つの命令を変更します。
| 失敗 | より良い次のステップ |
|---|---|
| キャップまたはハンドルが変わった | その位置と比率に名前を付ける。形状が曖昧なら別の所有アングルを追加 |
| 商品があまりに光沢 | 観察された仕上げを述べ、「豪華な輝き」などの言葉を削除 |
| ラベル文字が変わった | ラベルピクセルを拒否。新しいコピーをプロンプティングせず、検証済みアートワークを保持または合成 |
| アイテムが浮く | その下に直接コンタクトシャドウとベースの表面プレーンを求める |
| トリミングが商品をカット | 数値セーフマージンを備えた完全なアイテムが必要 |
| 背景が残っている | ジェネレータに再度尋ねるのではなく、カットアウトと決定論的テンプレートを使用 |
| 色がシフトした | 商品色を固定として記述し、要求ライトをニュートラルに |
ほぼ正しいモデルに 1 つの対象再試行を与えてください。同じ身元条件が再び失敗したら、メソッドを切り替えます。より良い参照を提供するか、ローカライズ編集を使うか、元の商品ピクセルを保って背景のみを再構築します。背景削除 API 価格ガイドは その決定論的ルートの価格設定方法を示します。
承認済み画像の実コストを計算します
1 クレジットは $0.001 です。有用な公式は。
承認済み画像あたりのコスト =
完了した創造的試行のための決算クレジット合計 × $0.001
--------------------------------------------------------
承認された画像数3 つの Nano Banana 2 Lite タスクが各 15 クレジット で完了したとします。2 つを拒否し 1 つを承認します。
(15 + 15 + 15) × $0.001 / 1 承認画像 = $0.045API ユニット価格はまだ $0.015 です。受け入れた画像コストは $0.045 です。両方の数字は真実です。別の質問に答えているだけです。
プロバイダー失敗は通常、予約が払い戻された後ゼロクレジットで決算します。完了した創造的不承認画像は有料のままです。モデル固有の生成後安全チェックは、出力が非表示でもモデル固有の料金を保持できるため、すべての失敗タスクがゼロコストと仮定する代わりにstatusとusage.creditsを一緒に使用してください。[5]
小さなクロスモデルスモークテストが必要なら、Nano Banana 2 Lite、GPT Image 2、Seedream 5.0 Pro から各 1 つの 1K 試行は現在。
15 + 30 + 32 = 77 credits = $0.077これは実行されていない計画予算で、測定ベンチマーク、受け入れ率、またはモデルランキングではありません。モデルごとに 1 出力はそれらいずれもサポートしません。より安く、より有用な第一ステップはまだ単一 15 クレジットレイアウト候補で、その後失敗固有の判定が続きます。
監査証跡を失わずにワークフローを本番化します
各生成について、永続化します。
- ソース資産のハッシュまたは耐久 ID
- 正確なモデル ID、出力ティア、プロンプト、プロンプト改訂
- 送信時刻と返されたタスク ID
- ターミナル
status、usage.credits、あらゆるエラーコード - 返された URL とアーカイブコピーの場所
- 承認ステータス、レビュアー、短い不承認理由
送信とポーリングを別々のジョブとして保ちます。ワーカーは 1 度送信でき、タスク ID を保存でき、再開後別ワーカーが GET リクエストを再開できます。ローカルポーリング期限を設定しますが、その期限を API 失敗と混同しないでください。プロセスが待ち中止するなら、後で同じタスクを再開します。
管理するストレージにアーカイブ済みファイルをアーカイブします。タスク契約は展開の CDN ライフサイクルがカタログ寿命と一致することを約束しません、また商品ページは一時的生成レコードに依存すべきではありません。[5]
最初のプロンプトが成功後のノーコードバッチについては、n8n 商品広告ワークフローが同じ送信とポーリング構造を示します。後で動きが必要なら、承認済みスチルと身元契約を1 つ商品写真ビデオワークフローに運んでください。
生成が間違ったツールの場合
正確なラベル、シリアル番号、規制マークが読みやすい必要がある場合は、元の商品ピクセルを保ちます。
- ジオメトリはピクセル単位でカタログ全体で同一である必要があります
- 商品が透明、反射性、または細かい反復テキストで覆われています
- 宛先は 1 つの固定白背景テンプレートを使用します
- 間違った色またはパッケージ詳細は重大な顧客不満を作成する可能性があります
これらの場合は、背景を削除し、マスクをクリーンアップし、カットアウトを既知面に配置し、決定論的デザインテンプレートでシャドウを作成します。生成 API はまだ背景プレートを作成できますが、商品を再描画する必要はありません。
FAQ
最初に試すための最も安い API ルートは何ですか?
このガイドのルートのうち、Nano Banana 2 Lite は 2026 年 9 月 3 日確認時で完了済み 1K 画像 1 つあたり $0.015、つまり 15 credits でした。レートは変動する可能性があるため、予算化する前に ライブモデルページ をチェックしてください。
1 つの写真は商品の背面と側面を保存できますか?
いいえ。目に見える形状、素材、ラベル配置をガイドできます。ソースが表示しない事実は確実に再構築できません。別の所有アングルを提供するか、目に見えない面の露出を避けてください。
ぼやけたラベルをモデルに書き換えるよう求めるべきですか?
本番真実としてではなく、検証済みラベルアートワークまたは元の商品プレートを使用してください。尤もらしい新しい成分、用量、認定、保証はまだ偽情報です。
すぐに 2K または 4K で生成すべきですか?
ID、構成、トリミングを検証するために 1K から開始します。画像がそれらのチェックに合格し、配信チャネルが真にもっとピクセルが必要なときだけ上に移動します。OpenAI と Google の両方は現在の画像モデルの複数出力サイズをドキュメント化していますが、モデル固有の可用性と課金は異なります。[6][7]
商品リスティングにはどのアスペクト比を使用すべきですか?
宛先で必要な比率を使用します。クロスモデルトライアルの場合、1:1 は安全な共有設定です。Seedream 5.0 Pro の現在のパブリックリクエストは 1:1、4:3、3:4、16:9、9:16、2:3、3:2 を受け入れますが、4:5 は受け入れません。[3]
API は透明な商品画像を返すことができますか?
モデルとリクエストサーフェスによります。Seedream 5.0 Pro は、既にアルファチャネルを持つ 1 つの参照画像に対してのみ透明背景オプションを公開し、層分解と組み合わせることはできません。開始写真が通常背景を持つなら、専用削除ワークフローがより明確な第一ステップです。[3]
失敗したタスクは課金されますか?
プロバイダー失敗とタイムアウトは通常払い戻されますが、決定的答えはターミナルタスクのusage.creditsです。いくつかの生成後安全判定は、status: "failed"でもモデル固有の料金を保持できます。ステータスだけから請求を計算しないでください。[5]
承認を自動化できますか?
ディメンション、ファイルデコード、アルファ、商品数などの機械的チェックは自動化できます。ジオメトリ、細かいラベル精度、色、請求安全性は、検証済み商品固有の比較システムがない限り、ヒューマンゲートが必要です。オートメーションは不確実な画像をレビューにルーティングする必要があります。静かに公開するのではなく。
1K で開始し、指定された失敗に対してのみエスカレートします
有用な商品写真 API ワークフローは保守的です。ソースを証拠として開始し、商品アイデンティティを凍結し、商品自体が正しくなるまで 1K に留まります。完了した不承認を記録します。これは実際コストの一部です。そしてカットアウト + テンプレートが別の想像力豊かな生成より安全なことを知っています。
それはどのように 1 つの普通の写真が本番化画像になるかです。商品が生き残ったという証拠として見映えの良いレンダーを扱うことなく。
References
- reAPI. Nano Banana 2 Lite API: live pricing, request schema, and task lifecycle. Retrieved September 3, 2026 from the Nano Banana 2 Lite model page.
- reAPI. GPT Image 2 API: live pricing and request schema. Retrieved September 3, 2026 from the GPT Image 2 model page.
- reAPI. Seedream 5.0 Pro API reference. Retrieved September 3, 2026 from the Seedream 5.0 Pro documentation.
- reAPI. Gemini 3 Pro Image Preview API: live pricing and request schema. Retrieved September 3, 2026 from the Nano Banana Pro model page.
- reAPI. Tasks API: states, usage, polling, output, and refund semantics. Retrieved September 3, 2026 from the Tasks API reference.
- OpenAI. Image generation guide and GPT Image 2 model reference. Retrieved September 3, 2026 from the OpenAI developer documentation.
- Google. Gemini API image generation guide. Retrieved September 3, 2026 from the Google AI for Developers documentation.
- ByteDance Seed. Beyond Generation, It Understands Design: Introducing Seedream 5.0 Pro. Retrieved September 3, 2026 from the Seed product blog.
Further reading
著者

カテゴリ
他の記事

Claude API キーの取得方法と必要なタイミング
Claude API キーの作成は4クリック。有効期限とワークスペースは作成時に一度だけ選択でき、その後変更はできません。複数のベンダーを呼び出す場合は計算が変わります。


2026年のCometAPI代替サービス5選:主要候補を比較
2026年のCometAPI代替サービスを探している方へ。OpenRouter、WaveSpeed、Together AI、Replicate、reAPIをモデル、料金、速度、API設計で比較します。


Wan 3.0 API 価格:480P/720P/1080P のコスト計算
Wan 3.0 の公式 API 価格と reAPI のレートを詳しく比較し、480P・720P・1080P の各解像度で、5秒・10秒・30秒ビデオのコストを計算します。
