feat: 实现穿搭照片生成功能

- 添加基于 ComfyUI 工作流的 AI 穿搭照片生成功能
- 实现完整的前端界面和后端服务集成
- 支持模特形象选择、商品图片上传、智能提示词生成
- 提供实时进度监控和历史记录管理
- 集成 ComfyUI 设置面板和连接状态检测
- 添加响应式设计和现代化 UI/UX
- 完善的 TypeScript 类型系统和错误处理
- 包含完整的功能文档和实现说明

主要组件:
- OutfitPhotoGenerator: 主生成器组件
- OutfitPhotoGenerationHistory: 历史记录管理
- ComfyUISettingsPanel: ComfyUI 设置面板
- OutfitPhotoGenerationPage: 主页面集成

技术特性:
- React 18 + TypeScript + Tailwind CSS
- Tauri 事件系统集成
- 实时进度监控和状态管理
- 拖拽上传和图片预览
- 批量处理和错误重试机制
This commit is contained in:
imeepos
2025-07-30 17:28:31 +08:00
parent 3cd79a2f5d
commit 1e03afdecb
29 changed files with 5134 additions and 1 deletions

View File

@@ -0,0 +1,245 @@
# 穿搭照片生成功能文档
## 概述
穿搭照片生成功能是基于 ComfyUI 工作流的 AI 图像生成系统,允许用户通过选择模特形象和商品图片,结合文本提示词,生成个性化的穿搭照片。
## 功能特性
### 核心功能
- **模特形象选择**: 从项目中的模特照片中选择基础形象
- **商品图片上传**: 支持拖拽上传多种格式的商品图片
- **智能提示词**: 支持正面和负面提示词,精确控制生成效果
- **高级参数配置**: 可调整生成步数、CFG比例、种子值等参数
- **实时进度监控**: 显示生成进度和状态信息
- **历史记录管理**: 查看、重试、删除历史生成记录
### 技术特性
- **ComfyUI 集成**: 基于 ComfyUI 的强大工作流引擎
- **云端存储**: 自动上传生成结果到云端存储
- **批量处理**: 支持批量生成多张穿搭照片
- **错误恢复**: 自动重试机制和错误处理
- **性能监控**: 生成时间统计和性能分析
## 系统架构
### 前端组件结构
```
src/components/outfit/
├── OutfitPhotoGenerator.tsx # 主生成器组件
├── OutfitPhotoGenerationHistory.tsx # 历史记录组件
├── ComfyUISettingsPanel.tsx # 设置面板组件
└── index.ts # 组件导出
src/pages/
└── OutfitPhotoGeneration.tsx # 主页面组件
src/types/
└── outfitPhotoGeneration.ts # 类型定义
src/services/
└── outfitPhotoGenerationService.ts # 服务层
```
### 后端架构
```
src-tauri/src/
├── business/services/
│ └── comfyui_service.rs # ComfyUI 服务
├── presentation/commands/
│ └── outfit_photo_generation_commands.rs # Tauri 命令
└── data/models/
└── outfit_photo_generation.rs # 数据模型
```
## 使用指南
### 基本使用流程
1. **选择模特形象**
- 从可用的模特照片中选择一张作为基础形象
- 支持个人形象照片类型
2. **上传商品图片**
- 拖拽或点击选择商品图片
- 支持 PNG、JPG、JPEG、GIF、BMP、WebP 格式
- 可上传多张图片(当前版本使用第一张)
3. **输入提示词**
- 正面提示词:描述期望的穿搭效果
- 负面提示词:描述不希望出现的元素(可选)
4. **配置高级参数**(可选)
- 生成步数控制生成质量1-100
- CFG 比例控制提示词遵循程度1-20
- 种子值:控制随机性(-1 为随机)
- 去噪强度控制生成强度0-1
5. **开始生成**
- 点击"开始生成"按钮
- 实时查看生成进度
- 等待生成完成
### 高级功能
#### 历史记录管理
- 查看所有生成记录
- 按状态、时间筛选
- 重试失败的生成任务
- 删除不需要的记录
#### ComfyUI 设置
- 配置服务器地址和端口
- 设置超时时间
- 测试连接状态
- 管理工作流和输出目录
## API 接口
### 主要 Tauri 命令
```rust
// 创建生成任务
create_outfit_photo_generation_task(request: OutfitPhotoGenerationRequest) -> String
// 执行生成
execute_outfit_photo_generation(generation_id: String) -> OutfitPhotoGenerationResponse
// 获取历史记录
get_outfit_photo_generation_history(query: GenerationHistoryQuery) -> GenerationHistoryResponse
// 重试生成
retry_outfit_photo_generation(generation_id: String) -> OutfitPhotoGenerationResponse
// 删除记录
delete_outfit_photo_generation(generation_id: String) -> ()
// ComfyUI 设置
get_comfyui_settings() -> ComfyUISettings
update_comfyui_settings(settings: ComfyUISettings) -> ()
test_comfyui_connection() -> bool
```
### 数据类型
```typescript
// 生成请求
interface OutfitPhotoGenerationRequest {
project_id: string;
model_id: string;
product_image_path: string;
prompt: string;
negative_prompt?: string;
workflow_config?: WorkflowConfig;
}
// 生成响应
interface OutfitPhotoGenerationResponse {
id: string;
status: GenerationStatus;
result_image_urls: string[];
error_message?: string;
generation_time_ms?: number;
}
// 生成状态
enum GenerationStatus {
Pending = "Pending",
Processing = "Processing",
Completed = "Completed",
Failed = "Failed"
}
```
## 配置说明
### ComfyUI 服务器配置
```typescript
interface ComfyUISettings {
server_address: string; // 服务器地址
server_port: number; // 端口号
is_local: boolean; // 是否本地服务器
timeout_seconds: number; // 超时时间
enabled: boolean; // 是否启用
workflow_directory?: string; // 工作流目录
output_directory?: string; // 输出目录
}
```
### 默认配置
- 服务器地址: `localhost`
- 端口: `8188`
- 超时时间: `300`
- 生成步数: `20`
- CFG 比例: `7.0`
- 去噪强度: `1.0`
## 故障排除
### 常见问题
1. **ComfyUI 连接失败**
- 检查 ComfyUI 服务器是否运行
- 验证服务器地址和端口配置
- 确认网络连接正常
2. **生成失败**
- 检查提示词是否合理
- 验证商品图片格式和大小
- 查看错误日志信息
3. **生成速度慢**
- 调整生成步数参数
- 检查服务器性能
- 优化工作流配置
### 错误代码
- `CONNECTION_FAILED`: ComfyUI 连接失败
- `INVALID_IMAGE`: 图片格式不支持
- `GENERATION_TIMEOUT`: 生成超时
- `WORKFLOW_ERROR`: 工作流执行错误
## 性能优化
### 前端优化
- 图片懒加载
- 组件按需加载
- 状态管理优化
- 内存泄漏防护
### 后端优化
- 连接池管理
- 异步任务处理
- 错误重试机制
- 资源清理
## 扩展开发
### 添加新的工作流
1. 在 ComfyUI 中创建工作流
2. 导出工作流 JSON 文件
3. 添加到工作流目录
4. 更新工作流模板配置
### 自定义生成参数
1. 扩展 `WorkflowConfig` 类型
2. 更新前端参数面板
3. 修改后端参数处理逻辑
4. 测试参数效果
## 更新日志
### v1.0.0 (2024-01-30)
- 初始版本发布
- 基础生成功能
- ComfyUI 集成
- 历史记录管理
- 设置面板
### 计划功能
- 批量生成优化
- 更多工作流模板
- 生成结果评分
- 社区分享功能