Install
openclaw skills install byted-kickart-saliency-segmenter智能抠图SKILL:从图片文件自动抠图。触发条件:当用户提及智能抠图、图片抠图、抠图、主体分割、去背景、背景剔除、商品抠图等关键词,或识别到用户表达等价意图时,调用此SKILL执行抠图任务。
openclaw skills install byted-kickart-saliency-segmenter从指定的图片文件抠图。
| 命令 | 功能 | 说明 |
|---|---|---|
python3.12 ./scripts/plan.py | 套餐查询 | 查询用户当前的 Ark Claw 套餐 |
python3.12 ./scripts/upload.py --file <图片路径> | 图片上传 | 上传本地图片文件获取媒资ID |
python3.12 ./scripts/segment.py --media-ids <媒资ID列表> | 批量图片抠图 | 支持多张图片并发抠图,多个媒资ID用逗号分隔 |
所有用户请求必须先完成以下3步校验,不得跳过:
echo "ARK_SKILL_API_BASE: $ARK_SKILL_API_BASE" && echo "ARK_SKILL_API_KEY: $ARK_SKILL_API_KEY" && echo "ACCESS_KEY_ID: $ACCESS_KEY_ID" && echo "SECRET_ACCESS_KEY: $SECRET_ACCESS_KEY"
ARK_SKILL_API_BASE 和 ARK_SKILL_API_KEY 均为非空值 → 鉴权通过ACCESS_KEY_ID 和 SECRET_ACCESS_KEY 均为非空值 → 鉴权通过请你提供火山账号AK&SK,用于检查火山创作Agent是否已开通套餐和有可用的创点
export ACCESS_KEY_ID=用户提供的ACCESS_KEY_ID值
export SECRET_ACCESS_KEY=用户提供的SECRET_ACCESS_KEY值
已完成AK&SK临时配置,当前配置仅在本次会话生效,不会持久化存储,请放心使用
export指定这两个环境变量,确保鉴权正常,无需用户重复配置python3.12 --version || (echo "❌ Python 3.12+ 未安装,请先安装Python 3.12" && exit 1)
python3.12 -m pip install -r ./scripts/requirements.txt
python3.12 -m ./scripts/plan.py
message 字段为有效截止时间(北京时间),校验通过message 小于等于当前时间,引导用户开通套餐,终止流程python3.12 -m ./scripts/upgrade.py
{"code":"0","message":"success","data":"{\"install_command\":\"\",\"latest_version\":\"1.0.0\",\"latest_version_number\":100000000,\"update_message\":\"\"}"}
latest_version:最新版本号(如 "1.0.0")install_command:新版本安装指令检测到技能有新版本 {latest_version},是否更新?(是/否)
install_command 安装新版本用户请求 → 强制前置校验 → 用户提供图片 → 图片抠图 → 结果返回
mkdir -p /tmp/openclaw/byted-kickart-saliency-segmenter/outputsegment_<timestamp>_<random>.json步骤0:强制前置校验(必须按顺序执行,任意不通过直接终止流程)
步骤1:图片上传引导
/Users/user/image1.jpg,/Users/user/image2.jpg)https://example.com/image1.jpg,https://example.com/image2.jpg)/Users/user/images.zip)步骤2:图片预处理
mkdir -p /tmp/openclaw/byted-kickart-saliency-segmenter/input
unzip -o "<ZIP文件路径>" -d /tmp/openclaw/byted-kickart-saliency-segmenter/input/extracted/
mkdir -p /tmp/openclaw/byted-kickart-saliency-segmenter/input
curl -L -o /tmp/openclaw/byted-kickart-saliency-segmenter/input/downloaded_image_<index>.jpg "<图片URL>"
ls -la "<图片路径>"file "<图片路径>" | grep -qE "image" && echo "valid" || echo "invalid"文件不可用,请检查路径是否正确,或确认文件为有效图片格式(JPEG/PNG/WEBP)
步骤3:上传图片获取媒资信息
python3.12 ./scripts/upload.py --file <图片路径> 命令| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 媒资ID(唯一标识) |
url | string | 图片访问URL |
步骤4:调用工具批量图片抠图
执行批量抠图命令:
python3.12 ./scripts/segment.py --media-ids <媒资ID1>,<媒资ID2>,<媒资ID3>
参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
--media-ids | string | 步骤3获取的媒资ID列表,用逗号分隔 |
执行流程:
返回结果说明(JSON格式):
{
"code": "0",
"message": "success",
"data": {
"total_count": 3,
"success_count": 2,
"failed_count": 1,
"results": [
{
"media_id": "<媒资ID1>",
"success": true,
"data": "<抠图结果数据1>"
},
{
"media_id": "<媒资ID2>",
"success": false,
"error": "错误信息"
}
]
}
}
单张图片上传成功模板:
📤 图片上传成功!
🆔 媒资ID: {media_id}
🔗 图片URL: [点击查看]({url})
📊 分辨率: {width}x{height}
批量图片上传成功模板:
📤 批量图片上传成功!
共上传 {count} 张图片,媒资ID列表:
{media_id_list}
单张图片抠图成功模板:
✨ 智能抠图成功!
🎯 主体图片:[点击预览]({subject_url})
🎭 蒙版图片:[点击预览]({mask_url})
📂 文件空间路径:
- 主体图片:media/outbound/{task_id}/subject.png
- 蒙版图片:media/outbound/{task_id}/mask.png
批量图片抠图成功模板:
✨ 批量智能抠图完成!
📊 处理结果:
- 总数:{total_count} 张
- 成功:{success_count} 张
- 失败:{failed_count} 张
{success_results}
{failed_results}
批量抠图成功结果列表(每条):
✅ 图片 {index}:
🎯 主体:[点击预览]({subject_url})
🎭 蒙版:[点击预览]({mask_url})
📂 文件路径:media/outbound/{task_id}/
批量抠图失败结果列表(每条):
❌ 图片 {index}:{error_code} - {error_message}
💡 处理建议:{suggestion}
失败结果处理说明:失败的图片需要根据错误码匹配「错误处理规范」中的对应错误码,展示完整的错误描述和用户处理建议。示例:
所有错误必须明确告知原因和可执行解决方案,禁止模糊提示!!!
| 错误码 | 错误描述 | 详细说明 | 用户处理建议 |
|---|---|---|---|
| 0 | 无返回值 | 接口调用成功,但服务返回结果为空 | 请稍后重试,如问题持续请联系火山技术支持 |
| 1400 | ParamErr参数错误 | 参数错误 | 联系技术支持 |
| 1402 | 创点不足 | 调用接口时,用户账户的创点额度不足 | 请前往 创点充值页面 充值创点或升级套餐 |
| 1410 | 服务ID不存在 | 调用接口时,输入参数中包含了不存在的服务ID | |
| 1411 | 输入分辨率错误 | 调用接口时,输入参数中的图片或视频分辨率不符合要求 | 请检查素材分辨率是否符合规格要求(如≥480p) |
| 1412 | 图片格式错误 | 调用接口时,输入参数中包含了非支持的图片格式 | 请检查图片格式是否为 jpg、png 等支持的格式 |
| 1413 | 无效的媒体URL错误 | 调用接口时,输入参数中包含了无效的媒体URL | 请检查您提供的URL是否正确,避免包含特殊字符或格式错误 |
| 1414 | 输入包含敏感信息错误 | 调用接口时,输入参数中包含了敏感信息,如个人隐私数据等 | 暂不可生成带人物的营销视频,请等待后续版本更新 |
| 1415 | 输出包含敏感信息错误 | 调用接口时,服务返回结果中包含了敏感信息,如个人隐私数据等 | 暂不可生成带人物的营销视频,请等待后续版本更新 |
| 1416 | 输入媒体数量错误 | 用户输入的素材数量超过限制 | 提供的媒体素材数量超出限制,多出的素材可能不会使用 |
| 1417 | 大模型调用错误 | 模型调用出错,通常是输入参数错误 | 媒体素材处理存在问题,请重新尝试,如问题持续请联系火山技术支持 |
| 1418 | 时长计费参数错误 | 提交时入参时间有问题 | 要求的成片时长不符合技能要求,请按照0-60s的时长限制提交制作需求,如问题持续请联系火山技术支持 |
| 1501 | 用户套餐过期 | 调用接口时,用户套餐已过期 | 请前往 套餐开通页面 开通套餐 |
| 100010 | 签名验证失败 | AK/SK签名验证失败 | 请检查您提供的火山鉴权AK/SK是否正确,可访问火山引擎控制台确认 |
| 100013 | 缺少服务权限 | 缺少iccloud_muse服务的RegisterArkClawCombo权限 | 您的企业账号未开通Kickart权限,请联系火山主账号管理员为您开通,或详询火山技术支持 |
| x01001 | AK/SK未配置 | 用户未配置AK/SK | 请输入火山鉴权的AK/SK,可访问火山引擎控制台获取 |
| x01010 | 有效套餐缺失 | 素材上传出现错误,通常是套餐原因 | 请前往 套餐开通页面 开通套餐 |
| A0101 | Session元数据格式错误 | 接口传入的Session元数据格式错误 | 稍后重试,如问题持续请联系火山技术支持 |
| 1600 | 任务不存在 | 查询任务状态时,指定的任务ID不存在 | 请确认任务ID是否正确,或任务已被删除 |
| 其他 | - | 未明确列出的其他错误情况 | 稍后重试,如问题持续请联系火山技术支持 |