Skip to content

长期免费的文生图API——零成本基建系列

网上文生图 API 很多,但真正满足放进我“零成本基建系列”里的并不多。因为注册送几次体验额度、用完就要充值的,严格说不算长期免费;我这次只列那些有持续免费配额,或者能反复用免费方案调用的入口。最后留下三个:ModelScope、Agnes AI 和 Cloudflare Workers AI,都是亲测能跑的,效果下文见。其余常见平台要么是试用额度,要么图像模型需要按量付费,就不凑数了。另外,免费模型会下线,免费规则也会调整,天下没有永久免费的午餐,切用且珍惜 😃

服务实测可用模型/入口免费方式这次状态
ModelScopeTongyi-MAI/Z-Image-Turbo每天2000次,单模型还有每日使用额度,以模型页面当期标注为准实测成功,PNG 634,252 字节
Agnes AIagnes-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
一只坐在窗边的橘猫,午后自然光,摄影风格

1.00

测试请求先创建异步任务,再轮询任务状态:

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 Image 2.1 Flash 实测结果
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

1.00

开通步骤如下:

  1. 登录 Cloudflare,进入 Workers AI。
  2. REST API 中创建 Workers AI API Token;手动创建时还需要 Workers AI ReadWorkers AI Edit 权限(使用默认设置即可)。
  3. 创建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 会更顺手。
当然这三个都不是拿来批量无限出图的方案,但做做个人工具、验证想法、给小功能补一张封面图,免费额度通常够用。你可以关注我获取更多的零成本基建资讯。