configs | ||
outputs | ||
scripts | ||
workflows | ||
.DS_Store | ||
.env | ||
.gitignore | ||
API_文档.md | ||
Linux部署指南.md | ||
README.md | ||
requirements.txt | ||
requirments.txt | ||
接口文档.md | ||
部署方案.md |
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) │
└─────────────┘
🚀 快速开始
环境准备
- Python环境:
# 创建虚拟环境
conda create -n ai_service python=3.11
conda activate ai_service
# 安装依赖
pip install -r requirements.txt
- 环境配置:
# 复制环境变量文件
cp .env.example .env
# 配置API密钥(编辑.env文件)
DEEPSEEK_API_KEY=your_deepseek_api_key
MOONSHOT_API_KEY=your_kimi_api_key
启动服务
方式1: 交互式启动
cd scripts
python run_pipeline.py
# 选择: 2 (API服务器模式)
方式2: 直接启动API服务器
cd scripts
uvicorn run_pipeline:app --host 0.0.0.0 --port 8000 --reload
验证服务
# 健康检查
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调用
// 一键生成海报
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);
}
本地开发测试
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分析用户输入
- 输入: 用户描述文本
- 输出: 结构化分析结果
user_input_analysis_result = llm_user_analysis("端午节海报,传统风格")
2. flux_con.py
- 功能: 调用ComfyUI生成图片
- 输入: 分析结果和系统提示
- 输出: 图片文件列表
parse_imglist = comfyui_img_info(user_input_analysis_result, system_prompt)
3. generate_text.py
- 功能: 使用Kimi生成文案建议
- 输入: 分析后的提示词
- 输出: 分层文案内容
suggestions = get_poster_content_suggestions(analyzed_prompt)
4. generate_layout.py
- 功能: 使用DeepSeek生成Vue组件
- 输入: 布局提示词
- 输出: 完整Vue组件代码
vue_code = generate_vue_code(prompt)
5. export_psd_from_json.py
- 功能: 合成PSD文件
- 输入: 图片路径列表
- 输出: PSD文件
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 | 健康检查 | ✅ |
请求示例
# 生成海报
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文件
🚀 部署方案
开发环境
# 本地启动
python scripts/run_pipeline.py
# 访问: http://localhost:8000
生产环境
Docker部署
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"]
# 构建和运行
docker build -t ai-poster-generator .
docker run -p 8000:8000 ai-poster-generator
PM2部署
# 安装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)
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;
}
}
🔍 故障排查
常见问题
- API密钥错误
# 检查环境变量
echo $DEEPSEEK_API_KEY
echo $MOONSHOT_API_KEY
- ComfyUI连接失败
# 测试ComfyUI连接
curl http://101.201.50.90:8188/system_stats
- PSD生成失败
# 检查pytoshop安装
pip show pytoshop psd-tools
- 端口被占用
# 查找占用端口的进程
netstat -tulpn | grep 8000
# 或使用其他端口
uvicorn run_pipeline:app --port 8001
日志查看
# 查看实时日志
tail -f logs/app.log
# 检查错误日志
grep -i error logs/app.log
🤝 贡献指南
开发环境搭建
# 克隆项目
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 文件
📞 联系方式
📝 更新日志
v1.0.0 (2025-01-02)
- ✅ 集成DeepSeek + Kimi + ComfyUI
- ✅ 统一API接口设计
- ✅ 支持Vue组件生成
- ✅ 支持PSD文件合成
- ✅ 完整的会话管理
- ✅ 丰富的文档和示例
近期规划
- 🔄 支持更多图片风格
- 🔄 增加文案模板库
- 🔄 优化PSD分层效果
- 🔄 增加批量生成功能