Files
IOPaint/docs/BRANCH_README.md
let5sne b6ac3f022a 📁 重组文档目录结构
变更:
- 创建 docs/ 目录统一管理所有文档
- 移动所有 API 文档到 docs/ 目录
  - API_DOCS_INDEX.md
  - RESTFUL_API_DOCUMENTATION.md
  - API_SERVICE_README.md
  - API_CLIENT_EXAMPLES.md
  - API_SERVICE_GUIDE.md
  - BRANCH_README.md
  - openapi.yaml
  - IOPaint_API.postman_collection.json
  - UPGRADE_NOTES.md

- 更新所有文档间的引用路径
- 更新 README.md 中的文档链接
- 创建 docs/README.md 作为文档入口

优势:
 清晰的目录结构
 文档集中管理
 易于查找和维护
 符合项目规范

🔧 Generated with Claude Code
2025-11-28 18:04:26 +00:00

374 lines
8.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# IOPaint API Service Branch
这是 **IOPaint 去水印 API 服务** 的独立分支,专注于提供商业化的 REST API 服务。
## 🌿 分支说明
### 主要分支对比
| 分支 | 用途 | 特点 | 适用场景 |
|------|------|------|---------|
| **main/master** | 完整版 IOPaint | • WebUI 界面<br>• 多种模型<br>• 插件系统<br>• 批处理功能 | 个人使用、本地工具 |
| **feature/api-service** | API 服务版 | • 纯 REST API<br>• 单一模型LaMa<br>• 商业化就绪<br>• 易于部署 | 企业集成、SaaS 服务 |
## 📦 本分支内容
### 核心文件
**服务代码**:
- `api_service_mvp.py` - 精简的 API 服务实现
- `docker/APIDockerfile` - API 服务 Docker 镜像
- `docker-compose.mvp.yml` - MVP 部署配置
- `nginx/nginx.conf` - Nginx 反向代理配置
**完整文档**:
- `API_DOCS_INDEX.md` - 📑 文档导航(从这里开始)
- `RESTFUL_API_DOCUMENTATION.md` - 📖 完整 REST API 文档
- `API_SERVICE_README.md` - 🚀 快速开始指南
- `API_CLIENT_EXAMPLES.md` - 💻 多语言客户端示例
- `API_SERVICE_GUIDE.md` - 🏗️ 商业化部署方案
- `openapi.yaml` - 🔧 OpenAPI 3.0.3 规范
- `IOPaint_API.postman_collection.json` - 🧪 Postman 测试集合
### 与主分支的差异
**移除的功能**:
- ❌ WebUI 界面(前端代码仍在,但不使用)
- ❌ 多模型支持(只保留 LaMa
- ❌ 插件系统
- ❌ 文件浏览器
- ❌ Socket.IO 实时通信
**新增的功能**:
- ✅ RESTful API 服务
- ✅ API Key 认证
- ✅ 使用统计
- ✅ 完整的 API 文档
- ✅ 多语言客户端示例
- ✅ 商业化部署方案
## 🚀 快速开始
### 1. 克隆并切换到 API 分支
```bash
# 克隆仓库
git clone https://github.com/let5sne/IOPaint.git
cd IOPaint
# 切换到 API 服务分支
git checkout feature/api-service
# 查看分支
git branch
# * feature/api-service
# main
# master
```
### 2. 启动服务
```bash
# 设置 API 密钥
export API_KEY="your_secret_key_here"
# 启动服务GPU 版本)
docker-compose -f docker-compose.mvp.yml up -d
# 或者直接运行 Python需要先安装依赖
python3 api_service_mvp.py
```
### 3. 测试 API
```bash
# 健康检查
curl http://localhost:8080/api/v1/health
# 去水印
curl -X POST http://localhost:8080/api/v1/remove-watermark \
-H "X-API-Key: $API_KEY" \
-F "image=@test.jpg" \
-o result.png
```
### 4. 查看在线文档
访问 http://localhost:8080/docsSwagger UI
## 📚 文档导航
**新手必读**:
1. [📑 文档总览](./API_DOCS_INDEX.md) - 从这里开始
2. [🚀 快速开始](./API_SERVICE_README.md) - 10分钟上手
**开发者集成**:
1. [📖 REST API 完整文档](./RESTFUL_API_DOCUMENTATION.md)
2. [💻 多语言客户端示例](./API_CLIENT_EXAMPLES.md)
3. [🔧 OpenAPI 规范](./openapi.yaml)
**商业化部署**:
1. [🏗️ 完整部署方案](./API_SERVICE_GUIDE.md)
2. [💰 成本与收益分析](./API_SERVICE_GUIDE.md#成本与扩展性分析)
## 🔄 分支切换指南
### 切换到主分支WebUI 版本)
```bash
# 切换到 main 分支
git checkout main
# 启动 WebUI 版本
python3 main.py start --model lama --device cuda --port 8080
```
### 切换回 API 分支
```bash
# 切换到 API 服务分支
git checkout feature/api-service
# 启动 API 服务
docker-compose -f docker-compose.mvp.yml up -d
```
### 保持两个版本同时运行
```bash
# 方法1使用不同端口
# 主分支WebUI使用 8080
git checkout main
python3 main.py start --model lama --port 8080
# API 分支使用 8081
git checkout feature/api-service
docker-compose -f docker-compose.mvp.yml up -d
# 修改 docker-compose.mvp.yml 中的端口为 8081
# 方法2使用不同目录
mkdir -p ~/iopaint-webui ~/iopaint-api
git clone https://github.com/let5sne/IOPaint.git ~/iopaint-webui
git clone https://github.com/let5sne/IOPaint.git ~/iopaint-api
cd ~/iopaint-webui && git checkout main
cd ~/iopaint-api && git checkout feature/api-service
```
## 🎯 使用场景
### 使用主分支main如果你需要
- ✅ 本地使用图形界面
- ✅ 尝试不同的 AI 模型
- ✅ 使用插件RemoveBG、RealESRGAN 等)
- ✅ 批处理本地图片
- ✅ 个人/团队内部工具
### 使用 API 分支feature/api-service如果你需要
- ✅ 集成到自己的应用
- ✅ 提供在线服务
- ✅ 商业化部署
- ✅ 自动化处理
- ✅ 远程调用 API
## 📊 性能对比
| 项目 | 主分支 | API 分支 |
|------|--------|----------|
| **启动时间** | ~30秒 | ~10秒 |
| **内存占用** | ~3-4GB | ~2-3GB |
| **镜像大小** | ~8GB | ~6GB |
| **API 响应** | 需要 WebUI | 原生 REST API |
| **并发支持** | 有限 | 良好(可扩展)|
| **部署难度** | 简单 | 中等(但文档齐全)|
## 🔐 安全建议
### API 分支特有的安全考虑
1. **API Key 管理**
```bash
# 生产环境必须修改默认密钥
export API_KEY=$(openssl rand -hex 32)
```
2. **HTTPS 强制**
```bash
# 使用 Nginx 配置 SSL
# 参考 nginx/nginx.conf
```
3. **限流保护**
```nginx
# Nginx 已配置限流
# 每秒 10 个请求,突发 20 个
```
4. **日志监控**
```bash
# 查看日志
tail -f logs/api_*.log
```
## 🛠️ 维护指南
### 更新依赖
```bash
# 切换到 API 分支
git checkout feature/api-service
# 更新 Python 依赖
pip install -r requirements.txt --upgrade
# 重建 Docker 镜像
docker-compose -f docker-compose.mvp.yml build --no-cache
```
### 同步主分支的修复
```bash
# 如果主分支有重要修复,可以选择性合并
git checkout feature/api-service
# 只合并特定文件
git checkout main -- iopaint/model/
git checkout main -- iopaint/helper.py
# 提交
git commit -m "sync: 同步主分支的模型修复"
```
### 版本标签
```bash
# 创建版本标签
git tag -a api-v1.0.0 -m "API Service v1.0.0 - MVP Release"
git push origin api-v1.0.0
# 查看所有 API 版本
git tag -l "api-v*"
```
## 📈 发展路线图
### 当前版本v1.0.0
- ✅ 基础 REST API
- ✅ LaMa 模型支持
- ✅ API Key 认证
- ✅ 完整文档
- ✅ Docker 部署
### 计划中v1.1.0
- 🔜 批量处理 API
- 🔜 Webhook 回调
- 🔜 自动检测水印
- 🔜 使用 Dashboard
### 未来版本v2.0.0
- 🔮 多模型支持SD、SDXL
- 🔮 异步处理队列
- 🔮 对象存储集成
- 🔮 Kubernetes Helm Chart
## 🤝 贡献指南
### API 分支的贡献
如果你想为 API 服务分支做贡献:
```bash
# 1. Fork 仓库
# 2. 创建功能分支
git checkout -b feature/api-new-feature feature/api-service
# 3. 开发并测试
# 4. 提交 Pull Request 到 feature/api-service
```
### 文档改进
```bash
# 改进文档
git checkout -b docs/improve-api-docs feature/api-service
# 编辑文档
vim RESTFUL_API_DOCUMENTATION.md
# 提交
git commit -m "docs: 改进 API 认证说明"
git push origin docs/improve-api-docs
```
## 📞 获取帮助
### API 分支特定问题
- **GitHub Issues**: https://github.com/let5sne/IOPaint/issues
- 标签:`api-service`, `documentation`, `deployment`
- **分支地址**: https://github.com/let5sne/IOPaint/tree/feature/api-service
### 常见问题
**Q: 为什么要独立分支?**
A: 主分支专注于 WebUI 体验API 分支专注于服务化和商业化,两者目标不同。
**Q: API 分支会合并到主分支吗?**
A: 不会。两个分支将独立发展,但会同步重要的 bug 修复。
**Q: 如何选择使用哪个分支?**
A: 个人使用选主分支WebUI企业集成选 API 分支。
**Q: API 分支可以使用其他模型吗?**
A: 当前只支持 LaMa未来版本会添加更多模型。
**Q: API 分支支持批量处理吗?**
A: v1.0 不支持v1.1 计划添加批量 API。
## 📄 许可证
本项目(包括 API 服务分支)基于 Apache-2.0 许可证开源。
## 🎉 总结
### API 服务分支的优势
- ✅ **专注**:只做 API 服务,代码更精简
- ✅ **高效**:启动快,资源占用少
- ✅ **专业**:完整的商业化文档和部署方案
- ✅ **灵活**:易于集成到任何应用
- ✅ **可靠**:生产就绪,经过优化
### 立即开始
```bash
# 1. 克隆并切换分支
git clone https://github.com/let5sne/IOPaint.git
cd IOPaint
git checkout feature/api-service
# 2. 阅读文档
cat API_DOCS_INDEX.md
# 3. 启动服务
export API_KEY="your_secret_key"
docker-compose -f docker-compose.mvp.yml up -d
# 4. 访问文档
open http://localhost:8080/docs
```
---
**分支**: `feature/api-service`
**版本**: v1.0.0
**更新**: 2025-11-28
**维护者**: [@let5sne](https://github.com/let5sne)
**快速链接**:
- [📑 文档导航](./API_DOCS_INDEX.md)
- [🚀 快速开始](./API_SERVICE_README.md)
- [📖 完整 API 文档](./RESTFUL_API_DOCUMENTATION.md)
- [🏗️ 部署方案](./API_SERVICE_GUIDE.md)