搜索

搜索 HiAPI 模型、工具和资源。

返回博客
教程3 分钟阅读

Bria Product Shot API 怎么用:输入准备与调用示例

Bria Product Shot 每张 $0.0575,提供 cURL、Python 示例及参数组合说明,完成提交任务和查询结果。

HiAPI 编辑部bria-product-shotapi

TL;DR

  • Bria Product Shot:上传商品图,用英文场景描述或场景参考图更换背景。
  • 每张 $0.0575,每次请求输出 1 张 PNG。 查看价格与预算
  • 使用 HiAPI /v1/tasks 接口:提交任务拿 taskId,再查询结果。

先准备哪些输入?

准备一张 JPEG、PNG 或 WEBP 商品图,最大 12 MB。场景输入二选一:英文 prompt,长度 1–1000 个字符;或 reference_image_url。商品图与参考图都要能通过公开 URL 访问。

护肤商品:窗边台面

商品输入图

用此场景描述打开模型页,还需上传商品图并设置位置。

结果展示图

用此场景描述打开模型页,还需上传商品图并设置位置。

原图是浅色背景上的滴管瓶;结果图把瓶子放在画面下方,周围出现窗框、绿叶和有纹理的浅色台面。

On a white marble countertop beside a window, soft morning light, a few green leaves in the background

这条描述交代了台面材质、光线与背景物件。位置由 bottom_center 控制,商品图仍需单独上传。

bria-product-shot,每次输出 1 张,$0.0575/张。

浏览器里怎么开始?

  1. 打开 Bria Product Shot 模型页,上传商品图。
  2. 选择英文场景描述或场景参考图,再选摆放方式。
  3. 检查输入后提交,查看结果并保存需要的图片。

cURL:提交与查询

以下命令用于 Bash 类终端。将 HIAPI_API_KEY 设置为你的 API Key;示例中的输入图片是可访问的完整地址。运行提交命令会创建收费任务。

curl --request POST "https://api.hiapi.ai/v1/tasks" \
  --header "Authorization: Bearer $HIAPI_API_KEY" \
  --header "Content-Type: application/json" \
  --data-raw '{
  "model": "bria-product-shot",
  "input": {
    "image_url": "https://static.hiapi.ai/model-covers/2026/10/22/1792653491040-98cf020f23ff79b2-1792546029235-98cf020f23ff79b2-p1-serum-src.png",
    "prompt": "On a white marble countertop beside a window, soft morning light, a few green leaves in the background",
    "optimize_description": true,
    "placement_type": "manual_placement",
    "manual_placement_selection": "bottom_center",
    "fast": true
  }
}'

提交成功后,从响应 data.taskId 取出任务编号,用它替换 TASK_ID。

curl "https://api.hiapi.ai/v1/tasks/TASK_ID" \
  --header "Authorization: Bearer $HIAPI_API_KEY"

查询结果的 data.status 为 success 时,从 data.output[0].url 获取图片;为 fail 时检查返回的错误信息。结果链接需要及时转存。

Python:提交、等待并保存

示例使用 Python 标准库。轮询间隔与最大等待时间是示例设置,可按应用需要调整;它们不是模型耗时承诺。

import json
import os
import time
import urllib.request
from pathlib import Path

API = "https://api.hiapi.ai/v1/tasks"
headers = {
    "Authorization": "Bearer " + os.environ["HIAPI_API_KEY"],
    "Content-Type": "application/json",
}
payload = json.loads(r'''{
  "model": "bria-product-shot",
  "input": {
    "image_url": "https://static.hiapi.ai/model-covers/2026/10/22/1792653491040-98cf020f23ff79b2-1792546029235-98cf020f23ff79b2-p1-serum-src.png",
    "prompt": "On a white marble countertop beside a window, soft morning light, a few green leaves in the background",
    "optimize_description": true,
    "placement_type": "manual_placement",
    "manual_placement_selection": "bottom_center",
    "fast": true
  }
}''')

