Documentation Index
Fetch the complete documentation index at: https://docs.apiyi.com/llms.txt
Use this file to discover all available pages before exploring further.
模型卡
| 模型 | 官方模型名 | 计费 | 备注 |
|---|
| Nano Banana Pro | gemini-3-pro-image-preview | 固定按次 $0.09/次(约 0.63 元;叠加充值活动后约 0.55 元) | 质量最高 |
| Nano Banana 2 | gemini-3.1-flash-image-preview | 按次 $0.055/次(推荐 4K 出图使用);或按量动态计费,2K 约 $0.04 | 性价比 |
| Nano Banana(第一代) | gemini-2.5-flash-image | 固定按次 $0.02/次 | 最便宜 |
尺寸控制
- 遵循原图比例:不传
aspectRatio 即可;在多图编辑场景里,以最后一张图的尺寸为准
- 分辨率
imageSize:支持 1K / 2K / 4K
- Nano Banana(第一代)仅支持 1K
- Nano Banana 2 新增 512px
用同一套代码调用第一代 gemini-2.5-flash-image 时,必须去掉 imageSize 参数(它不支持 2K / 4K),否则会调用失败。
接入方式
官方文档
- 谷歌官方文档:
ai.google.dev/gemini-api/docs/image-generation
- 接入 API易 只需把请求地址 + KEY 替换为 API易 的即可,其余参数与官方一致
端点支持
- 推荐端点(Gemini 原生):
https://api.apiyi.com/v1beta/models/gemini-3-pro-image-preview:generateContent
- 支持 OpenAI 兼容模式调用(注意:不支持 URL 上传,需用 Base64)
- 不支持
/v1/image/generations
开发格式(默认推荐)
- 【推荐】使用谷歌原生端点格式
- 图片:Base64 上传、下载转存
- 调用方式:同步多线程调用,暂不支持异步调用
输入图片要求
- 单图不能超过 7MB(谷歌规则);若通过 Google Cloud Storage 导入,单文件上限 30MB
- 每个提示最多 14 张图
- 支持的 MIME 类型:
image/png、image/jpeg、image/webp、image/heic、image/heif(jpg 格式 API易 已兼容)
- Base64 体积膨胀:图片转 Base64 后体积增加约 33.3%(7MB 的图约为 9.3MB)
- API易 限制:单次请求上传图片总量需低于 100MB——均为同步调用,过大会导致内存爆炸
最佳实践:传给接口前对图片做无损压缩,避免超大分辨率拖慢请求速度。
谷歌官方规格说明(请自行复制访问):docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-pro-image
URL 图片输入说明
除了 Base64,Gemini 原生端点还支持通过 fileData.fileUri 直接传入图片 URL(图床 / OSS 地址),省去本地编码上传的步骤。
URL 上传对图床、OSS 地址的要求较高:如果不是全球 CDN(例如腾讯云对象存储默认走国内 CDN),很可能无法被谷歌服务器识别,进而请求失败(典型表现为不参考图)。如果条件允许,尽量用 Base64 方式上传,稳定性更高——在平台视角,这是通用能力上投入运维资源最多、最可靠的方式。
URL 上传仅在 Gemini 原生端点可用;OpenAI 兼容模式不支持 URL 上传,需改用 Base64。
Curl 示例(fileUri)
curl --location 'https://api.apiyi.com/v1beta/models/gemini-3-pro-image-preview:generateContent' \
--header 'Authorization: Bearer sk-' \
--header 'Content-Type: application/json' \
--data '{
"contents": [
{
"parts": [
{
"fileData": {
"fileUri": "https://raw.githubusercontent.com/apiyi-api/ai-api-code-samples/refs/heads/main/Vision-API-OpenAI/otter.png",
"mimeType": "image/png"
}
},
{
"text": "add five dogs"
}
],
"role": "user"
}
],
"generationConfig": {"responseModalities": ["IMAGE"],
"imageConfig": {
"aspectRatio": "16:9",
"imageSize": "2K"
}},
"safetySettings": []
}' > output.json
Python 示例(fileUri)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Gemini 3 Pro Image - 图片编辑(file_uri 最小化版本)
用途:仅用于快速验证接口可用性
"""
import requests
import base64
import json
from pathlib import Path
from datetime import datetime
# ============================================================================
# 配置区域
# ============================================================================
API_KEY = "sk-"
API_URL = "https://api.apiyi.com/v1beta/models/gemini-3-pro-image-preview:generateContent"
# 图片 URL
IMAGE_URL = "https://raw.githubusercontent.com/apiyi-api/ai-pics/refs/heads/main/1762260696217_dd0352c1f9604540.png"
IMAGE_MIME_TYPE = "image/png"
# 编辑指令
EDIT_PROMPT = "将照片中的人的衣服换成蓝色夹克,头发换成紫色渐变色,人物的动作、眼睛朝向等其他结构不变"
SYSTEM_PROMPT = "您是一位专业的图像描述和生成专家。您的任务是根据用户的请求,创作出细节丰富、艺术风格明确的高质量图像提示,或对现有图像进行准确、有创意的编辑。"
# 输出参数
ASPECT_RATIO = "9:16"
RESOLUTION = "4K"
MAX_OUTPUT_TOKENS = 8000
OUTPUT_FILE = f"minimal_{datetime.now().strftime('%Y%m%d_%H%M%S')}.png"
# ============================================================================
# 核心代码
# ============================================================================
def main():
print("=" * 60)
print("开始测试 file_uri 格式接口")
print("=" * 60)
print(f"图片 URL: {IMAGE_URL[:80]}...")
print(f"编辑指令: {EDIT_PROMPT}")
print(f"输出参数: {RESOLUTION}, {ASPECT_RATIO}")
print("-" * 60)
# 构建请求体
# 注意:fileData、mimeType、fileUri 必须使用驼峰命名
payload = {
"generationConfig": {
"responseModalities": ["IMAGE", "TEXT"],
"imageConfig": {
"imageSize": RESOLUTION,
"aspectRatio": ASPECT_RATIO
},
"maxOutputTokens": MAX_OUTPUT_TOKENS
},
"contents": [
{
"role": "model",
"parts": [{"text": SYSTEM_PROMPT}]
},
{
"role": "user",
"parts": [
{
"fileData": { # 驼峰命名:fileData(不是 file_data)
"mimeType": IMAGE_MIME_TYPE, # 驼峰命名:mimeType
"fileUri": IMAGE_URL # 驼峰命名:fileUri
}
},
{"text": EDIT_PROMPT}
]
}
]
}
# 发送请求
print("\n正在发送请求...")
try:
response = requests.post(
API_URL,
json=payload,
headers={
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
},
timeout=300
)
print(f"响应状态码: {response.status_code}")
if response.status_code != 200:
print(f"❌ 错误: {response.text}")
return
# 解析响应
data = response.json()
print("✅ 成功获取响应")
# 保存完整响应(方便调试)
with open(OUTPUT_FILE + ".response.json", "w", encoding="utf-8") as f:
json.dump(data, f, indent=2, ensure_ascii=False)
print(f"📄 响应已保存: {OUTPUT_FILE}.response.json")
# 提取并打印文本
parts = data["candidates"][0]["content"]["parts"]
for part in parts:
if "text" in part:
print(f"\n💬 文本响应: {part['text']}")
# 保存图片
for part in parts:
if "inlineData" in part or "inline_data" in part:
image_data = part.get("inlineData", part.get("inline_data", {})).get("data")
if image_data:
image_bytes = base64.b64decode(image_data)
with open(OUTPUT_FILE, "wb") as f:
f.write(image_bytes)
print(f"\n✅ 图片已保存: {OUTPUT_FILE}")
print(f"📦 文件大小: {len(image_bytes) / 1024:.1f} KB")
print(f"🔗 文件路径: {Path(OUTPUT_FILE).resolve()}")
return
print("⚠️ 响应中未找到图片数据")
except requests.Timeout:
print("❌ 请求超时")
except Exception as e:
print(f"❌ 错误: {e}")
if __name__ == "__main__":
main()
print("\n" + "=" * 60)
print("测试结束")
print("=" * 60)
fileData、mimeType、fileUri 必须使用驼峰命名(不是 file_data / file_uri),否则参数不生效、表现为不参考图。
计费基础(重要)
- 同步调用耗时:Pro / 2 在 4K 下的合理生成时间约 30–150s
- 超时主动断开仍计费:例如生成需 120s,但客户端把超时设为 100s 主动断开,仍会计费
- 429 / 503 不收费:请求不通时不计费(我们尽量不让客户久等、不卡死迟迟不出图)
- 内容安全拒绝仍计费:客户输入存在内容安全问题、谷歌拒绝出图时,状态码 200 仍会计费——详见下方错误处理与保障计划
超时设置(重要)
4K 出图的整体耗时较长,包含图片上传、API 处理、Base64 图片下载等环节(我们后台按 API 处理用时计费)。正常情况下 4K 用时约 50s(不含轮询),但客户端若把超时设得过短,就会在出图完成前主动断开并报错:
API Connection Error: HTTPSConnectionPool(host='api.apiyi.com', port=443): Read timed out. (read timeout=120)
为更保险,建议按分辨率设置超时时间:
timeout = {
"1K": 300, # 5 分钟 - 快速预览
"2K": 300, # 5 分钟 - 推荐使用
"4K": 600, # 10 分钟 - 超高清
}
常见问题
错误处理指南
出图失败的三大判断指标、内容审核政策与友好提示方案
出图失败保障计划
非主观原因导致的失败,按条数核算后补发额度
应用场景
- AI 对话客户端:Cherry Studio 等客户端可直接配置 API易 出图
- 出图测试:可在对话客户端或控制台快速验证模型效果
高级需求
- 图片上传想用 URL? Gemini 原生端点支持通过
fileData.fileUri 传入图片 URL;但 OpenAI 兼容模式不支持 URL 上传,需改用 Base64。代码示例与注意事项见上文 URL 图片输入说明。
- 图片下载想直接拿到 URL(而非 Base64)? 使用 NB-OSS 分组——详见 Nano Banana OSS 分组。