用代码调用 AI 生图,一个人也能自动化
我那批 20 张涂色线稿如果靠手动一张张下载,光是改文件名和归档就够我忙一下午,所以第二天我就把它接进了脚本。下面就把用代码调用 AI 生图的方案怎么做这件事拆开讲。
用代码调用 AI 生图,关键不是选哪家接口,而是把"提交任务、拿结果、落盘归档、失败重试"这四件事写成一段能重复跑的代码。 下面是我实际用的顺序。
用代码调用 AI 生图的方案怎么做,先想清楚哪些事该自动化
不是所有出图都值得写代码。一次性、张数少、需要反复调提示词的图,手工跑更快。
值得自动化的场景有三个特征:提示词已经定稿、张数多、需要重复跑(比如每周固定出一批封面)。
我第一版脚本就是在一批图需要重跑三次之后才写的,那时候才明确知道哪些参数该固化。
第一步:把提示词做成模板,参数从外面传
不要把提示词硬编码在调用代码里。我的做法是模板里留几个占位符——主体、风格、比例、数量——跑的时候从清单文件读。
这样换一批图只需要改清单,代码一行不动。这一步做好,后面所有改动都变便宜。
第二步:一次提交,异步等结果
生图接口基本都不是瞬间返回的。常见的是先提交拿到任务标识,再轮询查状态,或者把结果回调到你的地址。
我踩过的坑是用同步思路写代码,一个请求卡在那里等图,一批跑下来要盯着不敢关窗口。
正确做法是把"提交"和"取回"拆成两个阶段,中间存一个任务记录。这样中途断了也能续跑,不用从头再来。
第三步:落盘和归档按用途走
拿到图之后立刻做的事:改成一个有意义的名字、放进对应的文章或项目目录、在记录里写上生成日期和提示词。
我一开始按时间戳命名,一周之后自己都认不出哪张是干什么的。文件名要带用途,不要带时间。
第四步:失败重试和限流,这步别省
批量跑一定会遇到失败:网络抖动、额度用尽、内容被拦截、返回格式异常。
我的处理是三件事:失败的任务单独记下来、设一个有限次数的重试、遇到限流就退避等待再继续。
另外额度、计费方式、并发限制这些每家都不一样,以服务商官方文档当天公布的口径为准,别照着别人的教程硬套。
容易卡住的两个点
第一个是密钥管理。 别把密钥写在代码里提交到仓库,用环境变量或者本地配置文件,并且把配置文件加进忽略列表。
第二个是别把脚本写成一次性。 我第一次写的版本里什么参数都是写死的,第二次要用的时候等于重写。现在我的脚本跑法固定是"喂一份清单、吐一个目录",谁都能接手。
成本这件事怎么控
自动化之后最容易失控的是用量。手工出图你会有感觉,脚本跑起来是没有感觉的,一晚上可能就把额度跑完了。
我的做法是清单里写死数量上限,脚本按清单跑,不按循环跑。
另外每次跑完把实际用量记一行,隔一段时间回头看一次。不用精确核算,但要知道量级,不然等到账单出来才发现不对就晚了。
具体的计费规则和免费额度各家不同,以服务商官方口径为准,我只管好自己这边的阀门。
值不值得写这个脚本
回到"用代码调用 AI 生图的方案怎么做",判断标准其实很简单:这件事你会不会做第二次。
只做一次的任务,写脚本的时间一定超过手工做的时间。我的 20 张线稿那批,如果只做一次,手工更快。
但它后来被我重跑了三次,每次都是改几个参数。到第二次的时候脚本就已经回本了。
所以我现在写脚本的门槛是"预期会重复三次以上"。低于这个数,先手工做,等第三次的时候再动手写。
常见问题
Q:用代码调用 AI 生图,需要专门的框架吗?
A:不需要。一段普通的脚本就够了,核心是把提交任务、轮询结果、下载落盘、失败重试这四段拆开写清楚,比引入框架更可控。
Q:批量调用会不会容易被限流?
A:会,尤其是并发跑太多的时候。做法是控制并发数、失败后退避重试,具体限制以服务商官方文档为准,别硬冲。
Q:生成出来的图怎么和文章对应上?
A:靠归档规则,不靠记忆。一份清单记录文章和图的对应关系,图按用途命名并放进对应目录,跑第二次的时候直接覆盖同名文件就行。
相关阅读
- 怎么批量生成文章配图,我的 5 步流程
- AI 生成的图片怎么验收,我的 6 条清单
- AI 做图提示词怎么写才稳定,拆成 4 段
- AI 画图选开源还是商业 API,我比了 4 项
- AI 写业务逻辑为什么总漏,我找到 3 个原因
本文作者西米,37 岁程序员,一个人加五个 AI 员工在跑一家公司。踩过的坑和真实账本都写在公众号「西米分享」。
完整代码、踩坑清单与最新进展,都在公众号。
📱 关注公众号「西米分享」