首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >用了一下午浪费¥2.4,我终于跑通了自动化生图

用了一下午浪费¥2.4,我终于跑通了自动化生图

作者头像
码森林
发布2026-03-31 15:22:16
发布2026-03-31 15:22:16
1420
举报

事情是这样的,老板说要搞一套信息图自动生成流程,我心想这有啥难的,结果…

01 接到任务

周五下午 3 点,老板把我叫过去:

"咱们那篇 Harness Engineering 的文章不错,做成信息图发小红书吧。"

"行,我找设计师排期。"

"不用,你搞个自动化流程,以后每篇文章都能用。"

…行吧,自己挖的坑自己填。


02 第一步就卡住了

我寻思着阿里云百炼有图像生成 API,接上不就行了。

第一个坑:API Key 权限

代码语言:javascript
复制
curl -X POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text-to-image/generation \
  -H "Authorization: Bearer sk-xxx" \
  -d '{"model":"qwen-image-2.0","input":{"prompt":"三角形"}}'

返回:

代码语言:javascript
复制
{"code":"InvalidApiKey","message":"Invalid API-key provided."}

我心想完了,Key 是假的。找老板要了个新的,还是报错。

真相:聊天模型的 Key 和图像生成的 Key 不是一回事。你得在阿里云百炼控制台单独开通通义万相服务。

💡 教训 1:同一个平台的 API,不同服务可能要用不同的 Key,开通前看清楚文档。


03 第二个坑:端点格式

换了 Key 之后,继续报错:

代码语言:javascript
复制
{"code":"InvalidParameter","message":"url error, please check url!"}

我检查了半天 URL,拼写没错啊。

真相:通义万相的 API 端点不是 /text-to-image/generation,而是 /multimodal-generation/generation,而且输入格式是 messages 数组,不是简单的 input.prompt

正确格式

代码语言:javascript
复制
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--data '{
 "model": "qwen-image-2.0-pro",
 "input": {
 "messages": [
 {
 "role": "user",
 "content": [
 {
 "text": "你的提示词"
 }
 ]
 }
 ]
 },
 "parameters": {
 "n": 1,
 "watermark": false,
 "size": "1280*720"
 }
}'

💡 教训 2:阿里云的 API 文档分散在多个页面,一定要找到对应服务的准确文档,别信示例代码。


04 第三个坑:URL 过期

终于生成成功了!返回了图片 URL:

代码语言:javascript
复制
https://dashscope-7c2c.oss-accelerate.aliyuncs.com/.../xxx.png?Expires=1775210221&...

我心想太好了,赶紧发群里给老板看。

3 分钟后:图片打不开了。

真相:OSS 返回的是临时签名 URL,有效期很短(大概 5-10 分钟)。你不及时下载,链接就废了。

💡 教训 3:生成的图片必须立即保存到本地,别依赖临时 URL。


05 第四个坑:手贱删文件

这个坑是我自己挖的,也是最贵的一个坑。

当时我已经生成了 10 张图,但有些文件名不对,我想清理一下:

代码语言:javascript
复制
rm "/Users/wangc/Pictures/AI 生图库/"*.png

然后整个世界安静了。

10 张图,全没了。

原因是通配符匹配了所有 PNG 文件,包括刚生成的。

💡 教训 4:执行 rm 之前,先用 ls 看一下会匹配到什么文件。别相信我,我错了。


06 第五个坑:API 限流

重新生成吧。

代码语言:javascript
复制
{"code":"Throttling.RateQuota","message":"Requests rate limit exceeded."}

真相:阿里云百炼有请求频率限制,大概是每分钟 10-15 次。连续请求会被限流。

解决方案:在请求之间加 sleep 5,等 5 秒再发下一个。

💡 教训 5:批量生成时要控制节奏,别把 API 打挂了。


07 最终方案

踩完这些坑,我搞了个靠谱的脚本:

代码语言:javascript
复制
#!/bin/bash

