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)

Sora 2 TVC 廣告 API

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

線上體驗: https://nanophoto.ai/sora-2-tvc-ad

端點

方法路徑說明
POST/api/sora-2-tvc/generate生成 TVC 廣告影片
POST/api/sora-2-tvc/check-status查詢任務狀態

認證

Authorization: Bearer YOUR_API_KEY

點數

時長點數
10s8
15s8

工作原理

TVC 廣告 API 使用三步 AI 流水線生成專業電視廣告影片:

  1. 分鏡腳本 — AI 根據廣告主題生成 9 個場景(SC1-SC9)的分鏡描述
  2. 分鏡圖片 — AI 生成 3×3 九宮格黑白線稿分鏡圖
  3. 影片生成 — Sora 2 基於分鏡圖生成最終廣告影片

生成介面在啟動流水線後立即回傳。請使用狀態查詢介面輪詢進度和結果。

生成 TVC 廣告

POST /api/sora-2-tvc/generate

請求標頭

Header值
Content-Typeapplication/json
AuthorizationBearer YOUR_API_KEY

請求參數

參數類型必填說明
adThemestring是廣告主題(如「Nike 跑鞋」)
referenceImageUrlstring否參考圖片的公開 URL,用於風格引導
voiceoverScriptstring否廣告配音腳本
videoDurationstring否10 或 15(秒,預設 10)
aspectRatiostring否portrait(直式,預設)或 landscape(橫式)

API 呼叫僅接受 referenceImageUrl(公開 URL),不支援 Base64 圖片上傳。

請求範例

基本 TVC 廣告

curl -X POST "https://nanophoto.ai/api/sora-2-tvc/generate" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-raw '{
    "adTheme": "Nike 跑鞋 - 感受速度",
    "videoDuration": "15",
    "aspectRatio": "landscape"
  }'

帶參考圖和配音

curl -X POST "https://nanophoto.ai/api/sora-2-tvc/generate" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-raw '{
    "adTheme": "奢華香水 - 每一滴都是優雅",
    "referenceImageUrl": "https://example.com/perfume-reference.jpg",
    "voiceoverScript": "發現優雅的本質,一款與靈魂對話的香氛。",
    "videoDuration": "15",
    "aspectRatio": "portrait"
  }'

TypeScript

sora-2-tvc-api-example.ts
async function generateTVCAd() {
  // 第一步:提交 TVC 廣告生成任務
  const response = await fetch("https://nanophoto.ai/api/sora-2-tvc/generate", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer YOUR_API_KEY",
    },
    body: JSON.stringify({
      adTheme: "Nike 跑鞋 - 感受速度",
      voiceoverScript: "跑得更快,跑得更強。Nike。",
      videoDuration: "15",
      aspectRatio: "landscape",
    }),
  });

  const data = await response.json();

  if (!data.success) {
    console.error("生成失敗:", data.error);
    return;
  }

  console.log("分鏡腳本:", data.storyboardPrompt);
  console.log("分鏡圖片:", data.storyboardImageUrl);

  // 第二步:使用 recordId 輪詢狀態
  const recordId = data.recordId;
  while (true) {
    await new Promise((resolve) => setTimeout(resolve, 5000)); // 等待 5 秒

    const statusRes = await fetch(
      "https://nanophoto.ai/api/sora-2-tvc/check-status",
      {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          Authorization: "Bearer YOUR_API_KEY",
        },
        body: JSON.stringify({ recordId }),
      }
    );

    const status = await statusRes.json();

    if (status.status === "completed") {
      console.log("影片網址:", status.videoUrl);
      console.log("生成耗時:", status.generationTime, "秒");
      return;
    }

    if (status.status === "failed") {
      console.error("生成失敗:", status.error);
      return;
    }

    console.log(`步驟 ${status.currentStep}/3: ${status.stepName}`);
  }
}

generateTVCAd();

回應

處理中

