PopNowAPI 文件
整合
主要內容

n8n 工作流程:AI 圖片與影片

在 n8n 裡用內建的 HTTP Request 節點與 PopNow API 生成 AI 圖片、影片與音訊。提供可匯入的工作流程 JSON、憑證設定、輪詢迴圈、Webhook,以及常見錯誤的修正方法。

n8n 不需要社群節點也能使用 PopNow:兩個內建的 HTTP Request 節點,加上 Wait 與 If,就足以建立任務、等它完成,再把檔案交給工作流程的其他部分。同一套做法適用於每一個圖片、影片與音訊模型,所以你可以把一份提示詞試算表餵進文生圖模型、把新的商品照片變成短影片,或逐行為腳本配音。

這一頁與 popnow.ai 上的 n8n 頁面 相符,後者會依你選的模型建立同樣的工作流程。自架的 n8n 也可以安裝 PopNow 社群節點:開啟 Settings > Community Nodes > Install,輸入 n8n-nodes-popnow(npm、GitHub)。

小紅狐狸蜷縮在茶杯裡,由 Z-Image Turbo 生成
依下方工作流程原樣執行的結果:Z-Image Turbo,一張方形圖,$0.01 USD。

需要準備的東西

  • n8n 1.x(雲端版或自行架設)。HTTP Request 節點必須為 4 或更新版本。
  • 在 API 主控台建立的 PopNow API 金鑰。為 n8n 單獨建立一把金鑰,設定每日消費上限,避免迴圈失控耗盡餘額。
  • 獨立 API 美元餘額中的資金,初始為 $0。在 API 帳單儲值。下方模型每次測試約 $0.01;網站點數不能支付這些呼叫。

1. 建立憑證

在 n8n 中打開 Credentials → Add credential → Header Auth,填入以下內容:

欄位值
NamePopNow
Header nameAuthorization
Header valueBearer sk-popnow-…(你的金鑰,前面要加上 Bearer 與一個空格)

在動手建立之前,先在終端機執行以下指令檢查金鑰。它只會讀取餘額,不收費:

curl "https://api.popnow.ai/api/v1/chat/credit" \
  -H "Authorization: Bearer $POPNOW_API_KEY"

availableUsd、heldUsd 和 totalUsd 都是 API 餘額的美元十進位字串。

2. 匯入工作流程

複製 JSON,在 n8n 畫布的空白處點一下後貼上。接著打開 Create task 與 Check task,兩個節點都選取 PopNow 憑證。

工作流程的執行順序是:Start → Create task → Wait 5 s → Check task → Finished?。如果任務還在執行,它會繞回等待節點;任務完成後,File URL 會輸出 state、fileUrl 與 error。

各節點的作用:

節點設定原因
Create taskPOST /api/v1/jobs/createTask,JSON 內容 { "model", "input" }model 可以是 模型 頁中的任何模型 ID;input 必須符合該模型的 schema
Create task標頭 Idempotency-Key: {{ $execution.id }}如果 n8n 重試這個節點,拿回的會是同一個任務,不會重複收費。請見冪等
Wait 5 s5 秒圖片通常一兩輪就完成;影片需要一到三分鐘
Check taskGET /api/v1/jobs/recordInfo?taskId=…讀取任務的 state 與 output
Finished?state 已是終止狀態,且沒有檔案仍在複製中succeeded、failed 與 expired 都是終止狀態;請見任務
File URLdata.output.assets[0].url有效期約 20 分鐘的簽名連結。如果要保存檔案,請在下一個節點下載它

更換模型或輸入

編輯 Create task 的 JSON 內容。每個模型的頁面都列出它的 ID、欄位與價格;以下是幾個常見的替換:

目標modelinput
圖片中的文字更清楚google/nano-banana-2.1/text-to-imageprompt、aspect_ratio、resolution(1K 為 $0.048)
編輯照片google/nano-banana-2.1/editprompt、image_urls
照片轉影片minimax/h3/image-to-videoprompt、image_url、duration_seconds(768p 的 5 秒為 $0.185)
配音google/gemini-3.8-flash-tts/text-to-speechtext、voice_id

要使用前面節點的資料,把內容改成運算式,例如:

n8n expression for the JSON body
{{ JSON.stringify({ model: 'alibaba/z-image-turbo/text-to-image', input: { prompt: $json.prompt, aspect_ratio: '16:9' } }) }}

前面節點產生的檔案需要公開的 https 網址,或先上傳;上傳與下載 列出三個上傳呼叫,它們可以對應到三個 HTTP Request 節點。

用 Webhook 取代輪詢

