Package Information
Available Nodes
Documentation generating…
Documentation
PopNow n8n Node — AI Video, Image & Music Generation in n8n Workflows
n8n-nodes-popnow is the n8n community node for PopNow, a single API for AI
video, image, music and speech generation with models such as Kling, Seedance, Wan, Vidu, MiniMax,
Nano Banana, GPT Image, Flux and Suno, priced in credits before every run.
PopNow is a browser-based AI studio for videos, images and music: image-to-video, text-to-video, AI images,
music and speech, one-tap trending video effects and image styles. This node brings the same models, prices
and credit wallet as popnow.ai into n8n: pick a model, fill in a form
generated from its schema, and get the finished file back as n8n binary data.
Install status: the npm release (and with it one-click install from n8n's Community nodes screen)
is coming. Until then, install it manually from GitHub as shown below, or use the
HTTP Request workflow that needs no install at all.
- Quickstart
- Installation
- Credentials
- Operations
- Generating images, video and audio
- Credit limits and retries
- Long-running tasks
- Errors
- Alternative: HTTP Request workflow (no install)
- FAQ
- Development
Quickstart
1. Install the node on self-hosted n8n and restart n8n:
mkdir -p ~/.n8n/nodes && cd ~/.n8n/nodes
npm install github:popnow-ai/n8n-nodes-popnow#release
2. Connect your account: create a PopNow API credential with a key from
popnow.ai/api/console/keys (sk-popnow-...).
3. Generate: add the PopNow node, choose Image > Generate, pickalibaba/z-image-turbo/text-to-image (about 2 credits), type a prompt and run it. The image arrives in thedata binary field, ready for Google Drive, S3, Slack or any other node.
Installation
Unverified community nodes run on self-hosted n8n. On n8n Cloud, use the
HTTP Request workflow instead.
The release branch of this repository holds the built package (it is rebuilt from main by
GitHub Actions), so npm installs it without a build step. Git must
be available where you run npm install.
npm / bare-metal n8n
mkdir -p ~/.n8n/nodes && cd ~/.n8n/nodes
npm install github:popnow-ai/n8n-nodes-popnow#release
# then restart n8n
n8n loads every n8n-nodes-* package in ~/.n8n/nodes/node_modules at startup. In queue mode, install it
the same way on the main instance and on every worker. To update, run the same npm install again and
restart. To remove it, run npm uninstall n8n-nodes-popnow in the same folder.
Docker: install into a running container
The official image keeps ~/.n8n on the /home/node/.n8n volume, so a package installed there survives
image upgrades:
docker exec -it n8n sh -c 'mkdir -p ~/.n8n/nodes && cd ~/.n8n/nodes && npm install github:popnow-ai/n8n-nodes-popnow#release'
docker restart n8n
Replace n8n with your container name.
Docker: custom image
To bake the node into an image instead, install it outside the ~/.n8n volume and pointN8N_CUSTOM_EXTENSIONS at it:
FROM n8nio/n8n:latest
USER root
RUN mkdir -p /opt/n8n-custom-nodes \
&& cd /opt/n8n-custom-nodes \
&& npm init -y > /dev/null \
&& npm install --omit=dev github:popnow-ai/n8n-nodes-popnow#release \
&& chown -R node:node /opt/n8n-custom-nodes
USER node
ENV N8N_CUSTOM_EXTENSIONS=/opt/n8n-custom-nodes/node_modules/n8n-nodes-popnow
docker build -t n8n-popnow .
docker run -it --rm -p 5678:5678 -v n8n_data:/home/node/.n8n n8n-popnow
n8n registers nodes from custom extension folders under its custom prefix, so use one install method per
instance and keep it; workflows reference the node by that registered name.
Build from source
git clone https://github.com/popnow-ai/n8n-nodes-popnow.git
cd n8n-nodes-popnow
npm ci && npm run build && npm pack # creates n8n-nodes-popnow-<version>.tgz
cd ~/.n8n/nodes && npm install /path/to/n8n-nodes-popnow/n8n-nodes-popnow-<version>.tgz
From npm (coming)
Once the package is on npm, you will be able to install it from Settings > Community nodes > Install
by entering n8n-nodes-popnow.
Credentials
Create a PopNow API credential:
| Field | Value |
|---|---|
| API Key | A key from popnow.ai/api/console/keys. It starts with sk-popnow-. |
| Base URL | Leave https://api.popnow.ai unless PopNow support tells you otherwise. |
Saving the credential checks the key by reading your balance (GET /api/v1/chat/credit; the path name is
historical and has nothing to do with chat), which is free.
Give n8n its own key with a spend cap in the API console: automations can run far more often than a person
clicks.
Operations
| Resource | Operation | What it does | API call |
|---|---|---|---|
| Image | Generate | Text to image, image editing, upscaling, background removal and other image models | jobs/quote, jobs/createTask, jobs/recordInfo |
| Video | Generate | Text to video, image to video, video extend and other video models | same |
| Audio | Generate | Text to speech, music and other audio models | same |
| Task | Get | Read a task by ID, optionally wait for it and download its files | GET /api/v1/jobs/recordInfo |
| Task | Retry | Create a new task from a failed or expired one, optionally wait and download | POST /api/v1/jobs/retry |
| File | Upload | Upload a binary file and get a popnow://f/... URI to use as model input |
common/upload-url, PUT, files/{id}/commit |
| Model | Get Many | The model catalogue with credit prices, filtered by modality and keyword | GET /api/v1/models |
| Model | Get | One model with its input schema, examples and credit price | GET /api/v1/models/{model} |
| Model | Get Quote | The exact price of a request in credits, without running it | POST /api/v1/jobs/quote |
| Account | Get Balance | Available, held and total balance in credits and US dollars | GET /api/v1/chat/credit |
The node is marked usable as a tool, so an n8n AI Agent can call it too.
Example models
Every image, video and audio model on PopNow works with the same node. A model ID is<maker>/<model>/<task>; the model picker lists the live catalogue with prices.
| Kind | Example model IDs |
|---|---|
| Text to image | alibaba/z-image-turbo/text-to-image, google/nano-banana-2.1/text-to-image, openai/gpt-image-2/text-to-image, black-forest-labs/flux-2-dev/text-to-image |
| Image editing | google/nano-banana-2.1/edit, alibaba/qwen-image-2.1/edit, popnow/background-remover-v1/edit, popnow/image-upscaler-v1/upscale |
| Image to video | kling/3.0/image-to-video, minimax/h3/image-to-video, alibaba/wan-3.0/image-to-video, bytedance/seedance-1.5-pro/image-to-video |
| Text to video | kling/3.0/text-to-video, alibaba/wan-3.0/text-to-video, minimax/h3/text-to-video |
| Music and speech | suno/v6/text-to-audio, google/gemini-3.8-flash-tts/text-to-speech, alibaba/qwen-3-tts/text-to-speech |
Generating images, video and audio
- Model: pick from the list (models of the selected resource with their starting price in credits) or
enter a model ID. Every model, its fields and price are listed at popnow.ai/models. - Prompt: the model's main text input. For speech models this is the text to speak. Leave it empty for
models without a prompt, such as upscalers. - Media Inputs: images, videos or audio the model reads. Pick the field (the list shows the selected
model's file inputs), then either a binary field from the previous node or a URL: a publichttps://
link, apopnow://f/...URI from File > Upload, or apopnow://a/...URI of a saved asset. Binary
files are uploaded automatically. Add several inputs for the same field to fill list fields such as
reference images. - Model Parameters: a form generated from the model's input schema (aspect ratio, resolution, duration,
seed and so on). Fields left empty are not sent, so the model uses its own default. - Additional Parameters (JSON): any other input fields as a JSON object. They override the fields above.
The output is the task record (taskId, state, credits, cost, settled, output) and, with
Download Output on (the default), the files as binary data in data, data_1 and so on. Links inoutput.assets[].url expire after about 20 minutes; the binary copies do not.
Large videos are held in memory unless n8n stores binary data on disk. On self-hosted n8n, setN8N_DEFAULT_BINARY_DATA_MODE=filesystem when you work with video.
Credit limits and retries
- Every item is priced first. The node calls
jobs/quote, and when the quote is above Max Credits per
Item (default 200 credits = $2) it stops with an error before anything is created. Nothing is charged.
Set the limit to 0 to remove it. 1 credit = $0.01. - The task is created at the quoted price. The node sends
quoteIdandexpectedCreditswithcreateTask. If the price changed in between (code40901), it quotes again, checks the limit again and
resubmits under the same key. - Retries never charge twice. Each item is sent with an
Idempotency-Keyderived from the execution, the
node, the item and its input. When n8n retries the node (Retry On Fail) or a request times out and is
resent, PopNow returns the task it already created. A new execution, a changed input or another loop pass
is new work and gets a new key. - Failed runs are refunded. Failed and expired tasks release their hold. See
credits and refunds. - Retention: the Retention (Seconds) option sends
X-PopNow-Retentionto delete a task's prompt and
files sooner than your account default.
Long-running tasks
By default the node waits for the result: image and audio models usually answer within one request (the node
asks the API to hold the connection for up to 50 seconds), and video is polled with backoff until the task's
own deadline. Set Max Wait Time to stop earlier. When the node stops waiting, the task keeps running and
is charged if it succeeds, so fetch it later with Task > Get instead of submitting it again.
For long videos you can avoid holding an execution open:
- Turn off Wait for Completion, then use a Wait node and Task > Get (with Wait for Completion on).
- Or set Callback URL to
{{ $execution.resumeUrl }}and follow with a Wait node set to resume on a
webhook call. Your n8n instance must be reachable over public HTTPS. After it resumes, read the task with
Task > Get rather than trusting the callback body (or verify the signature as described in
webhooks).
Errors
Errors show the API's message, a hint on what to do, the HTTP status, the business code and therequest_id (include it when you contact support). Transient failures (network errors, 429, 500,502-504, 50301) are retried with backoff and Retry-After. Turn on Continue On Fail to get an
item with error, description and taskId instead of stopping the workflow.
| Code | Meaning | What to do |
|---|---|---|
401 |
The API key is missing or invalid | Check the credential |
40201 |
Not enough credits for the task's hold | Buy credits at popnow.ai/pricing |
40202 |
The key's spend cap was reached | Raise the cap in the API console |
40301 |
The key may not call this model | Allow the model for the key |
40901 |
The price changed between quote and create | Handled automatically once; run again otherwise |
429 |
Too many requests | Run fewer items in parallel; see limits |
state: failed |
The model could not finish or declined the content | Nothing was charged; read errorCode |
Full list: popnow.ai/docs/errors.
Alternative: HTTP Request workflow (no install)
If you cannot install community nodes (for example on n8n Cloud), importexamples/http-request-workflow.json. It uses only built-in nodes:
Start > Create task > Wait 5 s > Check task > Finished?, looping until the task is done, then
File URL outputs state, fileUrl and error.
- In n8n open Credentials > Add credential > Header Auth: name
PopNow, header nameAuthorization,
valueBearer sk-popnow-.... - Copy the JSON file's contents, click an empty spot on the canvas and paste (or use
Workflow menu > Import from File). - Select the
PopNowcredential in Create task and Check task, then run it. The example usesalibaba/z-image-turbo/text-to-imageand costs about 2 credits.
To change the model or the input, edit the JSON body of Create task. The
n8n guide on popnow.ai explains each node, webhooks instead of polling, and
common errors.
FAQ
How do I generate AI images in n8n?
Install this node, add a PopNow API credential, then use Image > Generate with a text-to-image model
such as alibaba/z-image-turbo/text-to-image. The image comes back as binary data you can pass to any
storage or messaging node.
How do I turn an image into a video with n8n?
Use Video > Generate with an image-to-video model such as kling/3.0/image-to-video orminimax/h3/image-to-video. Add a Media Input for image_url from the incoming item's binary field or
from a URL; binary files are uploaded for you.
Is there an official PopNow community node for n8n?
Yes, this repository. It is not on npm yet, so install it from GitHub
(npm install github:popnow-ai/n8n-nodes-popnow#release in ~/.n8n/nodes). The npm release, which enables
install from n8n's Community nodes screen, is coming.
Can I use PopNow on n8n Cloud?
n8n Cloud only installs verified community nodes, so use the
HTTP Request workflow. It calls the same API with built-in
nodes.
How much does a generation cost, and can I cap it?
Prices are in credits (1 credit = $0.01), the same as on popnow.ai. Every item is quoted first and the node
refuses to run anything above Max Credits per Item. Use Model > Get Quote to price a request without
running it. Failed runs are refunded. See pricing.
Will a retried n8n node charge me twice?
No. The node sends a deterministic Idempotency-Key per execution, node, item and input, so a retry gets
the original task back.
Can n8n run several generations at once?
Yes. Each incoming item becomes its own task. Keep an eye on the rate limits
and use a spend cap on the key.
Development
npm ci # install scripts stay off (.npmrc)
npm run lint # n8n community node rules (strict mode)
npm test # builds, then runs the unit tests in test/ with a fake API
npm run dev # starts n8n with this node and rebuilds on change
Tests never call the live API. test/repo-guard.test.js also checks that every tracked file is English.
Links
- Website: popnow.ai · Pricing: popnow.ai/pricing
- Docs: popnow.ai/docs · n8n guide: popnow.ai/docs/n8n ·
API reference: popnow.ai/docs/openapi.yaml · llms.txt - MCP server for AI assistants: popnow.ai/mcp
- Other PopNow repositories:
popnow-mcp ·
popnow-skills ·
popnow-python ·
popnow-js ·
popnow-api ·
popnow-blender ·
popnow-comfyui ·
popnow-cli ·
popnow-go ·
popnow-php
License
MIT © PopNow