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

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

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

端點

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

認證

Authorization: Bearer YOUR_API_KEY

點數

模型時長點數
sora210s4
sora215s8
sora2-pro-standard (720p)10s60
sora2-pro-standard (720p)15s100
sora2-pro-high (1080p)10s120
sora2-pro-high (1080p)15s240

生成影片

POST /api/sora-2/generate

請求標頭

Header值
Content-Typeapplication/json
AuthorizationBearer YOUR_API_KEY

請求參數

參數類型必填說明
promptstring是影片生成提示詞
modestring是textToVideo(文字生成影片)或 imageToVideo(圖片生成影片)
modelTierstring否sora2(預設)、sora2-pro-standard 或 sora2-pro-high
aspectRatiostring否portrait(直式,預設)或 landscape(橫式)
videoDurationstring否10 或 15(秒)
imageUrlsstring[]條件必填圖片生成影片模式的圖片公開 URL

API 呼叫圖片生成影片模式僅接受 imageUrls(公開 URL),不支援 Base64 圖片上傳。

請求範例

文字生成影片

curl -X POST "https://nanophoto.ai/api/sora-2/generate" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-raw '{
    "prompt": "一隻金毛犬在日落時分的海灘上奔跑,電影級光影",
    "mode": "textToVideo",
    "modelTier": "sora2",
    "aspectRatio": "landscape",
    "videoDuration": "10"
  }'

圖片生成影片

curl -X POST "https://nanophoto.ai/api/sora-2/generate" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-raw '{
    "prompt": "畫中的人物動起來,並朗讀詩詞",
    "mode": "imageToVideo",
    "modelTier": "sora2",
    "aspectRatio": "landscape",
    "videoDuration": "10",
    "imageUrls": ["https://static.nanophoto.ai/demo/nano-banana-pro.webp"]
  }'

TypeScript

sora-2-api-example.ts
async function generateVideo() {
  // 第一步:提交生成任務
  const response = await fetch("https://nanophoto.ai/api/sora-2/generate", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer YOUR_API_KEY",
    },
    body: JSON.stringify({
      prompt: "一隻金毛犬在日落時分的海灘上奔跑",
      mode: "textToVideo",
      modelTier: "sora2",
      aspectRatio: "landscape",
      videoDuration: "10",
    }),
  });

  const data = await response.json();

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

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

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

    const status = await statusRes.json();

    if (status.status === "completed") {
      console.log("影片網址:", status.videoUrl);
      return;
    }

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

    console.log("處理中...", status.progress);
  }
}

generateVideo();

回應

處理中

{
  "success": true,
  "status": "processing",
  "taskId": "task_abc123",
  "message": "Video generation in progress"
}

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

錯誤

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

查詢任務狀態

POST /api/sora-2/check-status

請求標頭

Header值
Content-Typeapplication/json
AuthorizationBearer YOUR_API_KEY

請求參數

參數類型必填說明
taskIdstring是生成介面回傳的任務 ID

請求範例

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

回應

處理中

{
  "success": true,
  "status": "processing",
  "progress": "generating",
  "message": "Video generation generating",
  "taskId": "task_abc123"
}

已完成

{
  "success": true,
  "status": "completed",
  "videoUrl": "https://video.nanophoto.ai/sora/...",
  "taskId": "task_abc123",
  "generationTime": 120,
  "creditsUsed": 4
}

失敗

{
  "success": false,
  "status": "failed",
  "error": "Video generation failed",
  "errorCode": "GENERATION_FAILED",
  "taskId": "task_abc123"
}

輪詢策略

  • 每 5-10 秒 輪詢一次 /api/sora-2/check-status
  • 典型生成時間:sora2 約 1-3 分鐘,Pro 模型約 3-8 分鐘
  • 生成失敗時點數會自動退還

錯誤碼

errorCodeHTTP 狀態碼說明
LOGIN_REQUIRED401需要認證
API_KEY_RATE_LIMIT_EXCEEDED429超出頻率限制(100 次/小時)
INSUFFICIENT_CREDITS402點數不足
PROMPT_REQUIRED400缺少提示詞
IMAGE_REQUIRED400圖片生成影片模式需要圖片
IMAGE_URLS_REQUIRED400API 呼叫需要 imageUrls(不支援 base64)
GENERATION_FAILED500影片生成失敗
TASK_ID_REQUIRED400缺少任務 ID
TASK_NOT_FOUND404任務不存在或無權存取
INTERNAL_ERROR500內部伺服器錯誤

Sora 2 提示詞生成器 API

根據主題生成專業 Sora 2 影片提示詞的 API,支援多種影片手法和多語言輸出。

Sora 2 TVC 廣告 API

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

目錄

端點
認證
點數
生成影片
請求標頭
請求參數
請求範例
文字生成影片
圖片生成影片
TypeScript
回應
處理中
錯誤
查詢任務狀態
請求標頭
請求參數
請求範例
回應
處理中
已完成
失敗
輪詢策略
錯誤碼