# DreamRenderer Gradio应用部署指南 ## 🚀 在Hugging Face Spaces上部署 ### 步骤1: 创建新的Space 1. 访问 [Hugging Face Spaces](https://huggingface.co/spaces) 2. 点击 "Create new Space" 3. 填写以下信息: - **Space name**: `dreamrenderer` - **License**: `apache-2.0` - **Select the SDK**: `Gradio` - **Hardware**: 选择 `ZeroGPU` (这是关键!) ### 步骤2: 上传文件 将以下文件上传到你的Space: ``` ├── README.md ├── requirements.txt ├── app.py ├── dream_renderer.py ├── bbox_component.html ``` ### 步骤3: 配置Space 确保你的 `README.md` 文件包含正确的配置: ```yaml --- title: DreamRenderer emoji: 🎨 colorFrom: blue colorTo: purple sdk: gradio sdk_version: 4.44.0 app_file: app.py pinned: false license: apache-2.0 --- ``` ### 步骤4: 重要配置说明 #### ZeroGPU配置 - 在Space设置中确保选择了 `ZeroGPU` 硬件 - 代码中正确使用了 `@spaces.GPU` 装饰器 - 所有GPU密集型操作都被装饰器包装 #### 依赖管理 - `requirements.txt` 已经优化,包含最少必要的依赖 - 移除了可能导致冲突的包 - 使用兼容版本号 ### 步骤5: 实际DreamRenderer集成 当前实现是一个演示版本。要集成真正的DreamRenderer: 1. **获取DreamRenderer代码**: ```bash git clone https://github.com/limuloo/DreamRenderer.git ``` 2. **替换核心实现**: - 将 `dream_renderer.py` 中的演示代码替换为真实的DreamRenderer实现 - 集成必要的模型文件和权重 3. **模型权重**: - 上传预训练模型到Space的文件系统或使用Hugging Face Hub - 修改模型加载路径 ### 📋 文件说明 #### `app.py` - 主应用文件 - 包含Gradio界面和事件处理 - 使用 `@spaces.GPU` 装饰GPU功能 #### `dream_renderer.py` - DreamRenderer核心实现 - 包含模型加载和推理逻辑 - 可替换为真实的DreamRenderer代码 #### `bbox_component.html` - 自定义HTML组件 - 实现交互式边界框绘制 - 处理用户输入和数据传递 #### `requirements.txt` - 最小化依赖列表 - 针对ZeroGPU环境优化 ### 🔧 高级配置 #### 性能优化 - 使用模型缓存减少加载时间 - 优化图像处理流程 - 实现批处理支持 #### UI增强 - 添加更多预设示例 - 支持图像上传作为背景 - 添加历史记录功能 ### 🚨 注意事项 1. **ZeroGPU限制**: - 每次推理有时间限制 - 需要合理管理GPU内存 - 避免长时间占用GPU 2. **文件大小限制**: - Space有存储限制 - 大型模型需要通过Hub加载 3. **依赖冲突**: - 避免版本冲突 - 测试所有功能 ### 📞 支持 如果遇到问题: 1. 检查Space日志 2. 验证ZeroGPU配置 3. 确认文件完整性 4. 查看Hugging Face文档 ### 🔗 相关链接 - [Hugging Face Spaces文档](https://huggingface.co/docs/hub/spaces) - [ZeroGPU使用指南](https://huggingface.co/docs/hub/spaces-gpus) - [Gradio文档](https://gradio.app/docs/) - [DreamRenderer论文](https://arxiv.org/abs/2503.12885)