402 lines
10 KiB
Markdown
402 lines
10 KiB
Markdown
# AI海报生成系统
|
||
|
||
## 🎯 项目概述
|
||
|
||
AI海报生成系统是一个集成多个AI模型的智能海报生成平台,能够根据用户输入一键生成Vue组件代码和PSD文件。
|
||
|
||
**核心特性**:
|
||
- 🤖 **AI驱动**: 集成DeepSeek、Kimi、ComfyUI三大AI模型
|
||
- 🎨 **一键生成**: 输入需求,自动生成Vue代码和PSD文件
|
||
- 📱 **前端友好**: 提供统一的REST API接口
|
||
- 🎭 **智能排版**: 自动生成响应式Vue组件布局
|
||
- 🖼️ **图片合成**: 自动生成图片并合成PSD文件
|
||
- ✍️ **文案优化**: AI生成适配的标题和文案内容
|
||
|
||
## 🏗️ 系统架构
|
||
|
||
```
|
||
┌─────────────┐ HTTP请求 ┌──────────────┐ 调用AI服务 ┌─────────────┐
|
||
│ 前端 │ ─────────────→ │ FastAPI服务器 │ ─────────────→ │ AI模型集群 │
|
||
│ (Vue/React) │ │ (8000端口) │ │ │
|
||
└─────────────┘ └──────────────┘ └─────────────┘
|
||
│ │
|
||
▼ ▼
|
||
┌──────────────┐ ┌─────────────┐
|
||
│ 会话管理 │ │ ComfyUI图片 │
|
||
│ 文件存储 │ │ 生成服务 │
|
||
└──────────────┘ │ (101.201.50.90) │
|
||
└─────────────┘
|
||
```
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 环境准备
|
||
|
||
1. **Python环境**:
|
||
```bash
|
||
# 创建虚拟环境
|
||
conda create -n ai_service python=3.11
|
||
conda activate ai_service
|
||
|
||
# 安装依赖
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
2. **环境配置**:
|
||
```bash
|
||
# 复制环境变量文件
|
||
cp .env.example .env
|
||
|
||
# 配置API密钥(编辑.env文件)
|
||
DEEPSEEK_API_KEY=your_deepseek_api_key
|
||
MOONSHOT_API_KEY=your_kimi_api_key
|
||
```
|
||
|
||
### 启动服务
|
||
|
||
#### 方式1: 交互式启动
|
||
```bash
|
||
cd scripts
|
||
python run_pipeline.py
|
||
# 选择: 2 (API服务器模式)
|
||
```
|
||
|
||
#### 方式2: 直接启动API服务器
|
||
```bash
|
||
cd scripts
|
||
uvicorn run_pipeline:app --host 0.0.0.0 --port 8000 --reload
|
||
```
|
||
|
||
### 验证服务
|
||
|
||
```bash
|
||
# 健康检查
|
||
curl http://localhost:8000/health
|
||
|
||
# 查看API信息
|
||
curl http://localhost:8000/
|
||
```
|
||
|
||
## 📋 主要功能
|
||
|
||
### 1. 智能需求分析
|
||
- 使用**DeepSeek**模型分析用户输入
|
||
- 提取主题、风格、尺寸等关键信息
|
||
- 生成结构化的设计参数
|
||
|
||
### 2. AI图片生成
|
||
- 调用**ComfyUI**服务(101.201.50.90:8188)
|
||
- 根据分析结果生成高质量图片
|
||
- 支持多种风格和主题
|
||
|
||
### 3. 智能文案生成
|
||
- 使用**Kimi**模型生成文案内容
|
||
- 智能选择字体和颜色搭配
|
||
- 支持多层级文案结构
|
||
|
||
### 4. Vue组件生成
|
||
- 使用**DeepSeek**生成Vue 3组件代码
|
||
- 响应式布局设计
|
||
- 完整的template、script、style结构
|
||
|
||
### 5. PSD文件合成
|
||
- 自动合成多图层PSD文件
|
||
- 支持手动PSD模板优先
|
||
- 包含预览图片生成
|
||
|
||
## 🛠️ 使用方法
|
||
|
||
### API调用
|
||
|
||
```javascript
|
||
// 一键生成海报
|
||
const response = await fetch('http://localhost:8000/api/generate-poster', {
|
||
method: 'POST',
|
||
headers: { 'Content-Type': 'application/json' },
|
||
body: JSON.stringify({
|
||
user_input: "端午节海报,传统风格,包含荷花和龙舟"
|
||
})
|
||
});
|
||
|
||
const result = await response.json();
|
||
|
||
if (result.status === 'success') {
|
||
// 获取Vue代码
|
||
console.log('Vue代码:', result.data.vue_code);
|
||
|
||
// 获取文案建议
|
||
console.log('文案建议:', result.data.suggestions);
|
||
|
||
// 下载PSD文件
|
||
const downloadUrl = `http://localhost:8000/api/download/psd?session_id=${result.session_id}`;
|
||
window.open(downloadUrl);
|
||
}
|
||
```
|
||
|
||
### 本地开发测试
|
||
|
||
```bash
|
||
cd scripts
|
||
python run_pipeline.py
|
||
# 选择: 1 (本地测试模式)
|
||
# 输入: "春节海报,红色背景,现代风格"
|
||
```
|
||
|
||
## 📁 项目结构
|
||
|
||
```
|
||
ai_service/
|
||
├── scripts/ # 核心脚本
|
||
│ ├── run_pipeline.py # 主服务入口和API服务器
|
||
│ ├── prompt_analysis.py # 用户输入分析 (DeepSeek)
|
||
│ ├── flux_con.py # 图片生成 (ComfyUI)
|
||
│ ├── generate_text.py # 文案生成 (Kimi)
|
||
│ ├── generate_layout.py # Vue代码生成 (DeepSeek)
|
||
│ └── export_psd_from_json.py # PSD文件合成
|
||
├── configs/ # 配置文件
|
||
│ ├── font.yaml # 字体配置
|
||
│ └── example.json # 配置示例
|
||
├── outputs/ # 输出目录
|
||
│ ├── session_*/ # 会话相关文件
|
||
│ ├── *.psd # 生成的PSD文件
|
||
│ ├── *.vue # 生成的Vue组件
|
||
│ └── *.png # 生成的图片
|
||
├── workflows/ # ComfyUI工作流
|
||
│ ├── flux_work.json # 主要工作流配置
|
||
│ └── temp/ # 临时工作流文件
|
||
├── README.md # 项目说明
|
||
├── requirements.txt # Python依赖
|
||
├── API_文档.md # API使用文档
|
||
├── 接口文档.md # 接口技术文档
|
||
└── 部署方案.md # 部署指南
|
||
```
|
||
|
||
## 🔧 核心模块
|
||
|
||
### 1. prompt_analysis.py
|
||
- **功能**: 使用DeepSeek分析用户输入
|
||
- **输入**: 用户描述文本
|
||
- **输出**: 结构化分析结果
|
||
```python
|
||
user_input_analysis_result = llm_user_analysis("端午节海报,传统风格")
|
||
```
|
||
|
||
### 2. flux_con.py
|
||
- **功能**: 调用ComfyUI生成图片
|
||
- **输入**: 分析结果和系统提示
|
||
- **输出**: 图片文件列表
|
||
```python
|
||
parse_imglist = comfyui_img_info(user_input_analysis_result, system_prompt)
|
||
```
|
||
|
||
### 3. generate_text.py
|
||
- **功能**: 使用Kimi生成文案建议
|
||
- **输入**: 分析后的提示词
|
||
- **输出**: 分层文案内容
|
||
```python
|
||
suggestions = get_poster_content_suggestions(analyzed_prompt)
|
||
```
|
||
|
||
### 4. generate_layout.py
|
||
- **功能**: 使用DeepSeek生成Vue组件
|
||
- **输入**: 布局提示词
|
||
- **输出**: 完整Vue组件代码
|
||
```python
|
||
vue_code = generate_vue_code(prompt)
|
||
```
|
||
|
||
### 5. export_psd_from_json.py
|
||
- **功能**: 合成PSD文件
|
||
- **输入**: 图片路径列表
|
||
- **输出**: PSD文件
|
||
```python
|
||
create_psd_from_images(image_paths, output_path, canvas_size)
|
||
```
|
||
|
||
## 🌐 API接口
|
||
|
||
### 主要接口
|
||
|
||
| 接口 | 方法 | 功能 | 状态 |
|
||
|------|------|------|------|
|
||
| `/api/generate-poster` | POST | 一键生成海报 | ✅ |
|
||
| `/api/download/{type}` | GET | 文件下载 | ✅ |
|
||
| `/api/status/{session_id}` | GET | 会话状态 | ✅ |
|
||
| `/health` | GET | 健康检查 | ✅ |
|
||
|
||
### 请求示例
|
||
|
||
```bash
|
||
# 生成海报
|
||
curl -X POST http://localhost:8000/api/generate-poster \
|
||
-H "Content-Type: application/json" \
|
||
-d '{"user_input": "春节海报,红色背景,现代风格"}'
|
||
|
||
# 下载PSD文件
|
||
curl "http://localhost:8000/api/download/psd?session_id=SESSION_ID" \
|
||
--output poster.psd
|
||
```
|
||
|
||
## 🎨 使用示例
|
||
|
||
### 1. 传统节日海报
|
||
```
|
||
输入: "端午节海报,传统风格,包含荷花和龙舟"
|
||
输出: 传统中式风格的Vue组件 + 精美PSD文件
|
||
```
|
||
|
||
### 2. 现代活动海报
|
||
```
|
||
输入: "科技大会海报,现代简约风格,蓝色主题"
|
||
输出: 现代简约风格的Vue组件 + 科技感PSD文件
|
||
```
|
||
|
||
### 3. 节庆祝福海报
|
||
```
|
||
输入: "春节祝福海报,红色背景,包含灯笼烟花"
|
||
输出: 喜庆风格的Vue组件 + 节日氛围PSD文件
|
||
```
|
||
|
||
## 🚀 部署方案
|
||
|
||
### 开发环境
|
||
```bash
|
||
# 本地启动
|
||
python scripts/run_pipeline.py
|
||
# 访问: http://localhost:8000
|
||
```
|
||
|
||
### 生产环境
|
||
|
||
#### Docker部署
|
||
```dockerfile
|
||
FROM python:3.11
|
||
WORKDIR /app
|
||
COPY . .
|
||
RUN pip install -r requirements.txt
|
||
EXPOSE 8000
|
||
CMD ["uvicorn", "scripts.run_pipeline:app", "--host", "0.0.0.0", "--port", "8000"]
|
||
```
|
||
|
||
```bash
|
||
# 构建和运行
|
||
docker build -t ai-poster-generator .
|
||
docker run -p 8000:8000 ai-poster-generator
|
||
```
|
||
|
||
#### PM2部署
|
||
```bash
|
||
# 安装PM2
|
||
npm install -g pm2
|
||
|
||
# 启动服务
|
||
pm2 start "uvicorn scripts.run_pipeline:app --host 0.0.0.0 --port 8000" --name poster-api
|
||
|
||
# 开机自启
|
||
pm2 startup
|
||
pm2 save
|
||
```
|
||
|
||
### 反向代理(Nginx)
|
||
```nginx
|
||
server {
|
||
listen 80;
|
||
server_name your-domain.com;
|
||
|
||
location / {
|
||
proxy_pass http://localhost:8000;
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||
}
|
||
}
|
||
```
|
||
|
||
## 🔍 故障排查
|
||
|
||
### 常见问题
|
||
|
||
1. **API密钥错误**
|
||
```bash
|
||
# 检查环境变量
|
||
echo $DEEPSEEK_API_KEY
|
||
echo $MOONSHOT_API_KEY
|
||
```
|
||
|
||
2. **ComfyUI连接失败**
|
||
```bash
|
||
# 测试ComfyUI连接
|
||
curl http://101.201.50.90:8188/system_stats
|
||
```
|
||
|
||
3. **PSD生成失败**
|
||
```bash
|
||
# 检查pytoshop安装
|
||
pip show pytoshop psd-tools
|
||
```
|
||
|
||
4. **端口被占用**
|
||
```bash
|
||
# 查找占用端口的进程
|
||
netstat -tulpn | grep 8000
|
||
# 或使用其他端口
|
||
uvicorn run_pipeline:app --port 8001
|
||
```
|
||
|
||
### 日志查看
|
||
```bash
|
||
# 查看实时日志
|
||
tail -f logs/app.log
|
||
|
||
# 检查错误日志
|
||
grep -i error logs/app.log
|
||
```
|
||
|
||
## 🤝 贡献指南
|
||
|
||
### 开发环境搭建
|
||
```bash
|
||
# 克隆项目
|
||
git clone <repository-url>
|
||
cd ai_service
|
||
|
||
# 安装开发依赖
|
||
pip install -r requirements.txt
|
||
pip install -r requirements-dev.txt
|
||
|
||
# 运行测试
|
||
pytest tests/
|
||
```
|
||
|
||
### 代码规范
|
||
- 使用Python 3.11+
|
||
- 遵循PEP 8代码风格
|
||
- 添加类型注解
|
||
- 编写单元测试
|
||
|
||
## 📄 License
|
||
|
||
MIT License - 详见 [LICENSE](LICENSE) 文件
|
||
|
||
## 📞 联系方式
|
||
|
||
- **项目维护**: AI海报生成系统团队
|
||
- **技术支持**: 查看[API文档](API_文档.md)和[接口文档](接口文档.md)
|
||
- **问题反馈**: 提交Issue到项目仓库
|
||
|
||
## 📝 更新日志
|
||
|
||
### v1.0.0 (2025-01-02)
|
||
- ✅ 集成DeepSeek + Kimi + ComfyUI
|
||
- ✅ 统一API接口设计
|
||
- ✅ 支持Vue组件生成
|
||
- ✅ 支持PSD文件合成
|
||
- ✅ 完整的会话管理
|
||
- ✅ 丰富的文档和示例
|
||
|
||
### 近期规划
|
||
- 🔄 支持更多图片风格
|
||
- 🔄 增加文案模板库
|
||
- 🔄 优化PSD分层效果
|
||
- 🔄 增加批量生成功能
|