# 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 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分层效果 - 🔄 增加批量生成功能