用 AI 搭建自动化工作流:我是怎么让博客图片生成全自动的

每次写完一篇博客,都要卡在”配图”这个环节至少十分钟。

打开 Midjourney、想 Prompt、等生成、下载、重命名、放进去。有时候一张图就要折腾半小时,效率低得让人想直接放弃配图。

后来我决定:把这件事彻底自动化。

这篇文章记录的是一个真实项目的完整过程——从最初的想法,到最终跑通的脚本——以及我在这个过程中让 AI 帮了哪些忙、又在哪里踩了坑。

需求其实很简单

梳理一下我真正需要什么:

给定一段描述文字,生成一张 1200×630 的封面图,保存到 blog/source/img/ 目录下,文件名自定义。

就这样。不需要风格控制,不需要复杂参数,能跑通就行。

我的第一反应是用 Stable Diffusion,但本地部署太重,不适合日常轻量调用。然后发现了 Pollinations.ai——一个免费的 AI 图片生成 API,直接用 HTTP 请求就能调用,不需要本地环境,也不需要注册。

接口极其简单:

1
GET https://image.pollinations.ai/prompt/{描述}?width=1200&height=630&seed=123

返回的直接是图片二进制流,requests.get() 下来就能用。

让 AI 写第一版脚本

我把需求告诉 AI(当时用的是 WorkBuddy),描述很直接:

帮我写一个 Python 脚本,调用 Pollinations.ai 的 API,根据传入的描述生成图片,保存到指定目录。支持命令行参数:描述、文件名、宽、高、seed。

AI 给出的第一版代码大概是这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import requests
import sys
import os
from pathlib import Path
import urllib.parse

def generate_image(prompt: str, filename: str, width: int = 1200, height: int = 630, seed: int = 42):
output_dir = Path("blog/source/img")
output_dir.mkdir(parents=True, exist_ok=True)

encoded_prompt = urllib.parse.quote(prompt)
url = f"https://image.pollinations.ai/prompt/{encoded_prompt}"

params = {
"width": width,
"height": height,
"seed": seed,
"nologo": "true",
"model": "flux"
}

response = requests.get(url, params=params, timeout=60)
response.raise_for_status()

output_path = output_dir / filename
with open(output_path, "wb") as f:
f.write(response.content)

print(f"图片已保存到:{output_path}")
return output_path

代码整体是对的,但有两个问题我没想到。

第一个坑:超时。

Pollinations.ai 生成一张图通常需要 10-30 秒,有时候更长。timeout=60 对于普通请求绰绰有余,但有时候服务器忙,60 秒不够。而且即使请求超时,图片还在服务器那边生成——下次用同一个 seed 请求,是可以复用缓存的。

改法:把 timeout 调到 120,同时加一个重试逻辑。

第二个坑:文件名带路径前缀。

我最开始的调用方式是这样的:

1
python generate_image.py "科技感工作流" "blog/source/img/workflow.jpg"

结果保存路径变成了 blog/source/img/blog/source/img/workflow.jpg,多了一层。

因为脚本里硬编码了 output_dir = Path("blog/source/img"),然后再拼接文件名,如果文件名本身就带了路径,就会嵌套。

改法:文件名参数只传文件名,不传路径前缀,路径由脚本统一管理。这个规则一旦定下来,后续用起来就很自然了。

命令行参数版本

跑通之后,我让 AI 加上 argparse,把所有参数暴露出来:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import argparse

def main():
parser = argparse.ArgumentParser(description="生成博客封面图")
parser.add_argument("prompt", help="图片描述(英文效果更好)")
parser.add_argument("filename", help="输出文件名,如 my-cover.jpg")
parser.add_argument("--width", type=int, default=1200)
parser.add_argument("--height", type=int, default=630)
parser.add_argument("--seed", type=int, default=42)

args = parser.parse_args()
generate_image(args.prompt, args.filename, args.width, args.height, args.seed)

if __name__ == "__main__":
main()

加上重试逻辑之后,完整的调用示例长这样:

1
2
3
4
5
6
python generate_image.py \
"futuristic workflow automation, glowing data streams, dark background, cinematic" \
"ai-automation-workflow.jpg" \
--width 1200 \
--height 630 \
--seed 412

这条命令跑下来,30 秒左右就能得到一张不错的封面图。

把它嵌进博客工作流

现在我写完文章之后的流程是:

想一个 seed(通常用日期数字,方便记忆和复现)→ 写一段英文 Prompt 描述内容风格 → 跑脚本 → 看图效果 → 不满意就换 seed 重跑。

整个过程从原来的”打开 Midjourney → 等待 → 下载 → 重命名”变成了一条命令,时间从十几分钟压缩到一两分钟。

有一个细节值得说:Prompt 用英文明显比中文效果好。同样的意思,英文描述生成的图质量、风格控制都强不少。这不是偏见,是 Pollinations.ai 底层模型(flux)训练数据分布决定的。

AI 在这个过程里帮了什么

回头看这个项目,AI 主要帮了三件事:

写第一版骨架代码。 我不用从零开始查文档,直接描述需求,拿到一个可以跑的基础版本。这节省了最无聊的那部分时间。

快速定位和修复 bug。 超时问题和路径嵌套问题,我把错误信息丢给 AI,一次就给出了正确的修法,不需要自己去翻文档。

优化细节。 加重试逻辑、加错误提示、处理特殊字符转义——这些零碎的改进,描述一下需求,AI 直接帮我加好。

但有一件事 AI 没帮上,只能我自己解决:调 Prompt 这件事

什么样的 Prompt 能生成好看的封面图,这个判断完全是审美问题,没有标准答案。AI 可以帮我”生成图”,但”生成什么样的图”这个决策,最终还是得人来拍板。

自动化工具把机械性劳动交给机器,判断力和品味这些东西,暂时还得留着自己用。

顺手做了一个 API Key 版本

Pollinations.ai 后来推出了付费计划(花粉积分系统),免费用户每小时有限额,高峰期容易被限速。

我在脚本里加了一个环境变量读取:

1
2
3
4
5
api_key = os.environ.get("POLLINATIONS_API_KEY")
if api_key:
headers = {"Authorization": f"Bearer {api_key}"}
else:
headers = {}

用 API Key 的时候优先级更高,不容易触发限速。没有 key 的时候回退到公共免费模式。

这个改动加了不到十行代码,是个很典型的「用 AI 写完之后自己加小功能」的场景。


这个脚本现在已经在我的博客里跑了快一个月,稳定性还不错。偶尔 Pollinations.ai 服务不稳定,生成失败,脚本会报错退出,我再手动重跑一次。

整体来说,自动化做得好的标志是「跑起来不用想它」。这个脚本基本达到了这个标准。

下一步我想做的是:写完文章之后,自动从文章 Front Matter 里提取关键词,自动生成 Prompt,一键把封面图也生成好。完全零人工。那个版本还在写,等写好了再记录一篇。


用 AI 搭建自动化工作流:我是怎么让博客图片生成全自动的
https://www.ohtudou.top/2026/04/12/2026-04-12-ai-automation-workflow-blog-images/
作者
Tudo
发布于
2026年4月12日
许可协议