概述#
博客封面图生成器是一个基于 AI 的自动化工具,能够根据博客文章内容智能生成适合的封面图片。该工具集成了火山引擎豆包 API,通过情绪分析和视觉转化技术,为每篇文章创建独特的封面图。
版本演进#
版本对比#
初始版本 (v1.0)#
- Prompt系统: 简单的技术描述生成
- 风格定位: 科技感、现代感
- 内容提取: 基于具体文本内容的描述
- 配置方式: 环境变量管理 API 密钥
当前版本 (v2.0)#
- Prompt系统: 情绪叙事与视觉转化专家角色
- 风格定位: 多艺术风格自动选择(莫奈风、像素风、伦勃朗、巴洛克)
- 内容提取: 情绪流动和氛围捕捉
- 配置方式: 硬编码 API 密钥(开发阶段)
核心改进#
1. 情绪感知能力#
- 从文本内容中捕捉情绪流动
- 识别文章的整体氛围和基调
- 将抽象情绪转化为具象画面
2. 艺术风格多样化#
- 莫奈风: 印象派风格,适合自然、生活类文章
- 像素风: 复古游戏风格,适合技术、游戏类文章
- 伦勃朗: 古典油画风格,适合深度思考类文章
- 巴洛克: 华丽装饰风格,适合艺术、文化类文章
3. 叙事氛围营造#
- 构建具有故事感的视觉描述
- 保留文章的象征性元素
- 增强封面图的表达力和吸引力
技术架构#
API 集成#
- 文本生成: 火山引擎豆包 1.5 Pro 32K 模型
- 图像生成: 火山引擎豆包 Seedream 3.0 T2I 模型
- 图像尺寸: 1024x1024 像素
- 水印: 自动添加水印保护
工作流程#
- 文章读取: 解析 Markdown 文件,提取正文内容
- 情绪分析: 使用 AI 分析文章的情绪流和主题
- 描述生成: 生成适合 AI 绘图的视觉描述
- 图像生成: 调用文生图 API 创建封面图
- 文件保存: 自动下载并保存到文章目录
配置说明#
当前配置#
# API 配置常量
ARK_BASE_URL = "https://ark.cn-beijing.volces.com/api/v3"
TEXT_MODEL = "doubao-1-5-pro-32k-250115"
IMAGE_MODEL = "doubao-seedream-3-0-t2i-250415"
IMAGE_SIZE = "1024x1024"
# API 密钥
ARK_API_KEY = "xxx"python环境变量配置(推荐)#
# 设置环境变量
export ARK_API_KEY=your_api_key
# 在脚本中使用
ARK_API_KEY = os.getenv("ARK_API_KEY")
if not ARK_API_KEY:
print("错误:未找到环境变量 ARK_API_KEY")
sys.exit(1)bash使用方法#
1. 基础使用#
安装依赖#
pip install requestsbash运行脚本#
python scripts/generate_cover_image.py "文章标题"bash示例#
# 为"astro博客迁移"文章生成封面图
python scripts/generate_cover_image.py "astro博客迁移"bash2. 高级配置#
自定义图像尺寸#
# 修改 IMAGE_SIZE 常量
IMAGE_SIZE = "1920x1080" # 宽屏格式
IMAGE_SIZE = "800x600" # 小尺寸python调整生成参数#
# 在 generate_image 函数中修改
data = {
"model": IMAGE_MODEL,
"prompt": description,
"response_format": "url",
"size": IMAGE_SIZE,
"guidance_scale": 3.0, # 增加创意性
"watermark": False # 移除水印
}python最佳实践#
1. 文章内容优化#
- 内容长度: 建议文章内容不少于 100 字,确保有足够信息供 AI 分析
- 主题明确: 文章主题越明确,生成的封面图越贴合
- 情绪表达: 在文章中适当表达情感,有助于 AI 捕捉情绪流
2. 封面图使用#
- 文件命名: 生成的封面图自动命名为
cover.jpg - Frontmatter 配置: 在文章中添加封面图引用
---
title: '文章标题'
heroImage: { src: './cover.jpg', color: '#9698C1' }
---yaml3. 风格选择策略#
- 技术文章: 像素风或现代科技风格
- 生活随笔: 莫奈风或温暖色调
- 深度思考: 伦勃朗或古典风格
- 艺术文化: 巴洛克或装饰风格
故障排除#
1. 常见问题#
API 调用失败#
错误:文本 API 调用失败: 401 Unauthorized
解决:检查 API 密钥是否正确,确认账户余额充足bash文章未找到#
错误:未找到文章: 文章标题
解决:确认文章标题正确,检查目录结构是否符合规范bash图片生成失败#
错误:图像 API 调用失败: 400 Bad Request
解决:检查 prompt 内容是否合规,调整描述长度和内容bash2. 性能优化#
- 内容截取: 脚本自动截取前 1500 字符,避免超出 token 限制
- 超时设置: 文本生成 30 秒,图像生成 60 秒
- 错误重试: 建议在网络不稳定时增加重试机制
3. 调试技巧#
# 启用详细日志
print(f"API 响应: {result}")
print(f"生成描述: {description}")
print(f"图片 URL: {image_url}")python扩展和自定义#
1. 添加新的艺术风格#
在 system_prompt 中添加新的风格描述:
system_prompt = """
- 风格:根据内容,自动选择莫奈风、像素风、伦勃朗、巴洛克风格、新风格
- 新风格:描述新风格的特点和适用场景
"""python2. 集成其他 AI 模型#
# 修改模型配置
TEXT_MODEL = "your-text-model"
IMAGE_MODEL = "your-image-model"python3. 批量处理#
# 创建批量处理脚本
for article in articles; do
python scripts/generate_cover_image.py "$article"
donebash安全注意事项#
1. API 密钥管理#
- 开发环境: 可以使用硬编码密钥进行测试
- 生产环境: 必须使用环境变量或配置文件
- 密钥轮换: 定期更换 API 密钥,避免泄露
2. 内容安全#
- 内容审核: 确保生成的内容符合平台规范
- 版权保护: 生成的图片可能包含水印,注意使用权限
- 隐私保护: 避免在 prompt 中包含敏感信息
更新日志#
v2.0 (当前版本)#
- ✨ 新增情绪叙事与视觉转化专家角色
- 🎨 支持多种艺术风格自动选择
- 🔄 重构 Prompt 系统,增强情绪感知能力
- 📝 优化配置管理,支持硬编码和环境变量
- 🚀 提升图像生成质量和创意性
v1.0 (初始版本)#
- 🎯 基础的文章内容读取功能
- 🤖 简单的 AI 绘图描述生成
- 🖼️ 基础的文生图功能
- ⚙️ 环境变量配置管理
- 📁 自动文件保存和路径管理