快速开始
这是基于 Google Flow 的私有图片生成 API,完全兼容 OpenAI 的 POST /v1/images/generations 协议,你可以直接用 OpenAI 官方 SDK / 任何 OpenAI 兼容的客户端工具来调用,无需改代码。
- 从管理员那里拿到一个邀请链接(形如
https://flow.aizyk.cn/invite/xxxxxx) - 点开链接,输入你的名字 → 自动获得一个
ak_开头的 API key - 把 key 收藏好(只显示一次),下面就用它替换示例里的
YOUR_API_KEY - API Base URL 是
https://flow.aizyk.cn/v1
认证方式
所有请求需要在 HTTP Header 里带上:
Authorization: Bearer YOUR_API_KEY
如果 key 错了 / 被禁用了 / 不带这个 header,会返回 401 或 403。
OpenAI 兼容接口
这是推荐用法:跟 OpenAI 的 image 接口几乎一样,同步阻塞等待图片生成完,直接返回图片 URL(或 base64)。
请求
POST /v1/images/generations
{
"prompt": "黑神话悟空 写实风格 4K电影",
"model": "Nano Banana Pro",
"n": 2,
"size": "1792x1024",
"response_format": "url"
}参数
| 字段 | 类型 | 默认 | 说明 |
|---|---|---|---|
prompt | string | 必填 | 提示词,最长 4000 字 |
model | string | Nano Banana Pro | 见支持的模型 |
n | int | 1 | 生成数量,1~4 |
size | string | 1024x1024 | 见支持的尺寸 |
response_format | string | url | url / b64_json |
user | string | - | OpenAI 字段,会被忽略但不会报错 |
响应
{
"created": 1714112345,
"data": [
{
"url": "https://flow.aizyk.cn/files/abc.../image-1.jpg?e=1716700000&s=...",
"revised_prompt": "..."
},
{
"url": "https://flow.aizyk.cn/files/abc.../image-2.jpg?e=1716700000&s=..."
}
]
}- 返回的 URL 带签名,浏览器 / 任何工具直接打开就能看图,无需鉴权
- URL 默认有效期 7 天
- 如果用
response_format: "b64_json",data[].b64_json是 base64 编码的图片字节,直接 decode 就是 jpg
支持的模型
| 显示名 | 说明 | 别名(都识别) |
|---|---|---|
Nano Banana Pro | 最强模型(默认) | nano-banana-pro / pro / dall-e-3 / gpt-image-1 |
Nano Banana 2 | 次一档,速度快 | nano-banana-2 / dall-e-2 |
Imagen 4 | Google 经典 Imagen | imagen-4 / imagen4 |
model 默认用 Nano Banana Pro。支持的尺寸
| size | 实际比例 | 用途 |
|---|---|---|
1024x1024 / 512x512 / 1:1 | 方形 1:1 | 头像、icon、缩略图 |
1792x1024 / 16:9 | 横屏 16:9 | 电影截图、桌面壁纸、横版海报 |
1024x1792 / 9:16 | 竖屏 9:16 | 抖音/小红书封面、手机壁纸、竖版海报 |
SDK 示例
因为完全兼容 OpenAI,可以直接用官方 SDK,只需要改两个参数:api_key 和 base_url。
Python(OpenAI 官方 SDK)
装包:
pip install openai代码:
下载图片到本地:
import httpx
url = resp.data[0].url
img_bytes = httpx.get(url).content
with open("output.jpg", "wb") as f:
f.write(img_bytes)或者直接拿 base64(不走 URL):
import base64
resp = client.images.generate(prompt="cat", response_format="b64_json")
img_bytes = base64.b64decode(resp.data[0].b64_json)
open("cat.jpg", "wb").write(img_bytes)Node.js / TypeScript(OpenAI 官方 SDK)
装包:
npm install openai代码:
curl / PowerShell
curl(Linux / macOS / Windows 11+):
PowerShell:
第三方工具接入
任何"自定义 OpenAI 接口"的工具都能用。在工具里配置:
| 字段 | 填什么 |
|---|---|
| API Type | OpenAI / OpenAI 兼容 |
| API Base URL / Endpoint | |
| API Key | 你的 ak_xxxxx |
| 模型名 | Nano Banana Pro 或 dall-e-3 |
常见工具
- Cherry Studio:设置 → 模型服务 → 添加 → 类型选 OpenAI → Base URL 填上面的
- NextChat / ChatGPT-Next-Web:自定义接口 → 接入点 = Base URL
- Lobe Chat:设置 → 语言模型 → OpenAI → API Proxy Address
- One-API / New-API(中转站):渠道 → 添加 → 类型 OpenAI → Base URL 填上面的,同时把 model 映射设成
dall-e-3 → Nano Banana Pro - ComfyUI / SD WebUI:装 OpenAI image 插件后填 Base URL 即可
原生异步接口(高级)
如果你的场景需要"先快速把任务塞进队列、稍后再来取结果"(比如批量生图、不想阻塞),用我们的原生异步接口。
查询自己的信息
GET /v1/me
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://flow.aizyk.cn/v1/me返回:
{
"name": "alice",
"key_preview": "ak_xxx...yyy",
"daily_quota": 100,
"today_used": 12,
"total_used": 230,
"created_at": 1714000000.0
}提交任务(异步)
POST /v1/images/generate — 立即返回 task_id,需要轮询查状态。
curl -X POST https://flow.aizyk.cn/v1/images/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"a cat","count":2,"aspect_ratio":"IMAGE_ASPECT_RATIO_LANDSCAPE","model":"Nano Banana Pro"}'
# 返回:{"task_id":"abc...","status":"queued"}轮询任务:GET /v1/tasks/<task_id>
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://flow.aizyk.cn/v1/tasks/abc...
# 返回:
# {
# "task_id": "abc...",
# "status": "completed", // queued / running / completed / failed
# "images": ["https://flow.aizyk.cn/files/abc.../image-1.jpg?e=...&s=..."],
# "error": null,
# ...
# }列出自己的最近任务:GET /v1/tasks?limit=50
错误码
| HTTP | 含义 | 怎么办 |
|---|---|---|
401 | 没带 Authorization 头 | 加 Authorization: Bearer ak_xxx |
403 | API key 错了 / 被禁用 | 找管理员重发邀请链接 |
404 | task_id / 文件不存在 | 检查路径或 task_id |
422 | 请求参数格式错 | 看 detail 字段提示 |
429 | 超出每日配额 | 明天再来 / 找管理员加配额 |
502 | Flow 生图失败 | 看 detail;偶发可重试 |
504 | OpenAI 接口同步等超时 | 用 detail 里的 task_id 走异步轮询 |
常见问题
每天配额怎么算?
每提交一次任务(不论成功失败)算一次。每天 UTC 0 点重置。当前你的配额可以在用户面板看到。
图片 URL 多久过期?
默认 30 天。过期后那个 URL 不能访问,但图片本身在服务器上还在,找管理员能找回。所以建议拿到 URL 立刻下载本地长期保存。
能不能加 prompt 模板 / 中转 prompt?
我们不改 prompt,原样转发给 Flow。你想加固定后缀 / 风格关键词,自己在客户端拼。
支持图生图 / inpaint / 上传参考图吗?
暂时不支持,仅文本 → 图。后续看需求加。
速度多快?
单张图大约 10~30 秒。多账号并行,但每账号串行。同时提多个任务会排队,不会并发到同一账号上。
失败了怎么办?
看 error 字段。常见原因:账号被风控 / Google 服务波动 / 提示词触发安全策略。前两类一般等几分钟自动恢复,第三类换个 prompt。
能调 prompt 让模型严格按描述生图吗?
可以,但 Flow 自带"风格化",如果想原汁原味建议在 prompt 末尾加上 , exact, no creative liberties 之类的提示。或者把 prompt 写得非常具体(不留歧义)。
Key 丢了怎么办?
找管理员把旧 key 禁用,重发一个邀请链接给你。
有 SLA / 服务保证吗?
这是团队内部工具,没有正式 SLA。有事在群里 @ 管理员。