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 Pro 圖片生成 API

使用 Nano Banana Pro 進行 AI 圖片生成的 API,支援文生圖和圖生圖模式。

線上體驗:https://nanophoto.ai/zh-TW/nano-banana-pro

介面

方法路徑描述
POST/api/nano-banana-pro/generate建立圖片生成任務
POST/api/nano-banana-pro/check-status查詢任務狀態並取得結果

認證

Authorization: Bearer YOUR_API_KEY

積分

畫質積分
1K4
2K8
4K16

積分在任務建立時預扣,生成失敗時自動退還。

第一步:生成圖片

POST /api/nano-banana-pro/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)
inputImageUrlsstring[]條件必填圖生圖模式的公開可存取圖片 URL(最多 8 張)。mode 為 edit 時必填
  • API 呼叫僅接受 inputImageUrls(公開可存取的 URL)用於圖生圖模式。不支援透過 API 上傳 Base64 圖片(inputImages)。
  • 最多支援 8 張輸入圖片。

範例

文生圖

curl -X POST "https://nanophoto.ai/api/nano-banana-pro/generate" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-raw '{
    "prompt": "未來感城市日落景觀,飛行汽車與霓虹燈光",
    "mode": "generate",
    "aspectRatio": "16:9",
    "imageQuality": "2K"
  }'

圖生圖

curl -X POST "https://nanophoto.ai/api/nano-banana-pro/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-pro/check-status

請求標頭

請求標頭值
Content-Typeapplication/json
AuthorizationBearer YOUR_API_KEY

請求主體參數

參數類型必填描述
generationIdstring是生成介面回傳的 generationId

範例

curl -X POST "https://nanophoto.ai/api/nano-banana-pro/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.jpg",
  "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-pro/generate", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: `Bearer ${apiKey}`,
    },
    body: JSON.stringify({
      prompt: "寧靜的日式庭院,櫻花盛開,錦鯉池塘",
      mode: "generate",
      aspectRatio: "16:9",
      imageQuality: "2K",
    }),
  });

  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-pro/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超過 8 張輸入圖片
IMAGE_URLS_REQUIRED400API 呼叫圖生圖需使用 inputImageUrls
CREDIT_RESERVATION_FAILED500積分預扣失敗
GENERATION_FAILED500圖片生成失敗
NOT_FOUND404生成 ID 不存在
FORBIDDEN403無權存取(非本人的生成任務)

Sora 2 TVC 廣告 API

使用 AI 驅動的分鏡圖生成和 Sora 2 影片合成來製作 TVC(電視廣告)影片的 API。

Nano Banana 2 圖片生成 API

使用 Nano Banana 2 進行 AI 圖片生成的 API,支援文生圖、圖生圖模式和 Google 搜尋增強提示詞。

目錄

介面
認證
積分
第一步:生成圖片
請求標頭
請求主體參數
範例
文生圖
圖生圖
回應
第二步:查詢狀態(輪詢)
請求標頭
請求主體參數
範例
回應
已完成
處理中
失敗
完整 TypeScript 範例
輪詢策略
錯誤碼