Install
openclaw skills install nano-banana-cutAI图片生成与智能切割工具,基于AceData Nano Banana模型,支持多分辨率多尺寸生成,自动切割为2/4/6/9宫格,自带瀑布流作品管理、批量下载功能。使用场景:(1) 输入prompt生成AI图片并自动切割成九宫格等多宫格 (2) 上传图片进行智能多宫格切割 (3) 管理生成的图片作品,支持打包下载
openclaw skills install nano-banana-cutbanana-cut 是一个功能强大的 AI 图片生成与智能切割工具,基于 AceData Nano Banana 系列模型,提供完整的 Web 界面进行图片生成、切割和管理。
cd C:\Users\86137\.openclaw\workspace\skills\banana-cut
python server.py
访问地址:http://localhost:697
首次访问会自动弹出配置窗口,需要填写:
获取密钥:https://share.acedata.cloud/r/1uN88BrUTQ
配置会保存到 .env 文件中。
banana-cut/
├── server.py # Flask 主服务器
├── task.py # 独立任务处理脚本
├── cut.py # 图片切割工具
├── upload.py # 图片上传工具
├── set.json # 配置文件(模型、分辨率、质量)
├── prompt.md # 提示词模板
├── .env # 环境变量(API密钥)
├── .env.example # 环境变量示例
├── SKILL.md # 本文档
├── data/
│ └── works.db # SQLite 数据库
└── templates/
├── index.html # 主页面(瀑布流)
└── admin.html # 管理后台
{
"server": {
"url": "https://api.acedata.cloud/nano-banana/images",
"task_url": "https://api.acedata.cloud/nano-banana/tasks",
"upload_url": "https://platform.acedata.cloud/api/v1/files/",
"apikey": ""
},
"models": [
{"name": "Nano Banana Pro", "model": "nano-banana-pro", "logo": "🍌"},
{"name": "Nano Banana 2", "model": "nano-banana-2", "logo": "🍌"}
],
"resolutions": [
{"name": "1:1 方形", "ratio": "1:1", "icon": "■"},
{"name": "16:9 横屏", "ratio": "16:9", "icon": "▬"},
{"name": "9:16 竖屏", "ratio": "9:16", "icon": "▮"},
{"name": "4:3 标准", "ratio": "4:3", "icon": "▭"},
{"name": "3:4 竖版", "ratio": "3:4", "icon": "▯"}
],
"qualities": [
{"name": "1K (1024px)", "size": "1K", "icon": "🖥️"},
{"name": "2K (2048px)", "size": "2K", "icon": "🖥️"},
{"name": "4K (4096px)", "size": "4K", "icon": "🖥️"}
],
"save_path": "C:/Users/86137/Desktop/banana"
}
注意事项:
apikey 字段已废弃,请使用 .env 文件配置save_path 可自定义图片保存路径# 请访问 https://share.acedata.cloud/r/1uN88BrUTQ 获取以下配置
API_KEY=your-api-key-here
PLATFORM_TOKEN=your-platform-token-here
生成图片时会自动读取该文件,将 {num} 替换为选择的宫格数,可自定义模板内容。
##生成要求:##
严格生成一张{num}宫格的高质量图片,每个格子的内容根据输入的提示词完全独立...
##用户要求:##
{prompt}
数据库文件:data/works.db
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INTEGER | 主键,自增 |
| model | TEXT | 使用的模型 |
| date | TEXT | 生成日期,格式 YYYY-MM-DD HH:MM:SS |
| state | INTEGER | 状态:1=生成中,10=成功,99=失败,0=文件丢失 |
| prompt | TEXT | 生成提示词 |
| ratio | TEXT | 分辨率比例 |
| quality | TEXT | 图片质量 |
| task_id | TEXT | 模型返回的任务ID |
| num | INTEGER | 切割宫格数:1/2/4/6/9 |
| path | TEXT | 保存目录路径 |
| filename | TEXT | 主图文件名 |
| ext | TEXT | 图片扩展名 |
| request_data | TEXT | 请求参数JSON |
| error | TEXT | 错误信息 |
| respond | TEXT | 接口返回内容JSON |
每个生成任务会创建独立目录:保存路径/YYYYMMDDHHMMSS/
目录下包含:
main.ext:生成的原始主图480p.ext:480P 缩略图1.ext ~ n.ext:切割后的子图(n=宫格数)data.txt:生成信息和参数说明检查配置状态
返回:
{
"success": true,
"msg": "配置正常"
}
保存配置
参数:
{
"api_key": "your-api-key",
"platform_token": "your-platform-token"
}
获取配置(模型、分辨率、质量)
生成图片
参数:
{
"prompt": "图片描述",
"model": 0,
"ratio": 0,
"quality": 1,
"num": 9,
"images": []
}
返回:
{
"success": true,
"msg": "任务提交成功",
"work_id": 1
}
轮询任务状态
返回:
{
"success": true,
"data": {
"state": 10,
"error": "",
"task_id": "xxx",
"respond": {}
}
}
获取所有作品列表
获取单个作品详情
打包下载作品
打开文件目录
上传图片(需要 PLATFORM_TOKEN)
切割图片
参数:
{
"path": "图片路径",
"num": 9,
"out": "输出目录(可选)"
}
获取所有任务(管理后台)
重试任务
关闭任务
删除任务
关闭服务
python cut.py -path 图片路径 -num 9 [-out 输出目录]
参数:
-path:图片路径(必填)-num:宫格数 2/4/6/9(必填)-out:输出目录(可选,默认原图片目录)python task.py -id 任务ID
python task.py -task_id 模型任务ID
参数:
-id:数据库任务ID-task_id:模型返回的任务ID-num:宫格数(可选,默认读取数据库)python upload.py -file 图片路径
症状:自动弹出配置窗口
解决:填写 API_KEY,保存后刷新页面
症状:任务状态为失败
解决:
症状:端口被占用
解决:
# 查看端口占用
netstat -ano | findstr :697
# 结束进程
taskkill /F /PID 进程ID
# 重新启动
python server.py
症状:图片显示异常
解决:刷新页面,前端会重新初始化 Masonry
欢迎提交 Issue 和 Pull Request!
MIT License
email: zhuxi0906@gmail.com 微信 jakeycis 如果有功能开发需求,可以联系我,由于开放语言和方案的改变,这个skill还有一些小BUG没完成。