This is an n8n community node for WaveSpeed AI - generate images and videos with hundreds of hosted AI models (Seedream, Nano Banana, GPT Image, Seedance, Wan, and more) directly from your n8n workflows.
n8n is a fair-code licensed workflow automation platform.
Follow the installation guide in the n8n community nodes documentation:
- In n8n, go to Settings > Community Nodes.
- Select Install.
- Enter
@wavespeed/n8n-nodes-wavespeedand confirm.
- Create a WaveSpeed account at wavespeed.ai.
- Create an API key under Access Keys in your dashboard.
- In n8n, create a new WaveSpeed API credential and paste the key.
The credential test calls GET /api/v3/balance, so a green check also confirms the key has API access.
All operations submit a prediction to POST https://api.wavespeed.ai/api/v3/{model} and poll GET /api/v3/predictions/{id}/result until it finishes. The output for each item is:
{
"urls": ["https://..."],
"outputs": ["https://..."],
"id": "<prediction id>",
"model": "<model id>",
"timings": { "executionTime": 1234 }
}Generate an image from a text prompt.
- Model - WaveSpeed model ID (default
bytedance/seedream-v5.0-pro). - Prompt - text description of the image.
- Image Options - optional
Resolution(1k/1.5k/2k),Aspect Ratio, andAdditional Inputs (JSON)merged into the request body. Anything else the model accepts (for exampleoutput_format) goes in Additional Inputs.
Generate a video from a text prompt.
- Model - WaveSpeed model ID (default
bytedance/seedance-2.5/text-to-video). - Prompt - text description of the video.
- Video Options - optional
Duration (Seconds)andAdditional Inputs (JSON).
The power operation: run any of the models on wavespeed.ai/models by passing the model ID and the full request body as JSON. Use this for image-to-image, image-to-video, LoRA, upscaling, lipsync - anything the platform hosts.
- Download Output - download the generated files and attach them as n8n binary data (
data,data_1, ...), ready for the next node (upload to S3, send via Slack, etc.). - Poll Interval (Seconds) - how often to check progress (default 2).
- Timeout (Seconds) - how long to wait before the node fails (default 600). The prediction keeps running server-side even if the node times out; the error message includes the task ID.
Transient poll failures (network errors, HTTP 429 and 5xx) are retried automatically up to 5 times per poll, so one unlucky request never kills a running generation. Client errors (4xx) fail fast.
Leave n8n's node-level Settings > Retry On Fail switched off for generation operations. n8n retries by re-running the whole node, which submits a new, separately billed prediction instead of resuming the existing one. The node already retries the parts that are safe to retry (result polling) internally. If you need the task ID of a failed item, enable Continue On Fail instead - the error row carries id and the message names the task.
A minimal prompt-to-image workflow you can paste into n8n (Workflow > Import from Clipboard):
{
"nodes": [
{
"parameters": {},
"name": "When clicking \"Execute Workflow\"",
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [0, 0]
},
{
"parameters": {
"operation": "generateImage",
"model": "bytedance/seedream-v5.0-pro",
"prompt": "A lighthouse on a cliff at dawn, cinematic lighting",
"imageOptions": {
"size": "2048*2048"
},
"options": {
"downloadOutput": true
}
},
"name": "WaveSpeed",
"type": "@wavespeed/n8n-nodes-wavespeed.waveSpeed",
"typeVersion": 1,
"position": [220, 0],
"credentials": {
"wavespeedApi": {
"name": "WaveSpeed API"
}
}
}
],
"connections": {
"When clicking \"Execute Workflow\"": {
"main": [[{ "node": "WaveSpeed", "type": "main", "index": 0 }]]
}
}
}Requires n8n 1.x and Node.js 20 or newer.
npm install
npm run build # tsc + copy icons to dist
npm run lint # eslint 9 flat config: @n8n/eslint-plugin-community-nodes
# (n8n Cloud restrictions) + eslint-plugin-n8n-nodes-base
npm test # jest unit tests for the request/poll logic