搜索

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

返回博客
教程5 分钟阅读

FLUX.1 Fill Pro API 怎么用?5 分钟跑通第一次蒙版重绘

蒙版的四个硬要求、在线试用 4 步、API 接入 4 步,附可直接运行的 curl 和 Python。

HiAPI 编辑部FLUX.1 Fill ProAPI 接入教程

TL;DR

  • 它是什么:Black Forest Labs 的蒙版局部重绘模型。上传原图、同尺寸黑白蒙版和提示词,只重绘白色区域,黑色区域原样保留。已在 HiAPI 上线,打开模型页 就能试,新用户注册送 200 积分。
  • 多少钱:每张 $0.0715(143 积分),按成功出图计费,steps、guidance、seed、输出格式都不加价,失败退还预扣。$10 约 139 张。
  • 最快怎么调:POST https://api.hiapi.ai/v1/tasks,model 写 flux-1-fill-pro,input 里放 image、mask、prompt 三个字段,拿到 taskId 后轮询或等回调,下载 data.output[0].url。

蒙版重绘最容易踩的坑不是参数,是素材:蒙版必须和原图同尺寸,白色只盖要改的地方。下面先把这两件事说清楚,再跑第一次。

FLUX.1 Fill Pro 是什么?

它是一个「只改你圈出来那块」的编辑模型。改动范围由蒙版决定,不由文字决定,所以旁边的家具、阴影和地平线不会跟着变。

FLUX.1 Fill Pro 站内案例:挂钟所在墙面被换成暖陶土色抽象画,框外画面保持原样

蒙版只盖住挂钟那一小块墙面,输出 1440 × 810。左侧挂毯、编织盘、野牛头骨、绿植、沙发和光线都没被重绘。

  • 三件输入。 原图(JPEG / PNG / GIF / WebP)、同尺寸黑白蒙版、提示词(最多 4,000 字符)。
  • 边界可控。 白色重绘、黑色保留,改动停止在蒙版边缘,适合商品精修、背景替换、服装换色这类「只动一处」的活。
  • 输出跟随原图。 没有画幅参数,比例照搬原图;1600 × 900 的原图返回 1440 × 810,按 32 的倍数微调。
  • 参数够用不复杂。 steps 15–50 默认 50,guidance 1.5–100 默认 60,可选 seed 和 jpg / png 输出。
A large framed abstract painting in warm terracotta, sand and cream tones, hanging on the wall, with a thin dark wood frame; keep the room, sofa, furniture and lighting unchanged.

用这个提示词生成 → 链接只预填提示词:原图位是空的,蒙版位默认放着示例蒙版。换成你自己的原图和同尺寸蒙版,再点运行。

蒙版怎么准备?

四个要点,按这个顺序做:

  1. 只有黑白两值。 白色是要重绘的区域,黑色是保留的区域。灰边会让边界发虚,尽量做出硬边。
  2. 尺寸和原图完全一致。 1600 × 900 的原图配 1600 × 900 的蒙版。不要截屏再缩放,直接从同一个文件导出蒙版,宽高对不上任务会失败。
  3. 白色区域贴紧目标。 盖住要改的东西就停手,不要把旁边的家具、台面、阴影带进来。
  4. 按原图分辨率导出 PNG。 PNG 不带压缩噪点,边界最干净;把蒙版和原图放在能被公网访问的地址上,接口收的是 URL,不是文件上传。

对照用蒙版:全黑背景上一个白色方框

黑色保留、白色重绘。这张 1600 × 900 的蒙版只在挂钟位置留了一个白框,所以只有那块墙面会被重绘。

在线试用:4 步出第一张

模型页不能画蒙版,蒙版要在你自己的工具里做好再上传。

  1. 打开 FLUX.1 Fill Pro 模型页,注册或登录,新账号自带 200 积分。
  2. 上传原图,再上传同尺寸的黑白蒙版。
  3. 粘贴提示词,只描述白色区域里要出现的内容,并写清必须保留什么。
  4. 点运行。默认 steps 50、guidance 60、jpg 输出,先跑通再调参。

点「用这个提示词生成」打开页面时,提示词会自动填好。原图位是空的,蒙版位默认放着示例蒙版,换成自己的蒙版再运行。

API 接入:4 步

  1. 在 控制台 创建 API Key(sk-...)。
  2. POST /v1/tasks 创建任务,input 里带 image、mask、prompt。
  3. 用 GET /v1/tasks/{taskId} 查询,或在请求里加 callback.url 等通知。
  4. data.status 变成 success 后,从 data.output[0].url 下载图片,立刻存到自己的存储。

完整的字段表、错误码和参数说明见中文文档。

第一次蒙版重绘:curl 版

