# 部署前检查清单 ## 文件信息 - **文件路径**: DEPLOY_CHECKLIST.md - **创建时间**: 2025-12-16 - **开发者**: aidaox ## 在推送到 Hugging Face 之前,请逐项检查: ### ✅ 1. 依赖配置检查 - [ ] **requirements.txt** 使用 `onnxruntime`(不是 `onnxruntime-gpu`) - [ ] 所有依赖包都有明确的版本号或兼容版本范围 - [ ] `gradio` 版本 >= 5.29.0(与 README.md 中的 sdk_version 一致) - [ ] `packages.txt` 只包含系统包(如 `ffmpeg`),不包含 Python 包 ### ✅ 2. 代码兼容性检查 - [ ] **SinglePhoto.py** 中的 `ctx_id` 配置: - 当前使用 `ctx_id=0`(会自动回退到 CPU,通常可用) - 如果 Hugging Face 上出现问题,考虑改为 `ctx_id=-1`(明确使用 CPU) - [ ] 没有硬编码的本地路径(如 `C:\Users\...`、`/home/user/...`) - [ ] 所有文件路径使用相对路径 - [ ] 没有引用本地不存在的文件或目录 ### ✅ 3. 文件完整性检查 - [ ] `app.py` 存在且可以正常导入 - [ ] `README.md` 中的 `app_file: app.py` 配置正确 - [ ] `inswapper_128.onnx` 模型文件存在(或会在运行时自动下载) - [ ] 所有必要的 Python 模块文件都存在: - [ ] `SinglePhoto.py` - [ ] `VideoSwapping.py` - [ ] `app.py` ### ✅ 4. 功能测试检查 - [ ] 本地运行 `python test_local.py` 所有检查通过 - [ ] 本地运行 `python app.py` 可以正常启动 - [ ] 测试单张图片换脸功能正常 - [ ] 检查日志输出,没有错误或警告 ### ✅ 5. 性能优化检查(针对免费 CPU 服务器) - [ ] 图片处理大小限制合理(建议不超过 1024x1024) - [ ] 视频处理有合理的时长限制提示 - [ ] 长时间运行的操作有超时处理 - [ ] 临时文件及时清理(代码中已有清理逻辑) ### ✅ 6. Git 提交检查 - [ ] 所有修改已添加到暂存区:`git add .` - [ ] 提交信息清晰描述修改内容 - [ ] 没有提交敏感信息(如 API keys、tokens) - [ ] 没有提交不必要的文件(如 `__pycache__`、`.pyc` 文件) ### ✅ 7. 文档检查 - [ ] `README.md` 中的配置信息正确 - [ ] 项目描述清晰 - [ ] 必要的使用说明已添加 ## 快速检查命令 在推送前,运行以下命令进行快速检查: ```bash # 1. 检查 requirements.txt 是否包含 GPU 依赖 grep -i "gpu" requirements.txt # 应该没有输出,如果有 onnxruntime-gpu,需要改为 onnxruntime # 2. 检查是否有硬编码路径 grep -r "C:\\\\Users" . --include="*.py" grep -r "/home/" . --include="*.py" # 应该没有输出 # 3. 运行本地测试 python test_local.py # 4. 检查 Git 状态 git status ``` ## 推送步骤 1. **提交所有修改**: ```bash git add . git commit -m "修复 CPU 兼容性并添加测试脚本" ``` 2. **推送到 Hugging Face**: ```bash git push origin main ``` 3. **在 Hugging Face 上验证**: - 访问 https://huggingface.co/spaces/aidao/FaceSwap - 等待构建完成(查看 "Logs" 标签页) - 测试应用功能 - 检查是否有错误 ## 如果部署失败 ### 检查构建日志 1. 在 Hugging Face Space 页面点击 "Logs" 标签 2. 查看错误信息 3. 常见问题: - 依赖安装失败 → 检查 `requirements.txt` - 系统包缺失 → 检查 `packages.txt` - 代码错误 → 检查本地测试是否通过 - 内存不足 → 优化代码,减少内存使用 ### 常见错误及解决方法 | 错误 | 可能原因 | 解决方法 | |------|---------|---------| | `ModuleNotFoundError` | 依赖未安装 | 检查 `requirements.txt` | | `onnxruntime` 相关错误 | 使用了 GPU 版本 | 确保使用 `onnxruntime`(CPU 版本) | | `ffmpeg` 相关错误 | 系统包缺失 | 确保 `packages.txt` 包含 `ffmpeg` | | 内存不足 | 处理大文件 | 限制输入文件大小 | | 超时 | 处理时间过长 | 优化代码或添加超时处理 | ## 部署后验证 - [ ] Space 构建成功(无错误日志) - [ ] 应用界面正常加载 - [ ] 可以上传图片 - [ ] 单张图片换脸功能正常 - [ ] 日志输出正常(无错误) ## 性能监控 部署后注意观察: - 应用启动时间 - 单次处理时间 - 内存使用情况 - 是否有超时错误 如果性能问题严重,考虑: - 优化图片处理大小 - 添加缓存机制 - 限制并发请求