Byted Kickart Ai Beauty

API key required
Security

分析用户输入的图片,对画面中的人智能美颜,输出美颜后的图片,支持单张JPG、PNG格式,也支持多张图片URL或批量处理压缩包中的图片文件。当用户提及美颜、美化、美白、磨皮、瘦脸、人像美化、照片美颜、自动美颜、AI美颜时触发使用

Install

openclaw skills install byted-kickart-ai-beauty-skill

智能美颜SKILL

📋 工具说明

核心功能

分析用户输入的图片,对画面中的人智能美颜,输出美颜后的图片。

可用命令

命令功能说明
python scripts/plan.py套餐查询查询用户当前的 Ark Claw 套餐
python scripts/beauty.py --file <图片路径> --output <输出文件>智能美颜处理对图片进行智能美颜处理

📥 图片获取方式

支持以下四种方式获取图片:

  1. 本地文件:直接提供本地图片文件的绝对路径
  2. 网络图片URL:直接提供网络图片URL地址,无需先下载,工具自动处理
  3. 多张图片URL:提供多个图片URL,用逗号分隔,工具依次处理并打包为zip返回
  4. 图片压缩包:用户可以上传一个包含多张图片的压缩包,直接将压缩包路径传给beauty.py,工具会自动解压并处理其中的所有图片,无需手动解压。

🚨 强制前置校验流程(必须按顺序执行,任意不通过直接终止流程)

所有用户请求必须先完成以下3步校验,不得跳过:

1. 火山鉴权校验

  • 执行环境变量检查命令:
    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"
    
  • 判断鉴权结果(按优先级):
    • 第一优先级(Bearer Token)ARK_SKILL_API_BASEARK_SKILL_API_KEY 均为非空值 → 鉴权通过
    • 第二优先级(AK/SK签名)ACCESS_KEY_IDSECRET_ACCESS_KEY 均为非空值 → 鉴权通过
    • 鉴权不通过:执行以下引导方案

❌ 鉴权未配置时的引导方案

  1. 引导用户直接在聊天中发送ACCESS_KEY_ID/SECRET_ACCESS_KEY内容:

    直接在此处发送您的Access Key ID和Secret Access Key,我会帮您完成临时环境变量配置

  2. 收到用户发送的ACCESS_KEY_ID/SECRET_ACCESS_KEY后,执行配置命令:
    export ACCESS_KEY_ID=用户提供的ACCESS_KEY_ID值
    export SECRET_ACCESS_KEY=用户提供的SECRET_ACCESS_KEY值
    
  3. 配置完成后告知用户:

    已完成ACCESS_KEY_ID/SECRET_ACCESS_KEY临时配置,当前配置仅在本次会话生效,不会持久化存储,请放心使用

  4. 后续所有相关脚本执行时,均会自动通过export指定这两个环境变量,确保鉴权正常,无需用户重复配置

2. 套餐有效性校验

  • 步骤1:Python版本校验
    python3.12 --version || (echo "❌ Python 3.12+ 未安装,请先安装Python 3.12" && exit 1)
    
  • 步骤2:依赖包安装校验
    python3.12 -m pip install -r ./scripts/requirements.txt
    
  • 步骤3:执行套餐查询命令
    python scripts/plan.py
    
  • 步骤4:结果处理逻辑
    • 套餐有效:返回结果中的 message 字段为有效截止时间(北京时间),校验通过
    • 套餐已过期message 小于等于当前时间,引导用户开通套餐,终止流程
    • 接口调用错误:参考「错误处理规范」匹配错误码,向用户明确告知错误原因和解决方案,并且终止流程

🛠️ 智能美颜处理执行流程

前置准备

  1. 确保输出目录存在:mkdir -p /tmp/openclaw/ai-beauty/output
  2. 生成唯一输出文件名:ai_beauty_<timestamp>_<random>.json
  3. 准备本地图片文件:支持JPG、PNG格式,也支持批量图片压缩后的压缩包。

输入类型自动识别

  • 图片压缩包:路径以 .zip, tar, tar.gz 等压缩包格式结尾 → 自动解压并批量处理,直接传入压缩包路径即可,无需手动解压
  • 多张URL:包含逗号且包含 http://https:// → 依次处理每张URL并打包为zip
  • 单张图片/URL:其他情况 → 单张图片处理

执行步骤

  1. 输入:用户提供的本地图片文件路径、图片URL、多个图片URL(逗号分隔)、或图片压缩包路径
  2. 工具调用:执行 python scripts/beauty.py --file <输入路径/URL> --output <输出文件> 命令
  3. 输出:JSON格式的处理结果

输出JSON格式说明

单张图片

处理成功:

{
  "image_name": "原图片文件名",
  "result_url": "美颜后的图片URL"
}

处理失败:

{
  "image_name": "原图片文件名",
  "error_code": "错误码",
  "error_msg": "错误原因"
}

批量URL或图片压缩包

{
  "success_count": 3,
  "failed_count": 1,
  "total_count": 4,
  "results": [
    {
      "image_name": "原图片文件名1",
      "result_url": "美颜后的图片URL",
      "success": true
    },
    {
      "image_name": "原图片文件名2",
      "error_code": "错误码",
      "error_msg": "错误原因",
      "success": false
    }
  ],
  "zip_path": "/path/to/beauty_images.zip"
}
字段类型说明
success_countint成功处理的图片数量
failed_countint处理失败的图片数量
total_countint总图片数量
resultsarray所有图片的处理结果列表
zip_pathstring打包好的所有美颜后图片的本地zip路径

