TL;DR
- Bria Eraser:上传原图和黑白蒙版,擦除指定区域;无需提示词。
- 每张 $0.0575,每次请求输出 1 张 PNG。 查看价格与预算
- 使用 HiAPI
/v1/tasks接口:提交任务拿 taskId,再查询结果。
先准备哪些输入?
准备原图和宽高比一致的黑白蒙版。蒙版白色部分标记要擦除的位置,黑色部分标记保留区域。支持 JPEG、PNG、WEBP 原图;每次返回与原图相同分辨率的 PNG。
街景:擦除路人

打开模型页上传输入图,并上传对应蒙版;无需填写提示词。

打开模型页上传输入图,并上传对应蒙版;无需填写提示词。

打开模型页上传输入图,并上传对应蒙版;无需填写提示词。
原图中央有一位穿长外套的路人,蒙版的白色区域覆盖了人物。结果图中该位置变为石板路,街道两侧的建筑仍可见。
白色区域覆盖完整人物,画蒙版时检查鞋子和物体边缘;需要保留的桌椅留在黑色区域。
bria-eraser,每次输出 1 张,$0.0575/张。
浏览器里怎么开始?
- 打开 Bria Eraser 模型页,上传原图与蒙版。
- 选择 mask_type;原图带透明背景时开启 preserve_alpha。
- 检查输入后提交,查看结果并保存需要的图片。
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-eraser",
"input": {
"image_url": "https://static.hiapi.ai/model-covers/2026/10/22/1792651217019-46c31ddb2b52110d-1792546025379-46c31ddb2b52110d-e1-street-src.png",
"mask_url": "https://static.hiapi.ai/model-covers/2026/10/22/1792651218718-e5d2a17ae1d12d41-1792546025861-e5d2a17ae1d12d41-e1-street-mask.png",
"mask_type": "manual",
"preserve_alpha": false
}
}'
提交成功后,从响应 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-eraser",
"input": {
"image_url": "https://static.hiapi.ai/model-covers/2026/10/22/1792651217019-46c31ddb2b52110d-1792546025379-46c31ddb2b52110d-e1-street-src.png",
"mask_url": "https://static.hiapi.ai/model-covers/2026/10/22/1792651218718-e5d2a17ae1d12d41-1792546025861-e5d2a17ae1d12d41-e1-street-mask.png",
"mask_type": "manual",
"preserve_alpha": false
}
}''')
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-eraser |
| image_url | 必填,input 内 | 公开的原图 URL |
| mask_url | 必填,input 内 | 同宽高比黑白蒙版 URL |
| mask_type | 可选,默认 manual | 手绘选 manual;分割工具生成选 automatic |
| preserve_alpha | 可选,默认 false | 原图带透明通道时设 true 可保留透明度 |
prompt 不是可用参数。automatic 表示蒙版由分割工具生成,仍然必须提供 mask_url。开启 preserve_alpha 也不会凭空给不透明原图创建透明背景。
接入时检查哪些问题?
先检查图片 URL 能否公开访问,以及请求字段是否符合上面的组合。不要在返回参数错误后反复提交同一份请求。
保存 taskId;轮询超时后继续查询已有任务,避免直接重新提交。服务端可在请求顶层设置 callback.url 接收任务结束通知。结果图片应及时转存到自己的存储。
常见问题
Eraser 需要提示词吗?
不需要,也不能传 prompt。擦除范围由原图和蒙版决定。
automatic 可以省略蒙版吗?
不可以。它表示蒙版由分割工具生成,mask_url 仍然必填。
如何保留透明背景?
原图含透明通道时设置 preserve_alpha=true,并检查输出 PNG 的透明通道。
输出图片尺寸是多少?
返回与原图相同分辨率的一张 PNG。




