AI 魔镜项目示例。实现思路:采集用户人像(摄像头或指定文件夹),选择或生成服装信息,并调用虚拟换装模型生成效果图。
- 数据入口
- 摄像头实时拍摄:
/capture接口调用 OpenCV。 - 本地上传:指定
runtime/uploads/people、runtime/uploads/garments目录,或通过接口上传文件。
- 摄像头实时拍摄:
- AI 能力
- 语音指令:
VoiceService调用 ModelScope Paraformer 中文 ASR,可选 Qwen 模型解析意图。 - 虚拟换装:优先使用 ModelScope 虚拟换装 Diffusion 模型,无法加载时回退到 Stable Diffusion Inpainting。
- 语音指令:
- 后端服务
- FastAPI 提供 REST API,统一调用摄像头、文件管理、换装推理。
GarmentStore负责管理服装正反面素材。
- 运行目录结构
runtime/uploads/people:人像输入。runtime/uploads/garments:服装素材。runtime/results:换装结果。runtime/models:模型缓存,便于国内镜像加速。
- Python >= 3.10,具备 CUDA 的机器可加速。
- 安装依赖:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple- 建议提前通过 ModelScope CLI 下载模型,加快国内访问速度:
pip install modelscope-cli
modelscope download --model_damo/cv_diffusion_text-guided-virtual-try-on- 启动后端:
uvicorn app.main:app --host 0.0.0.0 --port 8000- 可选:启动目录监控脚本,自动捕捉新文件。
python scripts/watchers.pyPOST /capture:从摄像头采集图片。POST /garments:上传服装正反面,注册为可复用服装。GET /garments:查看已有服装素材。POST /try-on:执行换装,可指定已有服装 ID、临时图片或语音解析生成的文字描述。POST /voice-command:上传语音文件,返回解析出的服装描述和意图。
详见 app/schemas.py 中的数据结构定义。
- 语音识别:Paraformer (ModelScope
damo/speech_paraformer-large_asr_nat-zh-cn-16k),离线可用。 - 意图解析:阿里通义千问 Qwen-1.5 系列、智谱 GLM-4-9B 等,可本地部署或调用国内云厂商 API。
- 虚拟换装:
- ModelScope 虚拟换装模型(Diffusion Try-On)。
- 或者下载开源
TryOnDiffusion/DressCode/VITON-HD模型离线推理。
- 加速建议:配置本地镜像(如 ModelScope、Pypi 国内镜像),并使用 GPU。
- 集成前端应用(Web/大屏)实时展示结果。
- 增加人体关键点检测、衣物分割,优化换装区域。
- 加入任务队列(Celery/Redis)处理批量换装任务。
- 引入本地说话人识别、身份验证等安全能力。