切换主题
长期免费的文生图API——零成本基建系列
网上文生图 API 很多,但真正满足放进我“零成本基建系列”里的并不多。因为注册送几次体验额度、用完就要充值的,严格说不算长期免费;我这次只列那些有持续免费配额,或者能反复用免费方案调用的入口。最后留下三个:ModelScope、Agnes AI 和 Cloudflare Workers AI,都是亲测能跑的,效果下文见。其余常见平台要么是试用额度,要么图像模型需要按量付费,就不凑数了。另外,免费模型会下线,免费规则也会调整,天下没有永久免费的午餐,切用且珍惜 😃
| 服务 | 实测可用模型/入口 | 免费方式 | 这次状态 |
|---|---|---|---|
| ModelScope | Tongyi-MAI/Z-Image-Turbo | 每天2000次,单模型还有每日使用额度,以模型页面当期标注为准 | 实测成功,PNG 634,252 字节 |
| Agnes AI | agnes-image-2.1-flash | 核心多模态模型无限期免费,受 RPM 限制 | 实测成功,PNG 1,479,446 字节 |
| Cloudflare Workers AI | @cf/black-forest-labs/flux-1-schnell | 每天 10,000 Neurons,次日重置 | 实测成功,JPEG 128,889 字节 |
1. ModelScope:国内调用比较顺手的一个入口
ModelScope 的 API-Inference 文档 里能看到调用限制说明,每天2000次,单模型还有每日使用额度。这次实际跑的是 Tongyi-MAI/Z-Image-Turbo。它的模型页提供了 API-Inference 异步调用示例;同一条中文提示词从任务提交到 SUCCEED 约 14 秒。
测试提示词为:
text
一只坐在窗边的橘猫,午后自然光,摄影风格
测试请求先创建异步任务,再轮询任务状态:
js
const headers = { Authorization: `Bearer ${process.env.MODELSCOPE_API_TOKEN}` };
const submitted = await fetch('https://api-inference.modelscope.cn/v1/images/generations', {
method: 'POST',
headers: { ...headers, 'Content-Type': 'application/json', 'X-ModelScope-Async-Mode': 'true' },
body: JSON.stringify({
model: 'Tongyi-MAI/Z-Image-Turbo',
prompt: '一只坐在窗边的橘猫,午后自然光,摄影风格',
n: 1,
size: '1024x576'
})
});
const { task_id: taskId } = await submitted.json();
// 轮询 GET /v1/tasks/{taskId},状态为 SUCCEED 后下载 output_images[0]使用之前需要先注册并完成 ModelScope 账号认证(具体注册方法参考我前面一篇文章)。
2. Agnes AI:明确写了“无限期免费”
Agnes 的 FAQ 写得很直接:核心 AI 模型可以无限期免费使用;完整多模态模型也免费,里面包含文本、图像和视频。
当然,免费密钥仍有频率限制。按 Token Plan 文档,默认用户生成 1K 图片的实际限制是 20 RPM;2K 是 10 RPM,3K 和 4K 都是 1 RPM。这个速度做个人工具和低频服务足够了。
这次实测模型为 agnes-image-2.1-flash,请求参数是 size: "1K"、ratio: "1:1",接口成功返回 PNG。
测试提示词同样是“一只坐在窗边的橘猫,午后自然光,摄影风格”。

Agnes 使用 OpenAI 风格接口,Base URL 是 https://apihub.agnes-ai.com/v1;文生图接口为:
text
POST https://apihub.agnes-ai.com/v1/images/generations最小请求示例如下:
js
const response = await fetch('https://apihub.agnes-ai.com/v1/images/generations', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.AGNES_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'agnes-image-2.1-flash',
prompt: '一只坐在窗边的橘猫,午后自然光,摄影风格',
size: '1K',
ratio: '1:1',
n: 1
})
});注册很简单,不用绑卡。注册后在控制台创建 API Key 即可,操作界面如下图。
3. Cloudflare Workers AI:每天会重置的免费额度
Cloudflare Workers AI 的免费计划每天有 10,000 Neurons,按 官方定价说明 在 UTC 0 点重置。它不是“注册时送一笔余额”,而是每天重新给一份可用额度。
这次测试用的是 FLUX.1 Schnell:@cf/black-forest-labs/flux-1-schnell。官方模型页给出的默认步数是 4,最大是 8;测试请求使用 512×512、4 步、固定 seed。接口成功返回 JPEG。
一开始FLUX 对中文提示词的理解没有达到我的预期,因此这里用了同一句话的英文翻译:An orange cat sitting by a window, natural afternoon light, photographic style。

开通步骤如下:
- 登录 Cloudflare,进入 Workers AI。
- 在 REST API 中创建 Workers AI API Token;手动创建时还需要
Workers AI Read和Workers AI Edit权限(使用默认设置即可)。
- 创建API Token。

下面是一段最小调用示例。模型名称、请求地址和返回结构都对应 FLUX.1 Schnell 的官方文档。
js
import { writeFile } from 'node:fs/promises';
const url = `https://api.cloudflare.com/client/v4/accounts/${process.env.CLOUDFLARE_ACCOUNT_ID}/ai/run/@cf/black-forest-labs/flux-1-schnell`;
const response = await fetch(url, {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CLOUDFLARE_API_TOKEN}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
prompt: 'An orange cat sitting by a window, natural afternoon light, photographic style',
width: 512,
height: 512,
steps: 4,
seed: 20260731
})
});
const { result } = await response.json();
await writeFile('output.jpg', Buffer.from(result.image, 'base64'));Workers AI 会按模型和参数消耗 Neurons,图片尺寸、步数都不能随意拉满。
怎么选
如果你已经有Cloudflare账号并且需要使用英文提示词,优先试 Workers AI,账号和部署环境不用另起一套。
如果需要一套明确写明无限期免费的 OpenAI 风格图像接口,可以先试 Agnes AI。
如果项目已经在国内模型生态里,ModelScope 会更顺手。
当然这三个都不是拿来批量无限出图的方案,但做做个人工具、验证想法、给小功能补一张封面图,免费额度通常够用。你可以关注我获取更多的零成本基建资讯。