{
  "success": true,
  "status": "processing",
  "taskId": "video_task_id",
  "recordId": "tvc_record_id",
  "storyboardPrompt": "生成的 9 場景分鏡描述...",
  "storyboardImageUrl": "https://static.nanophoto.ai/images/sora-tvc/storyboard-xxx.png"
}

收到 status: "processing" 時,請每隔 5-10 秒輪詢 check-status 介面。

錯誤

{
  "error": "Insufficient credits",
  "errorCode": "INSUFFICIENT_CREDITS",
  "requiredCredits": 8
}

查詢任務狀態

POST /api/sora-2-tvc/check-status

請求標頭

Header值
Content-Typeapplication/json
AuthorizationBearer YOUR_API_KEY

請求參數

參數類型必填說明
recordIdstring條件必填生成介面回傳的 TVC 記錄 ID
taskIdstring條件必填生成介面回傳的影片任務 ID

提供 recordId 或 taskId 之一即可,建議使用 recordId。

請求範例

curl -X POST "https://nanophoto.ai/api/sora-2-tvc/check-status" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-raw '{"recordId": "tvc_record_id"}'

回應

步驟 1:生成分鏡腳本

{
  "success": true,
  "status": "processing",
  "recordId": "tvc_record_id",
  "currentStep": 1,
  "stepName": "Generating Storyboard Prompt"
}

步驟 2:生成分鏡圖片

{
  "success": true,
  "status": "processing",
  "recordId": "tvc_record_id",
  "currentStep": 2,
  "stepName": "Generating Storyboard",
  "storyboardPrompt": "..."
}

步驟 3:生成影片

{
  "success": true,
  "status": "processing",
  "recordId": "tvc_record_id",
  "currentStep": 3,
  "stepName": "Generating Ad Video",
  "storyboardPrompt": "...",
  "storyboardImageUrl": "https://static.nanophoto.ai/images/sora-tvc/storyboard-xxx.png",
  "videoTaskProgress": "generating"
}

已完成

{
  "success": true,
  "status": "completed",
  "recordId": "tvc_record_id",
  "currentStep": 3,
  "stepName": "Completed",
  "storyboardPrompt": "...",
  "storyboardImageUrl": "https://static.nanophoto.ai/images/sora-tvc/storyboard-xxx.png",
  "videoUrl": "https://video.nanophoto.ai/sora/...",
  "generationTime": 180
}

失敗

{
  "success": false,
  "status": "failed",
  "error": "Video generation failed",
  "errorCode": "GENERATION_FAILED",
  "recordId": "tvc_record_id"
}

輪詢策略

  • 每 5-10 秒 輪詢一次 /api/sora-2-tvc/check-status
  • 典型生成時間:2-5 分鐘(三步流水線:腳本 → 分鏡圖 → 影片)
  • 生成失敗時點數會自動退還

錯誤碼

errorCodeHTTP 狀態碼說明
LOGIN_REQUIRED401需要認證
API_KEY_RATE_LIMIT_EXCEEDED429超出頻率限制(100 次/小時)
INSUFFICIENT_CREDITS402點數不足
INVALID_INPUT400缺少廣告主題
REFERENCE_IMAGE_URL_REQUIRED400API 呼叫需要 referenceImageUrl(不支援 base64)
GENERATION_FAILED500TVC 廣告生成失敗
RECORD_NOT_FOUND404TVC 記錄不存在
UNAUTHORIZED403無權存取該記錄
INTERNAL_ERROR500內部伺服器錯誤

Sora 2 影片生成 API

使用 OpenAI Sora 2 模型生成影片的 API,支援文字生成影片和圖片生成影片模式。

Nano Banana Pro 圖片生成 API

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

目錄

端點
認證
點數
工作原理
生成 TVC 廣告
請求標頭
請求參數
請求範例
基本 TVC 廣告
帶參考圖和配音
TypeScript
回應
處理中
錯誤
查詢任務狀態
請求標頭
請求參數
請求範例
回應
步驟 1:生成分鏡腳本
步驟 2:生成分鏡圖片
步驟 3:生成影片
已完成
失敗
輪詢策略
錯誤碼