# 生成并保存图片的脚本
generate_and_save() {
    local prompt="$1"
    local output="$2"
    
    # 生成图片,输出到临时文件
    curl -s --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
    --header 'Content-Type: application/json' \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
    --data "{
     \"model\": \"qwen-image-2.0-pro\",
     \"input\": {
     \"messages\": [{\"role\": \"user\", \"content\": [{\"text\": \"$prompt\"}]}]
     },
     \"parameters\": {\"n\": 1, \"watermark\": false, \"size\": \"1280*720\"}
    }" > /tmp/img.json
    
    # 提取 URL
    URL=$(grep -o '"image":"[^"]*"' /tmp/img.json | cut -d'"' -f4)
    
    # 立即下载
    curl -L "$URL" -o "$output"
    
    # 验证文件
    if [ -f "$output" ] && [ $(stat -f%z "$output") -gt 10000 ]; then
        echo "✅ 保存成功:$output"
    else
        echo "❌ 保存失败:$output"
        exit 1
    fi
}

# 使用示例
generate_and_save "Notion 风格手绘插画,纯黄色线条,中央大标题 Harness Engineering" \
                  "/Users/wangc/Pictures/AI 生图库/01-封面.png"

# 等 5 秒避免限流
sleep 5

核心原则

  1. 1. 生成后立即提取 URL
  2. 2. 立即下载到本地
  3. 3. 验证文件大小(大于 10KB 才算成功)
  4. 4. 每张图之间 sleep 5

08 成果

一下午,10 张信息图,全部搞定:

编号

文件名

大小

01

01-封面.png

1.0M

02

02-OpenAI 案例.png

1.3M

03

03-马具比喻.png

1.2M

04

04-三大支柱.png

1.0M

05

05-上下文工程.png

1.1M

06

06-架构约束.png

1.1M

07

07-熵管理.png

1.2M

08

08-实操指南.png

1.0M

09

09-思维转变.png

1.2M

10

10-开始构建.png

1.2M

总计:11MB,16:9 比例,Notion 手绘风格。


09 成本核算

通义万相 qwen-image-2.0-pro 的定价大概是 ¥0.12/张。

  • • 第一次生成 10 张:¥1.2(URL 过期,浪费)
  • • 第二次生成 10 张:¥1.2(手贱删了,浪费)
  • • 第三次生成 10 张:¥1.2(成功保存)

总成本:¥3.6 有效成本:¥1.2 浪费成本:¥2.4

钱不多,但心疼。主要是耽误时间。


10 经验总结

给要接入图像生成 API 的同学:

  1. 1. 先开通服务 — 别拿到 Key 就直接用,先去控制台确认服务已开通
  2. 2. 找对 API 文档 — 阿里云的文档太分散了,一定要找到对应服务的准确页面
  3. 3. 立即保存 — 临时 URL 有效期很短,生成后马上下载
  4. 4. 批量要限流 — 加 sleep,别把 API 打挂了
  5. 5. rm 之前先 ls — 这个最重要,血的教训

给老板的:

自动化流程第一次肯定有坑,预算要留够。 这次浪费了 ¥2.4,下次就不会了。


11 后续优化

这个流程还能改进:

  1. 1. 提示词模板化 — 把 Notion 风格的提示词做成模板,复用
  2. 2. 失败重试 — 生成失败自动重试,别手动来
  3. 3. 质量检查 — 生成的图太丑要能识别出来
  4. 4. 批量队列 — 一次提交 10 个任务,异步生成

但这些,等下次吧。

今天先到这里,下班。


最后

自动化不是银弹,第一次肯定比手动慢。 但跑通之后,边际成本趋近于零。 这大概就是工程师的价值吧。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码森林 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01 接到任务
  • 02 第一步就卡住了
  • 03 第二个坑:端点格式
  • 04 第三个坑:URL 过期
  • 05 第四个坑:手贱删文件
  • 06 第五个坑:API 限流
  • 07 最终方案
  • 08 成果
  • 09 成本核算
  • 10 经验总结
    • 给要接入图像生成 API 的同学:
    • 给老板的:
  • 11 后续优化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档