照片消除工作室
把用户手上已有的照片拿过来,去掉他指的那个东西,再把它背后空出来的位置补好,让这次消除不容易看出来。
适用范围与路线选择
当一张已有照片里有东西必须消失、而其余部分要保持原样时,使用本 Skill:旅游照背后的路人、人像边上入镜的陌生人、街景里的垃圾桶、招牌、路障或停着的车、产品图里多出来的手、电线或反光、房间照里的杂物,以及表面上的瑕疵。
整张照片的画风或媒介转换请使用 ai-photo-restyler。让画面更像实拍请使用 ai-image-realism,专业人像请使用 ai-headshot-studio,把商品重新放到新背景上请使用 product-photo-studio。没有原图、要全新出图请使用 beatra-ai-image-studio,视频里的消除请使用 video-realism-retoucher。
输入与默认值
两个硬性输入:照片,以及哪个东西要去掉。复用对话中已有的照片、artifact、平台和主体。
只有当答案会改变付费结果时才询问:画面里有好几个相似的东西时问要去掉哪一个——用户的说法能对上不止一个,选错就是拿一次付费调用去消错东西。
避免多余提问的默认值:
beatra.images.edit,把用户的照片放在第一位,因为底图必须留在编辑结果里。- 省略画布时是 2K 档、跟随底图比例,画幅和比例不变,但比 2K 大的照片交回来会变小;遇到这种情况提交前先说明。
model: "auto",交给 Beatra 路由,除非用户点名。count: 1,让用户先看到一张再决定要不要多花钱。- 没点名的东西都写进保留要求:人、商品、文字和背景都不动,除非用户要求改。
标准流程
读图和想方案都免费,只有编辑是付费的。
- 先确定底图。本地文件用随包客户端上传一次,后面每次调用都复用返回的 artifact。
- 把这次消除说准:什么消失、什么必须原样保留、空出来的位置应该接着画什么——通常是画面里已有的周围环境。
- 选路线。
edit_regions把改动聚焦到归一化矩形上,靠近人脸、商品或文字时更稳妥;不框范围的整图编辑适合零散、不好框的杂物。框出范围只是把意图聚焦过去,并不保证框外的像素不变,所以要复核结果,不要向用户承诺周围一定安全。每张输入最多接受两个矩形,所以标记的目标更多时会有意拆成多次,每一次都是用户批准的一次付费调用。 - 当兼容性、控制项或价格重要时,用
beatra.models.list读取图像编辑能力的实时卡片,读卡片而不要臆测模型、控制项或输入上限。 - 付费前确认。 展示底图 artifact、确切的矩形或整图路线、指令、
count、解析出的画布、总共几次、以及这几次加起来的最高费用。之后每一次在提交前各自再确认一遍,并各自带一个不透明且稳定的client_request_id。 - 每一次获批的消除都只提交一次
beatra.images.edit,立刻记下任务 ID,并轮询同一个任务。 - 交付每一张返回的图片,附上真实尺寸、MIME 类型、大小和 URL 或 artifact ID,以及解析出的模型、实际用量和
billing.net_charged_credits。 - 对照需求复核:点名的东西是不是没了、补上的位置是不是接得住周围、用户要求保留的是不是都还在。如实说明宿主 Agent 看不到哪些东西。
被去掉的东西背后是根据周围重新画出来的,所以那里出现的内容是新画面而不是找回来的细节;当被遮住的区域原本有用户需要准确的信息——一张脸、一块招牌、一个价格、一个序列号或一份文件——提交之前就要向用户说清楚。矩形几何、载荷、多次消除、故障恢复与交付复核见照片消除工作流(references/workflow.md)。
本 Skill 的执行方式
每个远程 Beatra 操作都使用随包的 scripts/mcp_client.py:在 call 后写入 MCP 工具名,并在标准输入中传入一个 JSON 对象。不要配置或调用宿主 Beatra Connector,也不要使用 REST/OpenAPI 作为回退。首次使用时通过 beatra.installations.register 注册本包。每次创作都是异步任务:提交一次,然后跟踪该任务直到终态。
需要确认的决策
提交之前先确认:底图、要去掉的是什么、矩形或整图路线、count、解析出的画布以及与原图不同时的实际交付像素尺寸、总共几次,以及这几次加起来的最高费用。更换照片、矩形、指令、张数或模型,都属于新的付费工作,需要新的请求 ID。
当用户标出的目标超过一次能处理的数量时,在提交任何一次之前先展示怎么分组、每一次多少钱,而不是悄悄丢掉目标或者悄悄多花钱。
故障恢复
任务 ID 一返回就立即保存,并用 beatra.tasks.get 轮询;queued 和 running 表示继续等待。只有在创建请求的响应确实未知、且每个已校验参数在同一请求 ID 下逐字节相同时,才重放一次创建。任务 ID 丢失时,用 beatra.tasks.list 按 image_edit 能力查找,并沿着返回的每一个 next_cursor 翻完覆盖提交时段所需的页,用 beatra.tasks.get 确认候选,先找回原任务再考虑新的工作。请求 ID 本身丢失时,不要臆造新 ID,也不要重放。只有用户要求时才调用 beatra.tasks.cancel;遇到 409 时继续轮询原任务,只有其终态为 canceled 时才报告已取消。
多次消除是接力进行的,所以某一次失败会挡住它后面的每一次。把失败的那一次当作新的付费工作来重跑:终态 failed 是已知的结果,需要新的确认和新的 client_request_id,而不是重放原来那一个。已经交付的那几次位于失败点之前,依然有效,不重新生成。重跑会返回一张不同的图,所以后面每一次的矩形都要照着这张新底图重新算并再确认一遍。
按任务查阅参考
- 照片消除工作流(references/workflow.md):矩形几何、确切载荷、多次消除、上传、故障恢复与交付复核。
- 安装与认证(references/installation-and-auth.md)和安装注册(references/installation-registration.md):首次使用与共享凭据。
- 任务与结果(references/tasks-and-results.md)和计费、错误与恢复(references/billing-errors-and-recovery.md):任务、artifact 与计费事实。
- 随包 MCP Client 连接诊断(references/mcp-connection.md):客户端操作与连接诊断;不要配置宿主 Connector。
- 自动更新与安全(references/automatic-updates-and-safety.md):更新行为与开关。
- 卸载与断开连接(references/uninstall-and-disconnect.md):移除本包与清理共享凭据。
运行时与安全的自动更新
随包客户端会在每个安装中静默检查更新,最多每 24 小时一次。发现更高版本时,不另行确认地自动安装。它只使用针对本包、渠道和语言环境固定的 Beatra 官方发现地址和不可变 CDN 路径,在替换前校验发现信息、压缩包、清单和每个随包文件,并且只替换本包拥有的文件。更新检查、下载、校验、替换和恢复失败时会 fail open:当前安装仍可使用,原本请求的命令会继续执行。更新失败绝不构成重试付费生成的理由。这个设置会在后续命令中持续生效。
python3 scripts/mcp_client.py update --auto off
python3 scripts/mcp_client.py update --auto on
python3 scripts/mcp_client.py update --check
--auto off 会关闭静默检查,--auto on 会恢复静默检查,--check 会报告官方可用版本但不替换文件。详见自动更新与安全(references/automatic-updates-and-safety.md)。
Scan to join WeChat group