LogoNanoPhoto.AI文档
LogoNanoPhoto.AI文档
网站首页文档首页

入门指南

入门指南

用户指南

用户指南

API

API 概览Sora 水印去除 API视频反推提示词 APISora 2 提示词生成器 APISora 2 视频生成 APISora 2 TVC 广告 APINano Banana Pro 图片生成 APINano Banana 2 图片生成 API

场景

Sora 2 TVC 广告制作

账单

账单与发票

常见问题

常见问题
X (Twitter)

Nano Banana 2 图片生成 API

使用 Nano Banana 2 进行 AI 图片生成的 API,支持文生图、图生图模式和 Google 搜索增强提示词。

在线体验:https://nanophoto.ai/zh/nano-banana-2

接口

方法路径描述
POST/api/nano-banana-2/generate创建图片生成任务
POST/api/nano-banana-2/check-status查询任务状态并获取结果

认证

Authorization: Bearer YOUR_API_KEY

积分

画质积分
1K4
2K8
4K16

积分在任务创建时预扣,生成失败时自动退还。

第一步:生成图片

POST /api/nano-banana-2/generate

请求头

请求头值
Content-Typeapplication/json
AuthorizationBearer YOUR_API_KEY

请求体参数

参数类型必填描述
promptstring是图片生成提示词
modestring是generate(文生图)或 edit(图生图)
aspectRatiostring否16:9、9:16、4:3 或 3:4(默认:16:9)
imageQualitystring否1K、2K 或 4K(默认:1K)
googleSearchboolean否启用 Google 搜索增强提示词(默认:false)
inputImageUrlsstring[]条件必填图生图模式的公开可访问图片 URL(最多 14 张)。mode 为 edit 时必填
  • API 调用仅接受 inputImageUrls(公开可访问的 URL)用于图生图模式。不支持通过 API 上传 Base64 图片(inputImages)。
  • 最多支持 14 张输入图片。
  • 设置 googleSearch: true 可让模型搜索网络获取额外上下文来增强提示词。

示例

文生图

curl -X POST "https://nanophoto.ai/api/nano-banana-2/generate" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-raw '{
    "prompt": "未来感城市日落景观,飞行汽车与霓虹灯光",
    "mode": "generate",
    "aspectRatio": "16:9",
    "imageQuality": "2K"
  }'

使用 Google 搜索增强的文生图

curl -X POST "https://nanophoto.ai/api/nano-banana-2/generate" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-raw '{
    "prompt": "最新款特斯拉 Cybertruck 在沙漠中行驶",
    "mode": "generate",
    "aspectRatio": "16:9",
    "imageQuality": "2K",
    "googleSearch": true
  }'

图生图

curl -X POST "https://nanophoto.ai/api/nano-banana-2/generate" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-raw '{
    "prompt": "将这张照片转换为水彩画风格",
    "mode": "edit",
    "aspectRatio": "16:9",
    "imageQuality": "1K",
    "inputImageUrls": ["https://static.nanophoto.ai/demo/nano-banana-pro.webp"]
  }'

响应

{
  "success": true,
  "generationId": "abc123xyz",
  "taskId": "task-456",
  "status": "pending"
}

第二步:查询状态(轮询)

图片生成是异步的。使用第一步返回的 generationId 轮询获取结果。

POST /api/nano-banana-2/check-status

请求头

请求头值
Content-Typeapplication/json
AuthorizationBearer YOUR_API_KEY

请求体参数

参数类型必填描述
generationIdstring是生成接口返回的 generationId

示例

curl -X POST "https://nanophoto.ai/api/nano-banana-2/check-status" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-raw '{
    "generationId": "abc123xyz"
  }'

响应

已完成

{
  "success": true,
  "status": "completed",
  "imageUrl": "https://static.nanophoto.ai/generations/abc123.png",
  "generationId": "abc123xyz",
  "progress": 100
}

处理中

{
  "success": true,
  "status": "pending",
  "generationId": "abc123xyz",
  "progress": 15
}

失败

{
  "success": false,
  "status": "failed",
  "error": "Generation failed",
  "generationId": "abc123xyz",
  "progress": 0
}

完整 TypeScript 示例

generate-image.ts
async function generateImage(apiKey: string) {
  // 第一步:创建生成任务
  const generateRes = await fetch("https://nanophoto.ai/api/nano-banana-2/generate", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: `Bearer ${apiKey}`,
    },
    body: JSON.stringify({
      prompt: "宁静的日式庭院,樱花盛开,锦鲤池塘",
      mode: "generate",
      aspectRatio: "16:9",
      imageQuality: "2K",
      googleSearch: true,
    }),
  });

  const generateData = await generateRes.json();

  if (!generateData.success) {
    throw new Error(`生成失败: ${generateData.error}`);
  }

  const { generationId } = generateData;
  console.log(`任务已创建: ${generationId}`);

  // 第二步:轮询获取结果
  while (true) {
    await new Promise((r) => setTimeout(r, 3000)); // 等待 3 秒

    const statusRes = await fetch("https://nanophoto.ai/api/nano-banana-2/check-status", {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        Authorization: `Bearer ${apiKey}`,
      },
      body: JSON.stringify({ generationId }),
    });

    const statusData = await statusRes.json();
    console.log(`状态: ${statusData.status}, 进度: ${statusData.progress}%`);

    if (statusData.status === "completed") {
      console.log(`图片地址: ${statusData.imageUrl}`);
      return statusData.imageUrl;
    }

    if (statusData.status === "failed") {
      throw new Error(`生成失败: ${statusData.error}`);
    }
  }
}

轮询策略

  • 每 3-5 秒 轮询一次
  • 典型生成时间:10-30 秒
  • 状态流转:pending → generating → completed 或 failed
  • 生成失败时积分自动退还

错误码

errorCodeHTTP 状态码描述
LOGIN_REQUIRED401需要认证
API_KEY_RATE_LIMIT_EXCEEDED429超出速率限制
INSUFFICIENT_CREDITS402积分不足
INVALID_PROMPT400提示词为空
MISSING_INPUT_IMAGE400图生图模式需要输入图片
TOO_MANY_IMAGES400超过 14 张输入图片
IMAGE_URLS_REQUIRED400API 调用图生图需使用 inputImageUrls
CREDIT_RESERVATION_FAILED500积分预扣失败
GENERATION_FAILED500图片生成失败
NOT_FOUND404生成 ID 不存在
FORBIDDEN403无权访问(非本人的生成任务)

Nano Banana Pro 图片生成 API

使用 Nano Banana Pro 进行 AI 图片生成的 API,支持文生图和图生图模式。

Sora 2 TVC 广告制作

使用 AI 三步创建专业 TVC 风格视频广告。从创意主题到成片,几分钟即可完成。

目录

接口
认证
积分
第一步:生成图片
请求头
请求体参数
示例
文生图
使用 Google 搜索增强的文生图
图生图
响应
第二步:查询状态(轮询)
请求头
请求体参数
示例
响应
已完成
处理中
失败
完整 TypeScript 示例
轮询策略
错误码