curl -s -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer sk-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "flux-1-fill-pro",
    "input": {
      "image": "https://static.hiapi.ai/model-onboarding/flux-1-fill-pro/prod-migrate/2026/10/21/1792572565867-4e5072a121d7018f-1792418738578-4e5072a121d7018f-source.jpg",
      "mask": "https://static.hiapi.ai/model-onboarding/flux-1-fill-pro/prod-migrate/2026/10/21/1792572569695-82bb18075f29c864-1792418739459-82bb18075f29c864-mask.png",
      "prompt": "A large framed abstract painting in warm terracotta, sand and cream tones, hanging on the wall, with a thin dark wood frame; keep the room, sofa, furniture and lighting unchanged.",
      "steps": 50,
      "guidance": 60,
      "output_format": "png"
    }
  }'

返回的任务 ID 在 data.taskId:

{"code":200,"data":{"taskId":"tk-hiapi-..."},"message":"success"}

查询结果:

curl -s https://api.hiapi.ai/v1/tasks/YOUR_TASK_ID \
  -H "Authorization: Bearer sk-YOUR_KEY"

上面这两张图就是一比一的对照素材:1600 × 900 的原图和同尺寸蒙版,直接跑就能得到本文第一张挂画效果。

第一次蒙版重绘:Python 版

创建、轮询、下载一次写完,换上自己的 Key 就能跑:

import requests, time

API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": "Bearer sk-YOUR_KEY"}

payload = {
    "model": "flux-1-fill-pro",
    "input": {
        "image": "https://static.hiapi.ai/model-onboarding/flux-1-fill-pro/prod-migrate/2026/10/21/1792572565867-4e5072a121d7018f-1792418738578-4e5072a121d7018f-source.jpg",
        "mask": "https://static.hiapi.ai/model-onboarding/flux-1-fill-pro/prod-migrate/2026/10/21/1792572569695-82bb18075f29c864-1792418739459-82bb18075f29c864-mask.png",
        "prompt": "A large framed abstract painting in warm terracotta, sand and cream tones, hanging on the wall, with a thin dark wood frame; keep the room, sofa, furniture and lighting unchanged.",
        "steps": 50,
        "guidance": 60,
        "output_format": "png",
    },
}

resp = requests.post(API, headers=HEADERS, json=payload, timeout=30)
task_id = resp.json()["data"]["taskId"]

while True:
    status = requests.get(f"{API}/{task_id}", headers=HEADERS, timeout=30).json()["data"]
    if status["status"] in ("success", "fail"):
        break
    time.sleep(3)

if status["status"] == "success":
    image_url = status["output"][0]["url"]
    with open("fill-pro-edit.png", "wb") as f:
        f.write(requests.get(image_url, timeout=60).content)
else:
    print(status.get("error"))

参数怎么调?

一次只改一个,出了差别才知道是哪一项起的作用。

  • steps(15–50,默认 50):数值越高细节越细,默认值已经适合出片,往下调只在赶速度时用。
  • guidance(1.5–100,默认 60):数值越高越贴近提示词。风格跑偏先往上加,画面僵硬再往回收。
  • seed:定稿后固定一个值,同图同蒙版同提示词能回到相近结果,方便回退和批量统一。
  • output_format:默认 jpg;要保留最多细节、或者后续还要再处理一遍,写 png。
  • prompt_upsampling:默认 false。开启会自动改写你的提示词,想完全控制措辞就保持关闭。

上线前注意这 4 件事

  1. 页面里画不出蒙版。 模型页和 API 都只收做好的蒙版图,尺寸还必须与原图一致。蒙版在 Photoshop、Figma、分割工具里做好再上;页面上只能上传,不能刷。
  2. 服务端用回调。 请求体加 "callback": {"url": "https://yourapp.com/webhook", "when": "final"},任务结束自动通知,比轮询省事;保留轮询做兜底。
  3. 超时不要重复 POST。 每次 POST /v1/tasks 都会新建任务、单独计费。先存 taskId,重试时复用同一个任务去查。
  4. 输出地址会过期。 拿到结果立刻下载存文件,别把 URL 当成永久地址;另外输出比例跟随原图、没有画幅参数,要固定版位就自己按比例裁切。

常见问题

不传蒙版能用吗? 不能。image、mask、prompt 三个都必填,蒙版必须是原图同尺寸的黑白图。

提示词该写多长? 最多 4,000 字符,但够用就好:一句写白色区域里要出现什么,一句写必须保留什么。细节描述得越具体,结果越稳。

输出尺寸和原图一样吗? 比例一致,像素会被微调到 32 的倍数。1600 × 900 的原图返回 1440 × 810,要叠回原图先统一尺寸。

生成失败会扣钱吗? 不会。失败任务预扣的金额自动全额退还。

现在就出第一张

上面两张对照素材(原图 + 蒙版)可以直接拿来练手:复制 curl 里的请求体,换成自己的 API Key 跑一次,或者打开模型页 上传这两张图,提示词已经填好,点运行就是同款结果。这一张 $0.0715,注册送的 200 积分够跑一张。

FLUX.1 Fill Pro 系列文章

现在就用 HiAPI 生成

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

HiAPI Blog

相关文章

HiAPI

现在就用 HiAPI 生成

开始生成