# 🚀 部署到 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 界面可以正常访问 - [ ] 可以上传音频文件进行测试 - [ ] 推理功能正常工作 --- **祝部署顺利!** 🎉