# 换发型项目 AI 换发型/换发色/训练发型服务,基于 Stable Diffusion + ControlNet + LoRA。 ## 项目结构 ``` change_hair_3090/ ├── hair_service_sd/ # 换发算法服务 (端口 8801) ├── photo_service/ # LoRA 训练服务 (端口 32678) ├── stable-diffusion-webui/ # SD WebUI 推理服务 (端口 57860) ├── kohya_ss_home/ # kohya_ss 训练环境 ├── data/ # 业务数据(发型参考图、用户图片等) ├── conda_envs/ # conda 环境打包文件 ├── setup.sh # 一键部署脚本 ├── start_all_services.sh # 启动所有服务 └── README.md ``` ## 前提条件 - Ubuntu 22.04 - NVIDIA 3090 GPU + 驱动 - conda (Miniconda/Anaconda) - git ## 部署步骤 ### 1. Clone 代码 ```bash git clone ~/change_hair_3090 cd ~/change_hair_3090 ``` ### 2. 下载网盘文件 将网盘上的 `cloud_packages/` 目录下载到项目根目录。网盘文件已分类打包为 14 个文件(合计约 62G): | 文件 | 大小 | 说明 | |------|------|------| | my_hair.tar.gz | 4.2G | conda 环境(换发算法服务用) | | sdwebui.tar.gz | 3.6G | conda 环境(SD WebUI 用) | | kohya.tar.gz | 84M | conda 环境(LoRA 训练用) | | sd_base_models.tar.gz | 3.6G | SD 底模 | | lora_0-9.tar.gz | 29G | LoRA 模型(约 228 个) | | lora_h.tar.gz | 132M | LoRA 模型 | | lora_n.tar.gz | 132M | LoRA 模型 | | lora_t.tar.gz | 791M | LoRA 模型 | | weights.tar.gz | 9.2G | 换发算法模型 | | kohya_local.tar.gz | 3.4G | 训练 pip 包(torch、accelerate 等) | | kohya_code.tar.gz | 365M | kohya_ss 训练代码 | | data.tar.gz | 3.4G | 业务数据 | | webui_controlnet.tar.gz | 4.1G | ControlNet 扩展 | | webui_repositories.tar.gz | 221M | SD 依赖仓库 | 下载后执行解压脚本: ```bash # 将 cloud_packages/ 目录放到项目根目录后 ./setup.sh ``` ### 3. 运行部署脚本 ```bash chmod +x setup.sh start_all_services.sh ./setup.sh ``` setup.sh 会: 1. 生成 configure.ini(自动替换路径) 2. 恢复 conda 环境(my_hair, sdwebui, kohya 从 conda-pack 恢复;py310 从 yml 创建) 3. 检查模型和数据目录完整性 4. 创建运行时目录 ### 4. 启动服务 ```bash ./start_all_services.sh ``` ## 服务说明 | 服务 | 端口 | conda 环境 | 说明 | |------|------|-----------|------| | hair_service_sd | 8801 | my_hair | 换发型/换发色核心算法 | | stable-diffusion-webui | 57860 | sdwebui | SD 图生图推理 | | photo_service | 32678 | py310 | LoRA 训练调度(训练子进程使用 kohya 环境 + .local 包) | ## 查看日志 ```bash tail -f logs/hair_service.log tail -f logs/webui.log tail -f logs/photo_service.log ``` ## 停止服务 ```bash # 按端口查找并停止 kill $(lsof -t -i:8801) kill $(lsof -t -i:57860) kill $(lsof -t -i:32678) ``` ## 常见问题 ### conda 环境恢复失败 确保 `CONDA_BASE` 环境变量指向你的 conda 安装路径(默认 `/home/szlc/miniconda3`): ```bash export CONDA_BASE=/your/conda/path ./setup.sh ``` ### GPU 不可用 检查 NVIDIA 驱动和 CUDA: ```bash nvidia-smi ``` ### WebUI 启动慢 首次启动需要加载模型(约 30-60 秒),请耐心等待。查看 `logs/webui.log` 确认状态。 ### 路径问题 所有路径通过 `BASE_DIR` 自动推导,`configure.ini` 由 `setup.sh` 自动生成。如需手动修改配置,编辑 `hair_service_sd/config/configure.ini.template` 后重新运行 `setup.sh`。