SoulX-Singer / DEPLOY.md
Xinsheng-Wang's picture
Upload folder using huggingface_hub
c7f3ffb verified
# 🚀 部署到 Hugging Face Space 指南
本指南将帮助您将 SoulX-Singer 部署到 Hugging Face Space。
## 📋 前置要求
1. **Hugging Face 账号**:如果没有,请先注册 [huggingface.co](https://huggingface.co/join)
2. **Git**:确保已安装 Git
3. **Hugging Face CLI**(可选但推荐):`pip install huggingface_hub`
## 🎯 部署步骤
### 方法一:通过 Web 界面创建(推荐)
#### 步骤 1:准备代码仓库
确保您的代码已准备好:
-`app.py` - Space 入口文件
-`webui.py` - Gradio 界面代码
-`requirements.txt` - Python 依赖
-`README.md` - 包含 Space 配置的 YAML 头部
#### 步骤 2:创建 Space
1. 访问 [huggingface.co/spaces](https://huggingface.co/spaces)
2. 点击 **"Create new Space"** 按钮
3. 填写 Space 信息:
- **Space name**: 例如 `SoulX-Singer``soulx-singer-demo`
- **SDK**: 选择 **Gradio**
- **Hardware**: 推荐选择 **GPU T4 small**(推理更快,首次下载模型后缓存)
- **Visibility**: 选择 Public(公开)或 Private(私有)
4. 点击 **"Create Space"**
#### 步骤 3:上传代码
**选项 A:使用 Git 推送(推荐)**
```bash
# 1. 在本地代码目录初始化 Git(如果还没有)
git init
git add .
git commit -m "Initial commit for HF Space"
# 2. 添加 Hugging Face 远程仓库
# 替换 YOUR_USERNAME 和 YOUR_SPACE_NAME
git remote add origin https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME
# 3. 推送代码
git push -u origin main
```
**选项 B:使用 Web 界面上传**
1. 在 Space 页面点击 **"Files and versions"** 标签
2. 点击 **"Add file"****"Upload files"**
3. 拖拽或选择以下必需文件:
- `app.py`
- `webui.py`
- `requirements.txt`
- `README.md`
- `soulxsinger/` 目录(整个文件夹)
- `preprocess/` 目录(整个文件夹)
- `cli/` 目录(整个文件夹)
- `example/` 目录(整个文件夹)
- `assets/` 目录(整个文件夹)
- 其他配置文件(如 `LICENSE`, `.gitignore` 等)
#### 步骤 4:等待构建和首次运行
1. Space 会自动检测到代码并开始构建
2. 查看 **"Logs"** 标签页监控构建进度
3. 首次运行会:
- 安装 `requirements.txt` 中的依赖
- 执行 `app.py`
- **自动下载** `Soul-AILab/SoulX-Singer``Soul-AILab/SoulX-Singer-Preprocess` 模型(可能需要 5-15 分钟,取决于网络速度)
4. 构建完成后,Space 会自动启动,您可以在 **"App"** 标签页看到界面
### 方法二:使用 Hugging Face CLI
```bash
# 1. 安装 Hugging Face Hub CLI
pip install huggingface_hub
# 2. 登录(会打开浏览器)
huggingface-cli login
# 3. 创建 Space(替换 YOUR_USERNAME 和 YOUR_SPACE_NAME)
huggingface-cli repo create YOUR_SPACE_NAME --type space --sdk gradio
# 4. 克隆 Space 仓库
git clone https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME
cd YOUR_SPACE_NAME
# 5. 复制代码文件到 Space 目录
# (将当前代码目录的所有文件复制过来)
# 6. 提交并推送
git add .
git commit -m "Deploy SoulX-Singer to HF Space"
git push
```
## ⚙️ Space 配置说明
Space 配置在 `README.md` 的 YAML 头部:
```yaml
---
title: SoulX-Singer
emoji: 🎤
sdk: gradio
sdk_version: "6.3.0"
app_file: app.py
python_version: "3.10"
suggested_hardware: t4-small # 取消注释以启用 GPU
---
```
### 硬件选择建议
- **CPU Basic**: 免费,但推理速度较慢,适合测试
- **GPU T4 Small**: 推荐,推理速度快,首次下载模型后缓存
- **GPU T4 Medium/Large**: 适合高并发或更复杂的推理
### 修改硬件配置
1. 进入 Space 页面
2. 点击 **"Settings"** 标签
3. 在 **"Hardware"** 部分选择所需硬件
4. 保存后 Space 会重启
## 🔍 故障排查
### 问题 1:构建失败
**检查点:**
- ✅ `requirements.txt` 中所有依赖版本是否兼容
- ✅ `app.py` 文件是否存在且可执行
- ✅ `README.md` 的 YAML 配置是否正确
**查看日志:**
- 在 Space 页面的 **"Logs"** 标签查看详细错误信息
### 问题 2:模型下载失败
**可能原因:**
- 网络连接问题
- Hugging Face Hub 认证问题
**解决方案:**
- 确保 Space 有网络访问权限(默认有)
- 如果使用私有模型,需要在 Space Settings 中添加 HF Token
### 问题 3:应用启动后无法访问
**检查点:**
- ✅ `app.py` 中 `server_name="0.0.0.0"` 已设置
- ✅ 端口使用环境变量 `PORT`(Space 会自动注入)
- ✅ 查看 **"Logs"** 确认应用是否成功启动
### 问题 4:内存不足
**解决方案:**
- 升级到更大的硬件(T4 Medium/Large)
- 或优化代码,减少内存占用
## 📝 重要提示
1. **首次运行时间**:首次部署时,模型下载可能需要 5-15 分钟,请耐心等待
2. **模型缓存**:下载的模型会缓存在 Space 的存储中,重启后无需重新下载
3. **存储限制**:免费 Space 有存储限制,确保模型文件不会超过限制
4. **自动重启**:Space 会在代码更新后自动重启
5. **日志查看**:遇到问题时,首先查看 **"Logs"** 标签页的详细日志
## 🔗 相关链接
- [Hugging Face Spaces 文档](https://huggingface.co/docs/hub/spaces)
- [Gradio 文档](https://gradio.app/docs/)
- [SoulX-Singer 模型页面](https://huggingface.co/Soul-AILab/SoulX-Singer)
- [SoulX-Singer-Preprocess 模型页面](https://huggingface.co/Soul-AILab/SoulX-Singer-Preprocess)
## ✅ 部署检查清单
部署前确认:
- [ ] `app.py` 文件存在且正确
- [ ] `requirements.txt` 包含所有依赖(包括 `huggingface_hub`)
- [ ] `README.md` 包含正确的 YAML 配置
- [ ] 所有必需的代码文件都已上传
- [ ] `.gitignore` 正确配置(排除 `pretrained_models/` 和 `outputs/`)
- [ ] Space 硬件配置合适(推荐 GPU T4 Small)
部署后验证:
- [ ] Space 构建成功(无错误日志)
- [ ] 模型自动下载完成
- [ ] Web 界面可以正常访问
- [ ] 可以上传音频文件进行测试
- [ ] 推理功能正常工作
---
**祝部署顺利!** 🎉