- lora_train_service_1.py: 将 sudo docker run 命令替换为本地 python -m accelerate.commands.launch,通过 PYTHONPATH 复用 .local/ 下的 torch/accelerate/bitsandbytes 等包 - setup.sh: 添加 kohya 环境到 conda-pack 恢复列表 - start_all_services.sh: 导出 CONDA_BASE 供 photo_service 读取 - README.md: 添加 kohya.tar.gz 到网盘下载清单 - 已验证: 训练命令可完整执行(加载底模→创建LoRA→训练→保存)
118 lines
3.3 KiB
Markdown
118 lines
3.3 KiB
Markdown
# 换发型项目
|
||
|
||
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 <repo_url> ~/change_hair_3090
|
||
cd ~/change_hair_3090
|
||
```
|
||
|
||
### 2. 下载网盘文件
|
||
|
||
将网盘上的以下目录/文件下载到项目根目录(与代码合并):
|
||
|
||
| 路径 | 大小 | 说明 |
|
||
|------|------|------|
|
||
| hair_service_sd/weights/ | 10G | 换发算法模型 |
|
||
| stable-diffusion-webui/models/ | 41G | SD模型 + LoRA + 辅助模型 |
|
||
| stable-diffusion-webui/extensions/sd-webui-controlnet/ | 4.4G | ControlNet 扩展 |
|
||
| stable-diffusion-webui/repositories/ | 225M | SD 依赖仓库 |
|
||
| kohya_ss_home/.local/ | 7.6G | 训练 pip 包 |
|
||
| kohya_ss_home/.cache/ | 3.3M | CLIP 缓存 |
|
||
| kohya_ss_home/kohya_ss/ | 439M | 训练代码 |
|
||
| data/ | 4.9G | 业务数据 |
|
||
| conda_envs/my_hair.tar.gz | ~5G | conda 环境(换发算法) |
|
||
| conda_envs/sdwebui.tar.gz | ~4G | conda 环境(SD WebUI) |
|
||
| conda_envs/kohya.tar.gz | 84M | conda 环境(LoRA 训练,仅含 Python+numpy,大包在 .local/) |
|
||
|
||
### 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`。
|