一个高效、灵活的 LoRA 写真数据集自动构建工具,支持本地 CLI 和 Web UI 两种运行模式,专注于隐私保护和高性能处理。
- Fast dedup (perceptual hash / embedding)
- 自动化处理流程:解压 -> 去重 -> 预览生成 -> 焦点检测 -> 1024x1024 裁剪 -> 智能打标 -> 打包输出
- 超高分辨率支持:轻松处理长边 3000+ 像素甚至 4000 万像素的图片
- 双模式运行:
- 本地 CLI 模式:强隐私、省带宽、速度快
- Web UI 模式:直观操作、进度实时展示、结果预览
- 隐私优先:本地模式无需上传原始图片
编辑 config/ports.json 文件,自定义端口配置:
{
"backend_port": 8081,
"backend_host": "0.0.0.0",
"frontend_port": 8080,
"redis_port": 6379
}cd backend
pip install -r requirements.txt
python -m uvicorn app.main:app --host 0.0.0.0 --port 8081cd frontend
npm install
npm run dev打开浏览器访问:http://localhost:8080
cd client
pip install -r requirements.txt
pip install -e .
# 执行完整处理流程
lora-dataset-builder run-all --input input_root --output output_rootlora-dataset-builder/
├── backend/ # FastAPI后端
│ ├── app/ # 应用核心代码
│ │ ├── api/ # API接口定义
│ │ ├── core/ # 配置和核心功能
│ │ ├── db/ # 数据库配置
│ │ ├── models/ # 数据模型
│ │ ├── services/ # 业务逻辑服务
│ │ └── tasks/ # 异步任务
│ ├── requirements.txt # 后端依赖
│ └── Dockerfile # Docker构建文件
├── client/ # 本地Python CLI工具
│ ├── src/ # CLI源代码
│ ├── requirements.txt # CLI依赖
│ └── setup.py # 安装配置
├── config/ # 配置文件
│ └── ports.json # 端口配置
├── frontend/ # Vue前端应用
│ ├── src/ # 前端源代码
│ │ ├── components/ # Vue组件
│ │ ├── router/ # 路由配置
│ │ ├── services/ # API服务
│ │ └── views/ # 页面视图
│ ├── package.json # 前端依赖
│ └── vite.config.ts # Vite配置
├── docs/ # 文档
└── docker-compose.yml # Docker Compose配置
- 框架:FastAPI 提供高性能 RESTful API
- 数据库:SQLAlchemy + SQLite 轻量级数据存储
- 任务处理:异步任务处理,支持进度实时更新
- 图像处理:Pillow + NumPy 高效图像操作
- 模型调用:兼容 OpenAI SDK 的模型客户端,支持自定义模型服务
- 框架:Vue3 + TypeScript 提供类型安全的开发体验
- UI 组件:Element Plus 构建现代化界面
- 路由:Vue Router 实现单页应用路由
- API 交互:Axios 处理 HTTP 请求,支持 SSE 实时进度
- 解压与初始化:解析上传的 ZIP 文件,创建任务记录
- 智能去重:基于 pHash 和图像特征的高效去重算法
- 预览生成:生成压缩预览图,优化前端加载速度
- 焦点检测:调用视觉模型检测图像核心区域
- 精确裁剪:根据焦点区域裁剪 1024x1024 训练图像
- 智能打标:使用视觉语言模型生成详细图像标签
- 打包输出:生成最终的训练数据集 ZIP 包
- 访问 http://localhost:8080
- 选择上传方式:多个 ZIP 文件或文件夹
- 配置模型参数(可选)
- 点击上传,查看实时进度
- 任务完成后,下载生成的 train_package.zip
在设置页面中,可以配置自定义的模型服务地址和 API 密钥,支持:
- 自定义模型地址
- API 密钥配置
- 焦点检测模型选择
- 打标模型选择
MIT License