| 功能 |
描述 |
| 👗 衣橱管理 |
上传、分类、搜索衣物,支持多衣橱管理和收藏功能 |
| ✂️ AI 抠图 |
使用 rembg(u2net)一键去除衣物背景,自动裁剪为透明 PNG |
| 🎨 智能打标 |
基于通义千问 VL(qwen-vl-plus)识别衣物颜色、材质、风格、季节 |
| 🤖 智能搭配 |
DeepSeek LLM 根据天气、场合、冷宫唤醒自动推荐穿搭方案 |
| 🌤️ 天气推荐 |
接入 wttr.in 实时天气,按温度/天气推荐适合的穿搭 |
| 📅 穿搭日历 |
按日历记录每日穿搭,自动统计穿着次数 |
| 🎒 打包清单 |
旅行打包清单管理,AI 自动按天分配衣物 |
| 📊 数据统计 |
衣橱概览、穿着排行、冷宫衣物、每次穿着成本分析 |
| 🎭 AI 插画 |
通义万相将衣物平铺图转换为 Q 版动漫风格穿搭插画 |
| 👤 用户系统 |
注册/登录、头像上传、个人信息管理、每日穿搭提醒 |
| 🔗 分享功能 |
一键生成穿搭分享图片,拼接衣物图+日期天气信息 |
- Python 3.12+
- Node.js 18+
- Conda(推荐)
# 1. 克隆项目
git clone https://github.com/dirjaker/vestio.git
cd vestio
# 2. 创建并激活虚拟环境
conda create -n vestio python=3.12 -y
conda activate vestio
# 3. 安装后端依赖
pip install -r requirements.txt
# 4. 安装前端依赖
cd frontend && npm install && cd ..
# 5. 配置环境变量
cp backend/.env.example backend/.env
# 编辑 backend/.env,填入 API Key
# 6. 构建前端
cd frontend && npm run build && cd ..
# 7. 启动服务(前后端统一端口)
cd backend && python main.py
在 backend/.env 中配置以下变量:
| 变量 |
必填 |
说明 |
SECRET_KEY |
否 |
JWT 密钥(生产环境必须修改) |
DASHSCOPE_API_KEY |
否 |
阿里云百炼 API Key(衣物打标 + AI 插画) |
DEEPSEEK_API_KEY |
否 |
DeepSeek API Key(穿搭推荐) |
QWEATHER_API_KEY |
否 |
和风天气 API Key(天气查询) |
CORS_ORIGINS |
否 |
CORS 允许的源(默认 http://localhost,http://127.0.0.1) |
┌─────────────────────────────────────────────────────────┐
│ 前端 (Vue 3 + Naive UI) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────┐ │
│ │ 衣橱管理 │ │ 穿搭推荐 │ │ 风格分析 │ │ 打包清单 │ │
│ └──────────┘ └──────────┘ └──────────┘ └────────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────┐ │
│ │ 穿搭日历 │ │ 数据统计 │ │ AI 插画 │ │ 天气查看 │ │
│ └──────────┘ └──────────┘ └──────────┘ └────────────┘ │
└────────────────────────┬────────────────────────────────┘
│ HTTP API (JWT Auth)
┌────────────────────────┴────────────────────────────────┐
│ 后端 (FastAPI) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────┐ │
│ │ 认证模块 │ │ 衣物管理 │ │ 穿搭引擎 │ │ 统计分析 │ │
│ └──────────┘ └──────────┘ └──────────┘ └────────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────┐ │
│ │ 天气服务 │ │ 抠图服务 │ │ 打标服务 │ │ 插画生成 │ │
│ └──────────┘ └──────────┘ └──────────┘ └────────────┘ │
│ │
│ ┌──────────┐ ┌──────────────────────────────────────┐ │
│ │ SQLite │ │ AI 模型 │ │
│ │ (异步) │ │ 通义千问VL / DeepSeek / 通义万相 │ │
│ └──────────┘ └──────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
vestio/
├── backend/ # FastAPI 后端
│ ├── main.py # 应用入口(含 SPA 中间件)
│ ├── .env.example # 环境变量模板
│ └── app/
│ ├── api/ # API 路由
│ │ ├── auth.py # 注册/登录
│ │ ├── garments.py # 衣物 CRUD
│ │ ├── outfits.py # 穿搭记录 + 日历
│ │ ├── recommend.py# 穿搭推荐
│ │ ├── wardrobes.py# 多衣橱管理
│ │ ├── packing.py # 打包清单
│ │ ├── stats.py # 数据统计
│ │ ├── weather.py # 天气查询
│ │ ├── ai.py # AI 智能助手
│ │ ├── share.py # 分享图片生成
│ │ └── user.py # 用户信息
│ ├── core/ # 核心模块
│ │ ├── config.py # 配置管理(pydantic-settings)
│ │ ├── database.py # SQLAlchemy 异步引擎
│ │ ├── security.py # JWT + bcrypt
│ │ └── categories.py# 统一衣物分类标准
│ ├── models/ # ORM 模型
│ │ ├── user.py # 用户
│ │ ├── garment.py # 衣物
│ │ ├── outfit.py # 穿搭记录
│ │ ├── wardrobe.py # 衣橱
│ │ ├── packing_list.py # 打包清单
│ │ └── recommend_log.py # 推荐日志
│ ├── schemas/ # Pydantic 数据模型
│ └── services/ # 业务逻辑
│ ├── recommend.py # 推荐算法(LLM + 降级)
│ ├── llm_tag.py # 视觉模型打标
│ ├── bg_remove.py # rembg 抠图
│ ├── weather.py # 天气查询
│ ├── wanx.py # 通义万相插画生成
│ └── task_manager.py # 异步任务管理
├── frontend/ # Vue 3 + Naive UI 前端
│ ├── src/
│ │ ├── views/ # 页面组件
│ │ │ ├── WardrobeView.vue # 衣橱主页
│ │ │ ├── RecommendView.vue # 穿搭推荐
│ │ │ ├── CalendarView.vue # 穿搭日历
│ │ │ ├── StatsView.vue # 数据统计
│ │ │ ├── AIView.vue # AI 助手
│ │ │ ├── PackingView.vue # 打包清单
│ │ │ ├── WeatherView.vue # 天气查看
│ │ │ ├── OutfitBuilder.vue # 搭配构建器
│ │ │ ├── ProfileView.vue # 个人中心
│ │ │ └── LoginView.vue # 登录/注册
│ │ ├── stores/ # Pinia 状态管理
│ │ ├── api/ # Axios API 封装
│ │ ├── router/ # Vue Router
│ │ └── themes.js # 毛玻璃暗色主题
│ └── public/
├── docs/ # 项目文档
├── static/ # 静态资源(上传/插画/分享图)
├── requirements.txt # Python 依赖
└── LICENSE # MIT 许可证
| 层级 |
技术 |
| 前端 |
Vue 3.5、Naive UI、Pinia、Vue Router、Vite 8 |
| 后端 |
FastAPI 0.136、SQLAlchemy 2.0(异步)、Pydantic 2.x |
| 数据库 |
SQLite + aiosqlite |
| 认证 |
JWT(PyJWT)+ bcrypt 密码哈希 |
| AI 视觉 |
通义千问 VL(qwen-vl-plus)— 衣物图片分类打标 |
| AI 文本 |
DeepSeek Chat — 穿搭推荐理由生成 |
| AI 图像 |
通义万相(wan2.7-image)— 动漫风格插画生成 |
| 抠图 |
rembg(u2net,本地推理,无需 API) |
| 天气 |
wttr.in(免费 API,无需 Key)/ 和风天气 |
| 图片处理 |
Pillow + PIL |
MIT License