def request_json(url, body=None):
    data = None if body is None else json.dumps(body).encode("utf-8")
    req = urllib.request.Request(url, data=data, headers=headers)
    with urllib.request.urlopen(req, timeout=60) as response:
        return json.load(response)

created = request_json(API, payload)
task_id = created["data"]["taskId"]
print("taskId:", task_id)
deadline = time.monotonic() + 600
while time.monotonic() < deadline:
    result = request_json(API + "/" + task_id)["data"]
    if result["status"] == "success":
        image_url = result["output"][0]["url"]
        with urllib.request.urlopen(image_url, timeout=60) as response:
            Path("result.png").write_bytes(response.read())
        break
    if result["status"] == "fail":
        raise RuntimeError(result)
    time.sleep(3)
else:
    raise TimeoutError("Polling stopped; query the existing taskId later.")

参数怎么选?

字段要求用法
model必填,顶层bria-product-shot
image_url必填,input 内商品图 URL,最大 12 MB
prompt与参考图二选一英文场景描述,1–1000 字符
reference_image_url与 prompt 二选一场景参考图 URL
optimize_description默认 true仅文字模式可传
placement_type默认 manual_placementmanual_placement 或 original
manual_placement_selection默认 bottom_center只在 manual_placement 下可传
original_quality默认 false只在 original 下可传,true 保留输入尺寸
fast默认 truefalse 使用标准模式,价格相同

预设位置可选:bottom_center, upper_left, upper_right, bottom_left, bottom_right, right_center, left_center, upper_center, center_vertical, center_horizontal.

参考图模式的请求如下,省略 prompt 和 optimize_description:

{
  "model": "bria-product-shot",
  "input": {
    "image_url": "https://static.hiapi.ai/model-covers/2026/10/22/1792653508912-1a0141656fd5be3e-1792546030593-1a0141656fd5be3e-p3-headphones-src.png",
    "reference_image_url": "https://static.hiapi.ai/model-covers/2026/10/22/1792653513818-51ae5323f709b007-1792546031369-51ae5323f709b007-p3-scene-ref.png",
    "placement_type": "manual_placement",
    "manual_placement_selection": "bottom_center",
    "fast": true
  }
}

保持原位并保留输入尺寸时,改用以下组合,省略 manual_placement_selection:

{
  "model": "bria-product-shot",
  "input": {
    "image_url": "https://static.hiapi.ai/model-covers/2026/10/22/1792653518710-bd2c7181e19c3cb3-1792546031810-bd2c7181e19c3cb3-p4-candle-src.png",
    "prompt": "On a wooden bedside table in a calm bedroom at dusk, soft warm lamp light, linen bedding blurred in the background",
    "optimize_description": true,
    "placement_type": "original",
    "original_quality": true,
    "fast": true
  }
}

接入时检查哪些问题?

先检查图片 URL 能否公开访问,以及请求字段是否符合上面的组合。不要在返回参数错误后反复提交同一份请求。

保存 taskId;轮询超时后继续查询已有任务,避免直接重新提交。服务端可在请求顶层设置 callback.url 接收任务结束通知。结果图片应及时转存到自己的存储。

常见问题

prompt 与参考图能同时传吗?

不能。二选一,参考图模式还要省略 optimize_description。

保持原位时可以传位置预设吗?

不可以。placement_type=original 时省略 manual_placement_selection。

original_quality 怎么使用?

只在 original 下传。true 保留输入尺寸;false 缩放到约 100 万像素。

fast=false 会改变价格吗?

不会,仍为每张 $0.0575。

继续阅读

价格与预算 · 场景案例与输入准备

打开模型页并上传输入图。

现在就用 HiAPI 生成

选一个模型,输入你的提示词,直接查看生成结果。

HiAPI Blog

相关文章

HiAPI

现在就用 HiAPI 生成

开始生成