网关地址
默认推荐:
https://vip.zpika.com
以下地址同样可用:
https://aivideo.zpika.com
示例统一写 https://vip.zpika.com。换成 aivideo.zpika.com 时,仅替换域名,路径保持不变。
模型与分组
| 模型 | 分组 | 说明 |
|---|---|---|
gemini-3.1-flash-image-preview |
banana | 更快,参考图建议 ≤ 3 张,支持最高 4K |
gemini-3-pro-image-preview |
banana | 更强,多图融合建议用 Pro,参考图最多约 14 张,支持最高 4K |
参考图上限由模型决定,网关透传:
- Flash:建议 ≤ 3 张
- Pro:最多约 14 张(多图融合 / 角色一致性更稳)
错误提示(单独说明)
特别提醒:出现 400 报错,通常是提示词触发了内容安全策略
常见原因:违规、版权、可识别真人。这是上游确定性拒绝,换账号或反复重试通常无效,需要改提示词或更换参考图。完整避坑请看 内容审查指南(视频 / 图片)。
测试渠道时,请用有意义的提示词
请使用「cat」「一只西瓜在跳舞」这类有语义的词,不要只用「test」等无意义词,否则更容易异常或被拒。
- 400 / 内容拒绝:修改 prompt 或参考图后再提交。
- 401 / 403:检查 Key 是否有效,分组是否选中 banana。
- 超时 / 5xx:可稍后重试;高分辨率 4K 更耗时,请把超时调到 ≥ 180s。
- 未返回图片:检查响应
candidates[0].content.parts是否包含inlineData或fileData。
认证方式
Gemini 原生格式推荐使用:
x-goog-api-key: sk-你的密钥
也兼容:
Authorization: Bearer sk-你的密钥
文生图示例(Gemini 原生)
curl · 4K
curl -s https://vip.zpika.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent \
-H "x-goog-api-key: sk-你的密钥" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"role": "user",
"parts": [
{ "text": "一只西瓜在跳舞,电影级光影,超高细节" }
]
}
],
"generationConfig": {
"imageConfig": {
"imageSize": "4K",
"aspectRatio": "1:1"
}
}
}'
Pro 模型
curl -s https://vip.zpika.com/v1beta/models/gemini-3-pro-image-preview:generateContent \
-H "x-goog-api-key: sk-你的密钥" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"role": "user",
"parts": [
{ "text": "科幻海报,霓虹城市,角色特写,电影构图" }
]
}
],
"generationConfig": {
"imageConfig": {
"imageSize": "4K",
"aspectRatio": "16:9"
}
}
}'
图生图 / 多图融合
把参考图作为 inlineData(base64)放进 parts,与文字指令并列即可。不传参考图就是纯文生图。
请求体结构
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "把这几张图融合成一张科幻海报,保持主体一致" },
{
"inlineData": {
"mimeType": "image/png",
"data": "BASE64_REF_1"
}
},
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "BASE64_REF_2"
}
}
]
}
],
"generationConfig": {
"imageConfig": {
"imageSize": "2K",
"aspectRatio": "1:1"
}
}
}
Python 示例(可直接改 Key / 模型 / 图片路径)
#!/usr/bin/env python3
import base64
from pathlib import Path
import httpx
MODEL = "gemini-3-pro-image-preview" # 多图融合建议 Pro
BASE = "https://vip.zpika.com"
API_KEY = "sk-你的密钥"
def img_part(path: str) -> dict:
raw = Path(path).read_bytes()
mime = "image/png" if path.lower().endswith(".png") else "image/jpeg"
return {"inlineData": {"mimeType": mime, "data": base64.b64encode(raw).decode()}}
refs = ["./ref1.png", "./ref2.png"] # 纯文生图时改为 refs = []
parts = [{"text": "把这几张图融合成一张科幻海报,保持画面主体一致"}]
parts += [img_part(p) for p in refs]
body = {
"contents": [{"role": "user", "parts": parts}],
"generationConfig": {
"imageConfig": {
"imageSize": "4K", # 1K / 2K / 4K
"aspectRatio": "1:1", # 1:1 / 16:9 / 9:16 / 4:3 / 3:4 ...
}
},
}
r = httpx.post(
f"{BASE}/v1beta/models/{MODEL}:generateContent",
headers={"x-goog-api-key": API_KEY},
json=body,
timeout=180,
)
r.raise_for_status()
out_parts = r.json()["candidates"][0]["content"]["parts"]
data = next((p["inlineData"]["data"] for p in out_parts if "inlineData" in p), None)
if not data:
raise SystemExit(f"未返回图片,响应 parts: {out_parts}")
Path("output.png").write_bytes(base64.b64decode(data))
print("已保存 output.png")
尺寸与宽高比
| 参数 | 可选值 | 说明 |
|---|---|---|
imageSize | 1K / 2K / 4K | 输出分辨率;默认多为 1K。两个模型均支持到 4K |
aspectRatio | 1:1 / 16:9 / 9:16 / 4:3 / 3:4 / 3:2 / 2:3 … | 画面比例 |
Gemini 原生格式字段使用 camelCase,放在:
generationConfig.imageConfig.imageSize
generationConfig.imageConfig.aspectRatio
返回链接模式(可选)
默认返回内联 base64(在 inlineData.data)。若不想接收大段 base64,可加请求头:
X-Image-Response: url
此时响应中的 base64 会替换为链接形态(fileData.fileUri):
{
"candidates": [{
"content": {
"parts": [{
"fileData": {
"mimeType": "image/png",
"fileUri": "https://vip.zpika.com/v1/images/{request_id}/content?index=0"
}
}]
}
}]
}
可凭请求 ID 再次取件(多图 index 从 0 递增,取件需带鉴权):
curl "https://vip.zpika.com/v1/images/{request_id}/content?index=0" \
-H "Authorization: Bearer sk-你的密钥" \
-o out.png
图片缓存时长由服务端配置决定,过期后取件会返回 404。请及时下载保存。
返回字段
| 字段 | 说明 |
|---|---|
candidates[0].content.parts[].inlineData.data | 默认模式:base64 图片 |
candidates[0].content.parts[].inlineData.mimeType | 图片 MIME,如 image/png |
candidates[0].content.parts[].fileData.fileUri | 链接模式:图片 URL |
响应头 X-Oneapi-Request-Id | 可用于再次取件(若服务端返回) |
若你更习惯 OpenAI Images 的 /v1/images/generations,请使用 gpt-image-2 文档。