一个接口接入图片与视频模型,按模型和参数消耗积分,通过异步任务跟踪生成进度。
第二代绘图模型&4K
精准中文理解输出&4K
文生图 / 图生图
让 Codex 等 AI 工具生成图片和视频、上传本地参考文件并保存结果,无需先安装 skill 或连接 MCP。
请读取 /openapi.md,按其中流程完成任务:[描述希望生成的图片或视频]。优先复用已保存的 PixZoo 凭据;没有凭据时发起网页登录授权,向我显示授权链接和授权码。不要输出密钥,不要在生成提交结果未知时自动重发,并将原始结果保存到本地。
需要网络和 Python 3.9+。首次使用登录并确认工具授权,凭据保存在工具环境中并自动续期;仍支持开发者 API Key。
按任务选择模型和参数。支持能力和定价规则以当前模型目录为准。
gpt-image-2文生图 / 图生图
gpt-image-2.5-flare速度优先 · 日常出图与快速原型
gpt-image-2.5-sunburst编辑精度优先 · 商品图与创意制作
gpt-image-2.5-flare-lite图片生成与编辑 · 1K / 2K / 4K · 最多 16 张参考图
gpt-image-2.5-sunburst-lite图片生成与编辑 · 1K / 2K / 4K · 最多 16 张参考图
z-image-turbo快速文生图 · 低成本创作
seedream-5.0字节跳动图片生成与编辑模型
seedream-5.0-flash文生图与多图编辑 · 最多 10 张参考图
seedream-5.0-pro图片生成与编辑 · 1K / 2K · 最多 10 张参考图
wan2.5-text-to-image阿里通义万相文生图模型
qwen-image-edit-plus阿里通义千问图片编辑模型
nano-banana-2第二代绘图模型&4K
nano-banana-2.1图片生成与编辑 · 1K / 2K / 4K · 最多 14 张参考图
nano-banana-2.1-lite图片生成与编辑 · 1K / 2K / 4K · 最多 14 张参考图
nano-banana-pro精准中文理解输出&4K
seedance-2.0多参考融合 · 智能多帧 · 最高 4K
seedance-2.0-fast快速出片 · 全能参考 · 最高 720p
seedance-2.0-mini轻量低成本 · 快速预览
seedance-2.5多图参考 · 智能多帧 · 最长 30 秒
veo3.1-fast-official快速生成 · 最高 4K
veo3.1-quality-official电影感画面 · 最高 4K
veo3.1-fast快速生成 · 最高 4K
veo3.1-quality电影感画面 · 最高 4K
kling-v3首尾帧控制 · 最高 4K · 按秒计费
wan3.0-video多图参考 / 首尾帧 · 最高 1080p · 最长 30 秒
grok-imagine-image文生图 / 多图编辑 · 最多 3 张参考图
grok-imagine-video文生视频 / 多图参考 · 1–15 秒
gemini-omni-flash多模态参考 · 视频编辑
gpt-image-2-officialOpenAI 图像模型 2.0
nano-banana-2-official第二代绘图模型&4K
nano-banana-pro-official精准中文理解输出&4K
generate 只提交一次,保存站点任务 ID 后每 10 秒 query 查询。本地参考文件先上传;请求超时不应自动重新生成。
API Key 仅允许上传、生成(含图片处理)和查询本人任务;不能充值、修改账户设置或管理密钥。生成会消耗账户已有积分。请求头格式如下:
Authorization: Bearer sk-<your-api-key>
Content-Type: application/json| model | 名称 | 支持场景 |
|---|---|---|
| gpt-image-2 | GPT Image 2 | 文生图 / 图生图 |
| gpt-image-2.5-flare | GPT Image 2.5 Flare 加速 | 文生图 / 图生图 |
| gpt-image-2.5-sunburst | GPT Image 2.5 Sunburst 加速 | 文生图 / 图生图 |
| gpt-image-2.5-flare-lite | GPT Image 2.5 Flare | 文生图 / 图生图 |
| gpt-image-2.5-sunburst-lite | GPT Image 2.5 Sunburst | 文生图 / 图生图 |
| z-image-turbo | Z Image Turbo | 文生图 |
| seedream-5.0 | Seedream 5.0 | 文生图 / 图生图 |
| seedream-5.0-flash | Seedream 5.0 Flash | 文生图 / 图生图 |
| seedream-5.0-pro | Seedream 5.0 Pro | 文生图 / 图生图 |
| wan2.5-text-to-image | Wan2.5 文生图 | 文生图 |
| qwen-image-edit-plus | Qwen Image | 图生图 |
| nano-banana-2 | Nano Banana 2 | 文生图 / 图生图 |
| nano-banana-2.1 | Nano Banana 2.1 加速 | 文生图 / 图生图 |
| nano-banana-2.1-lite | Nano Banana 2.1 | 文生图 / 图生图 |
| nano-banana-pro | Nano Banana Pro | 文生图 / 图生图 |
| seedance-2.0 | Seedance 2.0 | 文生视频 / 图生视频 |
| seedance-2.0-fast | Seedance 2.0 Fast | 文生视频 / 图生视频 |
| seedance-2.0-mini | Seedance 2.0 Mini | 文生视频 / 图生视频 |
| seedance-2.5 | Seedance 2.5 | 文生视频 / 图生视频 |
| veo3.1-fast-official | Veo3.1 Fast | 文生视频 / 图生视频 |
| veo3.1-quality-official | Veo3.1 Quality | 文生视频 / 图生视频 |
| veo3.1-fast | Veo3.1 Fast Lite | 文生视频 / 图生视频 |
| veo3.1-quality | Veo3.1 Quality Lite | 文生视频 / 图生视频 |
| kling-v3 | Kling V3 | 文生视频 / 图生视频 |
| wan3.0-video | Wan 3.0 Video | 文生视频 / 图生视频 |
| grok-imagine-image | Grok Imagine Image | 文生图 / 图生图 |
| grok-imagine-video | Grok Imagine Video | 文生视频 / 图生视频 |
| gemini-omni-flash | Gemini Omni Flash | 文生视频 / 图生视频 |
| gpt-image-2-official | GPT Image 2 加速 | 文生图 / 图生图 |
| nano-banana-2-official | Nano Banana 2 加速 | 文生图 / 图生图 |
| nano-banana-pro-official | Nano Banana Pro 加速 | 文生图 / 图生图 |
图片、视频模型及完整能力以 /openapi/models.json 为准
/api/ai/generate/提交一个图片或视频任务。保存 data.id 后查询结果;提交不具备幂等性。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| mediaType | string | ✓ | image 或 video |
| model | string | ✓ | 模型标识符,见上方可用模型列表 |
| prompt | string | ✓ | 生成提示词 |
| scene | string | 选择模型支持的 text-to-image、image-to-image、text-to-video 或 image-to-video 场景 | |
| options.aspectRatio | string | 宽高比,如 "1:1"、"16:9"、"9:16" | |
| options.resolution | string | 分辨率档位,如 "1K"、"2K"、"4K" | |
| options.referenceImages | {url, role?}[] | 有序参考对象数组,每项包含 url 和可选 role:firstFrame、lastFrame 或 reference |
import json, os
from urllib.request import Request, build_opener, HTTPRedirectHandler
class NoRedirect(HTTPRedirectHandler):
def redirect_request(self, *args):
return None
body = {
"schemaVersion": 1,
"mediaType": "image",
"model": "nano-banana-2",
"prompt": "A red panda reading a book, soft natural light",
"scene": "text-to-image",
"options": {
"aspectRatio": "1:1"
}
}
request = Request(
"https://pixzoo.ai/api/ai/generate/",
data=json.dumps(body).encode(),
headers={"Authorization": "Bearer " + os.environ["PIXZOO_API_KEY"],
"Content-Type": "application/json"},
)
# One attempt. Never retry an ambiguous generation submission.
with build_opener(NoRedirect()).open(request, timeout=180) as response:
result = json.load(response)
if result.get("code") != 0:
raise RuntimeError("PixZoo API rejected the request")
from pathlib import Path
Path("pixzoo-task-id.txt").write_text(result["data"]["id"])
print("Task ID saved; query the same ID for results")
# Full resumable upload/wait/download workflow: https://pixzoo.ai/openapi.md{
"code": 0,
"message": "ok",
"data": {
"id": "3f2a1b4c-...",
"status": "queuing"
}
}{
"schemaVersion": 1,
"mediaType": "video",
"model": "seedance-2.0",
"prompt": "A red panda reading a book, slow camera dolly, soft natural light",
"scene": "text-to-video",
"options": {
"aspectRatio": "16:9"
}
}支持场景、参考素材数量、时长与分辨率以当前模型目录为准。先上传参考素材,再传 canonical referenceImages/referenceVideos/referenceAudios。
申请与确认上传均支持 Authorization: Bearer API_KEY 和 application/json;文件字节直接 PUT 到返回的存储地址。现有可访问 URL 可直接用于生成,无需重复上传。
/api/storage/presign/| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| filename | string | ✓ | 原始文件名,1–255 个字符。 |
| contentType | string | ✓ | 实际 MIME 类型,须在下方支持列表中。 |
| size | integer | ✓ | 原始文件实际字节数,正整数;不是 MB。 |
| purpose | "media" | 使用 media,普通参考上传不创建素材库记录。 |
请求 JSON
{
"filename": "reference.png",
"contentType": "image/png",
"size": 1024,
"purpose": "media"
}响应示例(域名、签名、ID 和时间仅为占位)
{
"code": 0,
"message": "ok",
"data": {
"uploadId": "11111111-1111-4111-8111-111111111111",
"uploadUrl": "https://storage.example.test/pending/reference.png?signature=example",
"headers": {
"Content-Type": "image/png"
},
"expiresAt": "2030-01-01T00:05:00.000Z"
}
}以文件原始字节作为整个请求体,使用返回的 data.headers;不要发送 JSON、multipart、Cookie 或 PixZoo API Key。检查 PUT 的 HTTP 状态后再确认上传。
/api/storage/complete/| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| uploadId | UUID | ✓ | 申请直传返回的 uploadId,UUID;必须由同一用户确认。 |
请求 JSON
{
"uploadId": "11111111-1111-4111-8111-111111111111"
}响应示例(域名、签名、ID 和时间仅为占位)
{
"code": 0,
"message": "ok",
"data": {
"uploadId": "11111111-1111-4111-8111-111111111111",
"key": "uploads/example/reference.png",
"url": "https://media.example.test/uploads/reference.png",
"filename": "reference.png",
"size": 1024,
"materialId": null
}
}签名 URL 有效期为 5 分钟,确认窗口为 1 小时。确认接口对同一个 uploadId 幂等;响应丢失时只重试确认。完成后使用 data.url 作为参考素材,不要使用临时 uploadUrl。模型可能有更严格的参考素材限制。
| MIME 类型 | 最大大小 |
|---|---|
| image/jpeg | 25 MiB |
| image/png | 25 MiB |
| image/webp | 25 MiB |
| image/gif | 25 MiB |
| image/svg+xml | 5 MiB |
| video/mp4 | 100 MiB |
| video/webm | 100 MiB |
| video/quicktime | 100 MiB |
| audio/mpeg | 25 MiB |
| audio/wav | 25 MiB |
| audio/x-wav | 25 MiB |
| audio/mp4 | 25 MiB |
| audio/aac | 25 MiB |
| audio/ogg | 25 MiB |
/api/ai/query/每 10 秒查询当前用户的站点任务 ID。success、failed、canceled 为终态;查询超时不等于任务失败。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| taskId | string | ✓ | 由 /api/ai/generate/ 返回的任务 ID |
import json, os
from urllib.request import Request, build_opener, HTTPRedirectHandler
class NoRedirect(HTTPRedirectHandler):
def redirect_request(self, *args):
return None
body = {
"taskId": "replace-with-site-task-id"
}
request = Request(
"https://pixzoo.ai/api/ai/query/",
data=json.dumps(body).encode(),
headers={"Authorization": "Bearer " + os.environ["PIXZOO_API_KEY"],
"Content-Type": "application/json"},
)
# One attempt. Never retry an ambiguous generation submission.
with build_opener(NoRedirect()).open(request, timeout=180) as response:
result = json.load(response)
if result.get("code") != 0:
raise RuntimeError("PixZoo API rejected the request")
print("Task status:", result["data"]["status"])
# Full resumable upload/wait/download workflow: https://pixzoo.ai/openapi.md{
"code": 0,
"message": "ok",
"data": {
"id": "3f2a1b4c-...",
"status": "processing",
"outputImages": null
}
}{
"code": 0,
"message": "ok",
"data": {
"id": "3f2a1b4c-...",
"status": "success",
"outputImages": [
"https://gempix.cn/outputs/xxx.png"
]
}
}| status | 说明 |
|---|---|
| queuing | 已入队,等待处理 |
| pending | 已提交至 AI 提供商,等待响应 |
| processing | AI 提供商处理中 |
| success | 生成成功;outputImages 包含原始图片或视频 URL |
| failed | 生成失败,已自动退还消耗的积分 |
| canceled | 任务已取消,停止查询 |
同时检查 HTTP 状态与 JSON code。HTTP 200 且 code=-1 仍为业务失败。鉴权失败或余额不足时停止,不自动重新提交生成。
{
"code": -1,
"message": "insufficient credits"
}no authAPI Key 无效或未传入insufficient credits积分不足task not found任务不存在no permission无权访问该任务(任务属于其他用户)直接在当前页面创建并复制密钥。每个账号最多 10 个 Key,可分别用于不同项目。
正在加载 API Key…
了解鉴权、本地素材上传、计费和任务恢复。