對於較長的影片任務,讓 PopNow 主動呼叫 n8n,而不是不斷迴圈查詢。在第二個工作流程中加入一個 Webhook 觸發節點(POST),複製它的正式網址,並把它放進 Create task 的內容中,作為 callBackUrl:

{
  "model": "minimax/h3/image-to-video",
  "input": { "image_url": "https://media.popnow.ai/movie/lighthouse.webp", "prompt": "The waves roll in slowly" },
  "callBackUrl": "https://your-n8n.example.com/webhook/popnow"
}

Webhook 網址必須是公開的 HTTPS,所以本機的 n8n 需要通道。每次送達都有簽章;Webhook 說明如何在 Code 節點中驗證簽章,以及為什麼要儲存 request_id 來忽略重複送達。

n8n 以外的同一個呼叫

在貼進節點之前,先用這個測試內容很方便。

curl -X POST "https://api.popnow.ai/api/v1/jobs/createTask?wait=60" \
  -H "Authorization: Bearer $POPNOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"model": "alibaba/z-image-turbo/text-to-image", "input": {"prompt": "A small red fox curled up in a teacup, soft morning light, studio photo", "aspect_ratio": "1:1"}}'
Python
import os, uuid, requests

res = requests.post(
    "https://api.popnow.ai/api/v1/jobs/createTask",
    params={"wait": 60},
    headers={"Authorization": f"Bearer {os.environ['POPNOW_API_KEY']}", "Idempotency-Key": str(uuid.uuid4())},
    json={"model": "alibaba/z-image-turbo/text-to-image", "input": {"prompt": "A small red fox curled up in a teacup, soft morning light, studio photo", "aspect_ratio": "1:1"}},
    timeout=90,
).json()
print(res["data"]["state"], res["data"].get("output", {}).get("assets", [{}])[0].get("url"))
JavaScript
const res = await fetch('https://api.popnow.ai/api/v1/jobs/createTask?wait=60', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.POPNOW_API_KEY}`,
    'Content-Type': 'application/json',
    'Idempotency-Key': crypto.randomUUID(),
  },
  body: JSON.stringify({
    model: 'alibaba/z-image-turbo/text-to-image',
    input: { prompt: 'A small red fox curled up in a teacup, soft morning light, studio photo', aspect_ratio: '1:1' },
  }),
});
const { data } = await res.json();
console.log(data.state, data.output?.assets?.[0]?.url);

價格

工作流程只在 Create task 中花費 API 美元,查詢任務免費。失敗或到期任務不收費,以同一個 Idempotency-Key 重試節點不會重複收費。大量執行前,先用 jobs/quote查詢模型價格,規則請見 API 餘額與退款。

常見錯誤

n8n 顯示原因解法
Create task 出現 401憑證缺少,或值沒有 Bearer 標頭值必須是 Bearer sk-popnow-…
msg 中帶有欄位名稱的 code: 400某個欄位不在模型的 schema 中,或值超出範圍查看模型頁面;不認得的欄位會被拒絕
code: 40201API 美元餘額不足以保留這個任務所需的金額在 API 帳單儲值,或換較便宜的模型或設定
code: 40202會超過這把金鑰的消費上限在 API 控制台提高這把金鑰的上限
code: 429請求太多拉長等待時間,或減少同時執行的項目;請見速率限制
迴圈永遠不結束任務仍在執行,或 Finished? 讀到了錯誤的欄位影片可能需要好幾分鐘;請確認 Check task 讀取的是 Create task 的 taskId
fileUrl 一開始能用,之後回傳 403簽名連結約 20 分鐘後失效在同一次執行中下載檔案,或重新讀取任務以取得新連結
state: failed模型無法完成,或拒絕了內容沒有收費;請讀取 errorCode,並參閱錯誤碼

有 n8n 的官方社群節點嗎?

有。n8n-nodes-popnow 已發布在 npm,並在 GitHub 上開源。自架的 n8n 可以打開 Settings > Community Nodes > Install,輸入 n8n-nodes-popnow 並確認;也可以在終端機的 ~/.n8n/nodes 中執行 npm install n8n-nodes-popnow,然後重新啟動 n8n。它目前還不是認證節點,所以 n8n Cloud 無法安裝它。你其實不需要它:內建的 HTTP Request 節點涵蓋 API 的所有功能,在 n8n Cloud 上也能用,而且本頁的工作流程貼上一次即可匯入。

n8n 能同時執行多個生成嗎?

可以。每個到達 Create task 的項目都會成為自己的任務,並且平行生成。請留意速率限制,並為金鑰設定消費上限。

要怎麼把生成的檔案存到 Google Drive 或 S3?

在 File URL 之後加一個 HTTP Request 節點,把 fileUrl 下載為檔案(回應格式選 File),再把它傳給 Google Drive、S3 或其他儲存節點。

本頁內容