用 AI 搭建自动化工作流:我是怎么让博客图片生成全自动的
每次写完一篇博客,都要卡在”配图”这个环节至少十分钟。
打开 Midjourney、想 Prompt、等生成、下载、重命名、放进去。有时候一张图就要折腾半小时,效率低得让人想直接放弃配图。
后来我决定:把这件事彻底自动化。
这篇文章记录的是一个真实项目的完整过程——从最初的想法,到最终跑通的脚本——以及我在这个过程中让 AI 帮了哪些忙、又在哪里踩了坑。
需求其实很简单
梳理一下我真正需要什么:
给定一段描述文字,生成一张 1200×630 的封面图,保存到 blog/source/img/ 目录下,文件名自定义。
就这样。不需要风格控制,不需要复杂参数,能跑通就行。
我的第一反应是用 Stable Diffusion,但本地部署太重,不适合日常轻量调用。然后发现了 Pollinations.ai——一个免费的 AI 图片生成 API,直接用 HTTP 请求就能调用,不需要本地环境,也不需要注册。
接口极其简单:
1 | |
返回的直接是图片二进制流,requests.get() 下来就能用。
让 AI 写第一版脚本
我把需求告诉 AI(当时用的是 WorkBuddy),描述很直接:
帮我写一个 Python 脚本,调用 Pollinations.ai 的 API,根据传入的描述生成图片,保存到指定目录。支持命令行参数:描述、文件名、宽、高、seed。
AI 给出的第一版代码大概是这样:
1 | |
代码整体是对的,但有两个问题我没想到。
第一个坑:超时。
Pollinations.ai 生成一张图通常需要 10-30 秒,有时候更长。timeout=60 对于普通请求绰绰有余,但有时候服务器忙,60 秒不够。而且即使请求超时,图片还在服务器那边生成——下次用同一个 seed 请求,是可以复用缓存的。
改法:把 timeout 调到 120,同时加一个重试逻辑。
第二个坑:文件名带路径前缀。
我最开始的调用方式是这样的:
1 | |
结果保存路径变成了 blog/source/img/blog/source/img/workflow.jpg,多了一层。
因为脚本里硬编码了 output_dir = Path("blog/source/img"),然后再拼接文件名,如果文件名本身就带了路径,就会嵌套。
改法:文件名参数只传文件名,不传路径前缀,路径由脚本统一管理。这个规则一旦定下来,后续用起来就很自然了。
命令行参数版本
跑通之后,我让 AI 加上 argparse,把所有参数暴露出来:
1 | |
加上重试逻辑之后,完整的调用示例长这样:
1 | |
这条命令跑下来,30 秒左右就能得到一张不错的封面图。
把它嵌进博客工作流
现在我写完文章之后的流程是:
想一个 seed(通常用日期数字,方便记忆和复现)→ 写一段英文 Prompt 描述内容风格 → 跑脚本 → 看图效果 → 不满意就换 seed 重跑。
整个过程从原来的”打开 Midjourney → 等待 → 下载 → 重命名”变成了一条命令,时间从十几分钟压缩到一两分钟。
有一个细节值得说:Prompt 用英文明显比中文效果好。同样的意思,英文描述生成的图质量、风格控制都强不少。这不是偏见,是 Pollinations.ai 底层模型(flux)训练数据分布决定的。
AI 在这个过程里帮了什么
回头看这个项目,AI 主要帮了三件事:
写第一版骨架代码。 我不用从零开始查文档,直接描述需求,拿到一个可以跑的基础版本。这节省了最无聊的那部分时间。
快速定位和修复 bug。 超时问题和路径嵌套问题,我把错误信息丢给 AI,一次就给出了正确的修法,不需要自己去翻文档。
优化细节。 加重试逻辑、加错误提示、处理特殊字符转义——这些零碎的改进,描述一下需求,AI 直接帮我加好。
但有一件事 AI 没帮上,只能我自己解决:调 Prompt 这件事。
什么样的 Prompt 能生成好看的封面图,这个判断完全是审美问题,没有标准答案。AI 可以帮我”生成图”,但”生成什么样的图”这个决策,最终还是得人来拍板。
自动化工具把机械性劳动交给机器,判断力和品味这些东西,暂时还得留着自己用。
顺手做了一个 API Key 版本
Pollinations.ai 后来推出了付费计划(花粉积分系统),免费用户每小时有限额,高峰期容易被限速。
我在脚本里加了一个环境变量读取:
1 | |
用 API Key 的时候优先级更高,不容易触发限速。没有 key 的时候回退到公共免费模式。
这个改动加了不到十行代码,是个很典型的「用 AI 写完之后自己加小功能」的场景。
这个脚本现在已经在我的博客里跑了快一个月,稳定性还不错。偶尔 Pollinations.ai 服务不稳定,生成失败,脚本会报错退出,我再手动重跑一次。
整体来说,自动化做得好的标志是「跑起来不用想它」。这个脚本基本达到了这个标准。
下一步我想做的是:写完文章之后,自动从文章 Front Matter 里提取关键词,自动生成 Prompt,一键把封面图也生成好。完全零人工。那个版本还在写,等写好了再记录一篇。