results数组中每个元素的字段说明:

字段类型说明
image_namestring原始图片文件名
result_urlstring成功时返回美颜后的图片URL
successbool处理是否成功
error_codestring失败时返回错误码(0表示成功,其他为错误码)
error_msgstring失败时返回错误原因

返回格式说明

❌ 禁止自由发挥,补充其他内容,如文字描述、图片描述等 ❌ 禁止返回美颜的优化细节,只返回美颜后的图片URL或ZIP包下载链接 ❌ 禁止返回脚本执行的中间细节,比如任务ID、处理时间等,只返回美颜后的图片URL或ZIP包下载链接

严格按照以下格式返回给用户

单张图片输入场景

  1. ✅ 处理完成状态
  2. 🔗 带完整签名的火山链接URL(可点击)

正向示例1 ✅ AI美颜处理成功!请点击链接预览或下载图片(有效期24小时,请及时下载): https://example.com/beauty.jpg

正向示例2 ❌ AI美颜处理失败!未检测到人脸,请上传包含清晰人脸的图片重试

批量URL输入场景

  1. ✅ 处理完成状态
  2. 🔗 每张图对应的完整签名的火山链接URL(可点击)
  3. 📚 压缩包本地路径

正向示例3 ✅ AI美颜处理成功!请点击链接预览或下载图片(有效期24小时,请及时下载): image1:https://example.com/beauty1.jpg image2:https://example.com/beauty2.jpg 打包下载路径:/path/to/beauty_results.zip

正向示例4 ✅ AI美颜处理成功!请点击链接预览或下载图片(有效期24小时,请及时下载): image1:https://example.com/beauty1.jpg image4:https://example.com/beauty3.jpg image2,image3:[脚本返回的具体失败原因] 打包下载路径:/path/to/beauty_results.zip

图片压缩包输入场景

  1. ✅ 处理完成状态
  2. 🔗 压缩包本地路径

正向示例5 ✅ AI美颜处理成功!请及时下载美颜后的图片压缩包: 打包下载路径:/path/to/beauty_results.zip

正向示例6 ✅ AI美颜处理成功!

  • 成功处理4/6张图片
  • 失败2张图片,sample1.jpg: [失败原因1], sample2.jpg: [失败原因2] 打包下载路径:/path/to/beauty_results.zip

正向示例7 ❌ AI美颜处理失败!所有的图片都未检测到人脸,请上传包含清晰人脸的图片重试

Agent执行特殊要求

  1. 超时设置:调用exec工具启动脚本时,设置≥180000ms(3分钟)的yieldMs
  2. 友好提示:若脚本未立即返回结果,先回复用户:"正在为您进行美颜处理,任务执行时间可能较长,请您稍候~"
  3. 异常处理:若脚本因超时/异常退出,立即使用持久化的Task ID调用任务查询接口确认后端状态,禁止直接判定任务失败
  4. 返回结果:单张图直接返回图片URL;批量图片处理返回zip包下载链接,如果zip文件太大无法直接发送,返回zip包路径
  5. 批量处理:若用户上传的是图片压缩包,工具会自动解压并处理其中的所有图片,自动下载所有美颜后的图片并打包为zip包,无需额外手动下载打包。

⚠️ 错误处理规范

所有错误必须明确告知原因和可执行解决方案,禁止模糊提示!!!

错误码错误描述详细说明用户处理建议
0无返回值接口调用成功,但服务返回结果为空请稍后重试,如问题持续请联系火山技术支持
1400ParamErr参数错误参数错误联系技术支持
1402创点不足调用接口时,用户账户的创点额度不足请前往 创点充值页面 充值创点或升级套餐
1410服务ID不存在调用接口时,输入参数中包含了不存在的服务ID
1411输入分辨率错误调用接口时,输入参数中的图片或视频分辨率不符合要求请检查素材分辨率是否符合规格要求(如≥480p)
1412图片格式错误调用接口时,输入参数中包含了非支持的图片格式请检查图片格式是否为 jpg、png 等支持的格式
1413无效的媒体URL错误调用接口时,输入参数中包含了无效的媒体URL请检查您提供的URL是否正确,避免包含特殊字符或格式错误
1416输入媒体数量错误用户输入的素材数量超过限制提供的媒体素材数量超出限制,多出的素材可能不会使用
1417大模型调用错误模型调用出错,通常是输入参数错误媒体素材处理存在问题,请重新尝试,如问题持续请联系火山技术支持
1501用户套餐过期调用接口时,用户套餐已过期请前往 套餐开通页面 开通套餐
100010签名验证失败AK/SK签名验证失败请检查您提供的火山鉴权AK/SK是否正确,可访问火山引擎控制台确认
100013缺少服务权限缺少iccloud_muse服务的RegisterArkClawCombo权限您的企业账号未开通Kickart权限,请联系火山主账号管理员为您开通,或详询火山技术支持
x01001AK/SK未配置用户未配置AK/SK请输入火山鉴权的AK/SK,可访问火山引擎控制台获取
x01010有效套餐缺失素材上传出现错误,通常是套餐原因请前往 套餐开通页面 开通套餐
2000URL不合法或未检测到人脸提交的URL格式错误或未检测到人脸请检查URL是否正确,仅支持人脸图进行美颜处理
其他-未明确列出的其他错误情况稍后重试,如问题持续请联系火山技术支持