想要使用NanoBanana API,主要有两个途径:官方渠道和第三方中转。
官方渠道主要是通过Google AI Studio或者Vertex AI。
import requestsimport json# 你的API KeyAPI_KEY = "YOUR_API_KEY"# 官方API地址API_URL = "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image-preview:generateContent"headers = {
"Content-Type": "application/json",
"x-goog-api-key": API_KEY}data = {
"contents": [{
"parts": [{"text": "一只穿着宇航服的猫,在月球上喝咖啡,电影质感"}]
}]}response = requests.post(API_URL, headers=headers, data=json.dumps(data))if response.status_code == 200:
print("生成成功!")
# 处理返回的图像数据else:
print(f"请求失败: {response.status_code}, {response.text}")官方渠道的主要问题:
因此,对于大多数开发者和企业用户来说,更推荐下面这种方式。


端点地址
请求方式: POST
请求头:
Content-Type: application/jsonAuthorization: Bearer your_api_key参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型类型: nano-banana-fast 或 nano-banana |
prompt | string | 是 | 生成提示词,描述想要生成的图像内容 |
urls | array | 否 | 参考图片URL数组,用于图像编辑或风格迁移 |
webHook | string | 否 | 回调地址,用于异步接收生成结果。如设为 "-1",则立即返回任务ID用于轮询 |
shutProgress | boolean | 否 | 关闭进度回复,直接回复最终结果,建议搭配webHook使用。默认false |
成功响应示例:
{
"id": "任务ID",
"results": [
{
"url": "生成图片URL",
"content": "生成内容描述"
}
],
"progress": 100,
"status": "succeeded",
"failure_reason": "",
"error": ""}状态说明:
接入过程非常简单:
import requestsimport json
API_URL = "https://api.grsai.com/v1/draw/nano-banana" # 或使用国内直连节点API_KEY = "你的GrsAI_API_Key"headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"}data = {
"model": "nano-banana-fast",
"prompt": "一只穿着宇航服的猫,在月球上喝咖啡,电影质感"}response = requests.post(API_URL, headers=headers, json=data)if response.status_code == 200:
result = response.json()
if result['status'] == 'succeeded':
image_url = result['results'][0]['url']
print("生成成功!图片URL:", image_url)else:
print("生成失败")data = {
"model": "nano-banana",
"prompt": "将这张图片的风格应用到一只坐在咖啡馆的猫身上",
"urls": [
"https://example.com/风格参考图.jpg"
]}data = {
"model": "nano-banana-fast",
"prompt": "未来城市景观,赛博朋克风格",
"webHook": "https://your-app.com/api/callback",
"shutProgress": True # 直接返回最终结果,减少网络请求}# 第一步:提交任务并获取任务IDdata = {
"model": "nano-banana-fast",
"prompt": "山水风景画",
"webHook": "-1" # 特殊值,表示需要立即返回任务ID}response = requests.post(API_URL, headers=headers, json=data)task_id = response.json()['data']['id']# 第二步:使用任务ID轮询查询结果 (通过 /v1/draw/result 端点)# ... (轮询逻辑)若采用轮询方式,需调用另一个端点来获取任务结果。
端点: POST /v1/draw/result 请求参数:
{
"task_id": "从第一次调用获取的任务ID"}建议实现基本的错误重试机制:
import timedef generate_with_retry(prompt, max_retries=3):
for i in range(max_retries):
try:
response = requests.post(API_URL, headers=headers, json={
"model": "nano-banana-fast",
"prompt": prompt }, timeout=30)
result = response.json()
if result['status'] == 'succeeded':
return result # 可选:检查 failure_reason,如果是error则重试
except requests.exceptions.RequestException as e:
print(f"网络请求错误 (尝试 {i+1}/{max_retries}): {e}")
if i < max_retries - 1:
time.sleep(2) # 等待后重试
else:
raise e # 重试多次后仍然失败
return NoneGrsAi提供了完善、稳定且极具性价比的API中转服务,以及详细的技术文档和支持,让开发者能够快速集成和使用各种AI能力,大幅降低开发门槛和使用成本。
主要优势:
无论是个人项目还是企业应用,都是相当不错的选择。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。